TextureCube SkyboxTexture : register(t0, space2); SamplerState SkyboxSampler : register(s0, space2); cbuffer Uniforms : register(b0, space3) { float brightnessFactor; }; struct PixelOutput { float4 Color : SV_Target0; // First render target float4 Emissive : SV_Target1; // Second render target }; PixelOutput main(float3 TexCoord : TEXCOORD0) { //return pow(SkyboxTexture.Sample(SkyboxSampler, TexCoord) * 4.0, 1.0/2.2); PixelOutput o; o.Color = SkyboxTexture.Sample(SkyboxSampler, TexCoord) * brightnessFactor; if(length(o.Color) > 1.0) { o.Emissive = o.Color; } return o; }