Files
Juliet/Assets/source/Triangle.vert.hlsl
2026-02-22 15:54:09 -05:00

30 lines
725 B
HLSL

struct Output
{
float4 Color : TEXCOORD0;
float3 WorldNormal : TEXCOORD1;
float4 Position : SV_Position;
};
#include "RootConstants.hlsl"
Output main(uint vertexIndex : SV_VertexID)
{
Output output;
ByteAddressBuffer buffer = ResourceDescriptorHeap[BufferIndex];
uint stride = 40;
uint offset = vertexIndex * stride;
float3 pos = asfloat(buffer.Load3(offset));
float3 normal = asfloat(buffer.Load3(offset + 12));
float4 col = asfloat(buffer.Load4(offset + 24));
output.Position = mul(ViewProjection, mul(Model, float4(pos, 1.0f)));
output.Color = col;
float3 worldNormal = mul((float3x3)Model, normal);
output.WorldNormal = worldNormal;
return output;
}