property { mix_amount : float; projection : float4x4; @camera_projection view : float4x4; @camera_view } PSInput :: struct { position : @position normal : @normal light_view_position : @extra // TEXCOORD3? frag_pos : @extra // TEXCOORD4? } PSOutput :: struct { color : float4; @target0; emission : float4; @target1; } vertex main :: (position : float3 @position, uv : float2 @uv, normal : float3 @normal) -> PSInput { ps_input : PSInput; return ps_input; } pixel main :: (input : PSInput) -> float4 { ps_out : PSOutput; return ps_out; }