#include "Macros.fxh" // from FNA DECLARE_TEXTURE(gPosition, 0); DECLARE_TEXTURE(gAlbedo, 1); BEGIN_CONSTANTS float3 AmbientLightColor _ps(c0) _cb(c0); END_CONSTANTS struct VertexInput { float4 Position : POSITION; float2 TexCoord : TEXCOORD; }; struct PixelInput { float4 Position : SV_POSITION; float2 TexCoord : TEXCOORD0; }; PixelInput main_vs(VertexInput input) { PixelInput output; output.Position = input.Position; output.TexCoord = input.TexCoord; return output; } float4 ComputeColor( float3 worldPosition, float3 albedo ) { float3 color = AmbientLightColor * albedo; return float4(color, 1.0); } float4 main_ps(PixelInput input) : SV_TARGET0 { float3 worldPosition = SAMPLE_TEXTURE(gPosition, input.TexCoord).rgb; float3 albedo = SAMPLE_TEXTURE(gAlbedo, input.TexCoord).rgb; return ComputeColor( worldPosition, albedo ); } Technique DeferredPBR_Ambient { Pass { VertexShader = compile vs_3_0 main_vs(); PixelShader = compile ps_3_0 main_ps(); } }