aboutsummaryrefslogtreecommitdiff
path: root/demo/d3d/shaders/diffuseVS.hlsl
diff options
context:
space:
mode:
Diffstat (limited to 'demo/d3d/shaders/diffuseVS.hlsl')
-rw-r--r--demo/d3d/shaders/diffuseVS.hlsl25
1 files changed, 25 insertions, 0 deletions
diff --git a/demo/d3d/shaders/diffuseVS.hlsl b/demo/d3d/shaders/diffuseVS.hlsl
new file mode 100644
index 0000000..303b896
--- /dev/null
+++ b/demo/d3d/shaders/diffuseVS.hlsl
@@ -0,0 +1,25 @@
+#include "shaderCommon.h"
+
+cbuffer constBuf : register(b0)
+{
+ DiffuseShaderConst gParams;
+};
+
+DiffuseVertexOut diffuseVS(DiffuseVertexIn input)
+{
+ float3 worldPos = input.position.xyz;
+ float4 eyePos = mul(gParams.modelView, float4(worldPos, 1.0));
+
+ DiffuseVertexOut output;
+
+ output.worldPos = input.position; // lifetime in w
+ output.viewPos = eyePos;
+ output.viewVel = mul(gParams.modelView, float4(input.velocity.xyz, 0.0));
+ output.color = gParams.color;
+
+ // compute ndc pos for frustrum culling in GS
+ float4 ndcPos = mul(gParams.modelViewProjection, float4(worldPos.xyz, 1.0));
+ output.ndcPos = ndcPos / ndcPos.w;
+
+ return output;
+}