| struct IA2VS { |
| float3 position : POSITION; |
| |
| #ifdef HAS_NORMAL |
| float3 normal : NORMAL; |
| #endif |
| |
| #ifdef HAS_TANGENT |
| float4 tangent : TANGENT; |
| #endif |
| |
| #ifdef HAS_TEXCOORD_0 |
| float2 texcoord_0: TEXCOORD_0; |
| #endif |
| }; |
| |
| struct VS2RS { |
| float4 position : SV_POSITION; |
| |
| #ifdef HAS_TEXCOORD_0 |
| float2 texcoord_0: TEXCOORD_0; |
| #endif |
| }; |
| |
| cbuffer Camera : register(b0) { |
| float4x4 V; |
| float4x4 P; |
| float4x4 VP; |
| }; |
| |
| cbuffer Node : register(b1) { |
| float4x4 M; |
| }; |
| |
| VS2RS main(IA2VS input) { |
| VS2RS output; |
| output.position = mul(float4(input.position, 1.0), M); |
| output.position = mul(output.position, V); |
| output.position = mul(output.position, P); |
| |
| #ifdef HAS_TEXCOORD_0 |
| output.texcoord_0 = input.texcoord_0; |
| #endif |
| |
| return output; |
| } |