References 161
{
input.Pos = mul(input.Pos, WorldViewProjRight);
}
input.Color = Color;
input.InstanceId = InstanceId;
return (input);
}
[maxvertexcount(3)]
void GSStereo(triangle PS_INPUT In[3],
inout TriangleStream<GS_OUTPUT> TriStream)
{
GS_OUTPUT output;
for (int v = 0; v < 3; v++)
{
output.Viewport = In[v].InstanceId;
output.InstanceId = In[v].InstanceId;
output.Color = In[v].Color;
output.Pos = In[v].Pos;
TriStream.Append(output);
}
}
Listing 10.2. This HLSL code renders a stereo pair using the geometry shader with instancing.
References
[AMD 2009] AMD. “AMD Advances 3D Entertainment: Demonstrates Blu-Ray Stereo-
scopic 3D Playback at 2010 International CES”. December 7, 2009. Available at
http:// www.amd.com/us/press-releases/Pages/amd-3d-2009dec7.aspx.
[Lengyel 2004] Eric Lengyel. Mathematics for 3D Game Programming & Computer
Graphics. Hingham, MA: Charles River Media, 2004.
[McAllister 2006] David F. McAllister. “Display Technology: Stereo & 3D Display
Technologies.” Encyclopedia of Imaging Science and Technology, Edited by Jo-
seph P. Hornak, Wiley, 2006.