summaryrefslogtreecommitdiff
path: root/shaders/obj.vert.slang
diff options
context:
space:
mode:
authorConnor Thomson <blumatrikz@gmail.com>2026-09-10 17:07:15 -0700
committerConnor Thomson <blumatrikz@gmail.com>2026-09-10 17:07:15 -0700
commite9d4cbaa3c44337115d672d2038a7b73745181c8 (patch)
treeacc15d887e370117f80cc94512af612002ebdbd9 /shaders/obj.vert.slang
parentda1891aa0a053297e1b17bc34c23c362f9ac0c6b (diff)
Update teapot model, add phong shading, & more
Diffstat (limited to 'shaders/obj.vert.slang')
-rw-r--r--shaders/obj.vert.slang15
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;
}