Files
WickedEngine/WickedEngine/cubeShadowGS.hlsl
T
2017-05-21 23:42:29 +02:00

37 lines
720 B
HLSL

#include "globals.hlsli"
struct GS_CUBEMAP_IN
{
float4 Pos : SV_POSITION;
};
struct PS_CUBEMAP_IN
{
float4 Pos : SV_POSITION;
float3 pos3D : POSITION3D;
uint RTIndex : SV_RenderTargetArrayIndex;
};
CBUFFER(CubemapRenderCB, CBSLOT_RENDERER_CUBEMAPRENDER)
{
float4x4 xCubeShadowVP[6];
}
[maxvertexcount(18)]
void main( triangle GS_CUBEMAP_IN input[3], inout TriangleStream<PS_CUBEMAP_IN> CubeMapStream )
{
[unroll]
for (int f = 0; f < 6; ++f)
{
PS_CUBEMAP_IN output;
output.RTIndex = f;
[unroll]
for (int v = 0; v < 3; v++)
{
output.Pos = mul(input[v].Pos, xCubeShadowVP[f]);
output.pos3D = input[v].Pos.xyz;
CubeMapStream.Append(output);
}
CubeMapStream.RestartStrip();
}
}