Harbor

branch main
showing the latest snapshot on main
basic_vertex.hlsl 767 B · Plain text
shader/tests/golden/basic_vertex.hlsl 0644 Raw
struct Uniforms {
	float4x4 model;
	float4x4 view_proj;
	float4x4 normal_mat;
};
cbuffer uniforms_CB : register(b0, space0) {
	Uniforms uniforms;
};

struct VertexInput {
	float3 position : TEXCOORD0;
	float3 normal : TEXCOORD1;
	float2 uv : TEXCOORD2;
};

struct VertexOutput {
	float4 position : SV_Position;
	float2 uv : TEXCOORD0;
	float3 normal : TEXCOORD1;
};

VertexOutput transform(VertexInput input) {
	VertexOutput __luma_output;
	float3 pos = input.position;
	float4 world_pos = mul(uniforms.model, float4(pos, 1.0));
	float4 clip_pos = mul(uniforms.view_proj, world_pos);
	__luma_output.position = clip_pos;
	__luma_output.uv = input.uv;
	__luma_output.normal = normalize(mul(uniforms.normal_mat, float4(input.normal, 0.0)).xyz);
	return __luma_output;
}