void RenderScene( Shader _Shader ) {
// Render a floor plane
if ( _Shader == m_Shader_RenderScene )
{
m_CB_Object.m._Local2World.BuildRotRightHanded( float3.Zero, float3.UnitY, float3.UnitX );
m_CB_Object.m._Local2World.Scale( new float3( 16.0f, 16.0f, 1.0f ) );
m_CB_Object.m._World2Local = m_CB_Object.m._Local2World.Inverse;
m_CB_Object.m._DiffuseAlbedo = 0.5f * new float3( 1, 1, 1 );
m_CB_Object.m._SpecularTint = new float3( 0.95f, 0.94f, 0.93f );
m_CB_Object.m._Gloss = floatTrackbarControlGloss.Value;
m_CB_Object.m._Metal = floatTrackbarControlMetal.Value;
m_CB_Object.m._UseTexture = checkBoxUseTexture.Checked ? 1U : 0U;
m_CB_Object.m._FalseColors = checkBoxFalseColors.Checked ? 1U : 0U;
m_CB_Object.m._FalseColorsMaxRange = floatTrackbarControlFalseColorsRange.Value;
m_CB_Object.UpdateData();
m_Prim_Rectangle.Render( _Shader );
}
// Render the sphere
m_CB_Object.m._Local2World.BuildRotRightHanded( new float3( 0, 0.5f, 1.0f ), new float3( 0, 0.5f, 2 ), float3.UnitY );
// m_CB_Object.m._Local2World.MakeLookAt( new float3( 0, 0.3f, 1.0f ), new float3( 0, 0.3f, 2 ), float3.UnitY );
m_CB_Object.m._Local2World.Scale( new float3( 0.5f, 0.5f, 0.5f ) );
m_CB_Object.m._World2Local = m_CB_Object.m._Local2World.Inverse;
m_CB_Object.m._DiffuseAlbedo = 0.5f * new float3( 1, 0.8f, 0.5f );
m_CB_Object.m._SpecularTint = new float3( 0.95f, 0.94f, 0.93f );
m_CB_Object.m._Gloss = floatTrackbarControlGloss.Value;
m_CB_Object.m._Metal = floatTrackbarControlMetal.Value;
m_CB_Object.m._UseTexture = checkBoxUseTexture.Checked ? 1U : 0U;
m_CB_Object.m._FalseColors = checkBoxFalseColors.Checked ? 1U : 0U;
m_CB_Object.m._FalseColorsMaxRange = floatTrackbarControlFalseColorsRange.Value;
m_CB_Object.UpdateData();
m_Prim_Sphere.Render( _Shader );
// Render the tiny cubes
for ( int CubeIndex=0; CubeIndex < 4; CubeIndex++ ) {
float X = -1.0f + 2.0f * CubeIndex / 3;
// float Y = 0.1f + 1.0f * (float) Math.Abs( Math.Sin( m_CB_Main.m.iGlobalTime + CubeIndex ));
float Y = 0.1f + (float) Math.Max( 0.0, Math.Sin( m_CB_Main.m.iGlobalTime + CubeIndex ));
// m_CB_Object.m._Local2World.MakeLookAt( new float3( 1.0f, 0.1f, 0.0f ), new float3( 1.0f, 0.1f, 1 ), float3.UnitY );
m_CB_Object.m._Local2World.BuildRotRightHanded( new float3( X, Y, 0.0f ), new float3( X, Y, 1 ), float3.UnitY );
m_CB_Object.m._Local2World.Scale( new float3( 0.1f, 0.1f, 0.1f ) );
m_CB_Object.m._World2Local = m_CB_Object.m._Local2World.Inverse;
m_CB_Object.m._DiffuseAlbedo = 0.5f * new float3( 1, 1, 1 );
m_CB_Object.m._SpecularTint = new float3( 0.95f, 0.94f, 0.92f );
m_CB_Object.m._Gloss = floatTrackbarControlGloss.Value;
m_CB_Object.m._Metal = floatTrackbarControlMetal.Value;
m_CB_Object.m._UseTexture = checkBoxUseTexture.Checked ? 1U : 0U;
m_CB_Object.m._FalseColors = checkBoxFalseColors.Checked ? 1U : 0U;
m_CB_Object.m._FalseColorsMaxRange = floatTrackbarControlFalseColorsRange.Value;
m_CB_Object.UpdateData();
m_Prim_Cube.Render( _Shader );
}
}