diff options
Diffstat (limited to 'shaders/obj.vert.slang')
| -rw-r--r-- | shaders/obj.vert.slang | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/shaders/obj.vert.slang b/shaders/obj.vert.slang index 2d45e1d..1884b97 100644 --- a/shaders/obj.vert.slang +++ b/shaders/obj.vert.slang @@ -20,6 +20,8 @@ struct ObjUniforms { float4x4 mvp; float4x4 model; + float3 camera_position; + float padding; }; [[vk::binding(0, 1)]] @@ -31,13 +33,18 @@ struct VSInput { }; struct VSOutput { - float4 position : SV_Position; - float3 normal : TEXCOORD0; + float4 position : SV_Position; + float3 normal : TEXCOORD0; + float3 world_position : TEXCOORD1; + float3 camera_position : TEXCOORD2; }; VSOutput main(VSInput input) { VSOutput output; - output.position = mul(uniforms.mvp, float4(input.position, 1.0)); - output.normal = normalize(mul((float3x3)uniforms.model, input.normal)); + float4 world_position = mul(uniforms.model, float4(input.position, 1.0)); + output.position = mul(uniforms.mvp, float4(input.position, 1.0)); + output.normal = normalize(mul((float3x3)uniforms.model, input.normal)); + output.world_position = world_position.xyz; + output.camera_position = uniforms.camera_position; return output; } |