public bool Render(DDX11 direct3D, DShaderManager shaderManager, DTextureManager textureManager) { // Generate the view matrix based on the camera's position. Camera.Render(); // Get the world, view, and projection matrices from the camera and d3d objects. Matrix worldMatrix = direct3D.WorldMatrix; Matrix viewCameraMatrix = Camera.ViewMatrix; Matrix projectionMatrix = direct3D.ProjectionMatrix; Matrix baseViewMatrix = Camera.BaseViewMatrix; Matrix orthoMatrix = direct3D.OrthoMatrix; // Clear the buffers to begin the scene. direct3D.BeginScene(0.0f, 0.0f, 0.0f, 1.0f); // Turn off back face culling and turn off the Z buffer. direct3D.TurnOffCulling(); direct3D.TurnZBufferOff(); // Translate the sky dome to be centered around the camera position. Matrix.Translation(Camera.GetPosition().X, Camera.GetPosition().Y, Camera.GetPosition().Z, out worldMatrix); // Render the sky dome using the sky dome shader. SkyDomeModel.Render(direct3D.DeviceContext); if (!shaderManager.RenderSkyDomeShader(direct3D.DeviceContext, SkyDomeModel.IndexCount, worldMatrix, viewCameraMatrix, projectionMatrix, SkyDomeModel.m_apexColor, SkyDomeModel.m_centerColor)) { return(false); } // Reset the world matrix. worldMatrix = direct3D.WorldMatrix; // Turn the Z buffer back and back face culling on. direct3D.TurnOnCulling(); direct3D.TurnZBufferOn(); // Turn on wire frame rendering of the terrain if needed. if (WireFrame) { direct3D.EnableWireFrame(); } // Render the terrain grid using the color shader. Terrain.Render(direct3D.DeviceContext); if (!shaderManager.RenderTerrainShader(direct3D.DeviceContext, Terrain.IndexCount, worldMatrix, viewCameraMatrix, projectionMatrix, textureManager.TextureArray[0].TextureResource, textureManager.TextureArray[1].TextureResource, Light.Direction, Light.DiffuseColour)) { return(false); } // Turn off wire frame rendering of the terrain if it was on. if (WireFrame) { direct3D.DisableWireFrame(); } // Render the user interface. if (DisplayUI) { if (!UserInterface.Render(direct3D, shaderManager, worldMatrix, baseViewMatrix, orthoMatrix)) { return(false); } } // Present the rendered scene to the screen. direct3D.EndScene(); return(true); }