private bool Render(float rotation) { _directX.BeginScene(new Color4(0.1f, 0f, 0f, 1f)); _camera.Render(); var viewMatrix = _camera.ViewMatrix; var worldMatrix = _directX.WorldMatrix; var projectionMatrix = _directX.ProjectionMatrix; //Matrix.RotationYawPitchRoll(Rotation, Rotation, Rotation, out worldMatrix); //Matrix.RotationX(rotation, out worldMatrix); //Matrix.RotationY(rotation, out worldMatrix); _object.Render(_directX.DeviceContext); var translationMatrix = worldMatrix * Matrix.RotationY(rotation) * Matrix.Translation((rotation - 180.0f) / 50.0f, 0.0f, 0.0f); var result = _lightShader.Render(_directX.DeviceContext, _object.IndexCount, translationMatrix, viewMatrix, projectionMatrix, _object.Texture.TextureResource, _light.Direction, _light.DiffuseColour); _directX.EndScene(); return(result); }
private bool Render() { _directX.BeginScene(new Color4(0.0f, 0.0f, 0.0f, 1.0f)); _camera.Render(); var worldMatrix = _directX.WorldMatrix; var viewCameraMatrix = _camera.ViewMatrix; var projectionMatrix = _directX.ProjectionMatrix; var orthoMatrix = _directX.OrthoMatrix; var baseViewMatrix = _camera.BaseViewMatrix; //_groundModel.Render(_directX.DeviceContext); //_shaderManager.RenderTextureShader(_directX.DeviceContext, _groundModel.IndexCount, worldMatrix, viewCameraMatrix, projectionMatrix, _groundModel.Texture.TextureResource); var ambientColour = new Color4(0.05f, 0.05f, 0.05f, 1.0f); //var diffuseColour = new Color4(1.0f, 1.0f, 1.0f, 1.0f); //var diffuseColour = new Color4(1.0f, 1.0f, 1.0f, 1.0f); //var direction = new Vector3(-0.5f, -1.0f, 0.0f); var direction = TimeOfDay.GetSunDirection(); var diffuseColour = TimeOfDay.AmbientColour; var result = true; Matrix.Translation(_camera.Position.X, _camera.Position.Y, _camera.Position.Z, out worldMatrix); _directX.SetCulling(false); _directX.SetZBuffer(false); _skyDome.Render(_directX.DeviceContext); //result = _shaderManager.RenderSkyDomeShader(_directX.DeviceContext, _skyDome.IndexCount, worldMatrix, viewCameraMatrix, projectionMatrix, _skyDome.ApexColour, _skyDome.CenterColour); result = _shaderManager.RenderSkyDomeShader(_directX.DeviceContext, _skyDome.IndexCount, worldMatrix, viewCameraMatrix, projectionMatrix, TimeOfDay.SkyColour, TimeOfDay.HorizonColour); _directX.SetCulling(true); _directX.EnableCloudBlendState(); _skyPlane.Render(_directX.DeviceContext); //result &= _shaderManager.RenderSkyPlaneShader(_directX.DeviceContext, _skyPlane.IndexCount, worldMatrix, viewCameraMatrix, projectionMatrix, _skyPlane.CloudTexture.TextureResource, _skyPlane.PerturbTexture.TextureResource, _skyPlane.Translation, _skyPlane.Scale, _skyPlane.Brightness); result &= _shaderManager.RenderSkyPlaneShader(_directX.DeviceContext, _skyPlane.IndexCount, worldMatrix, viewCameraMatrix, projectionMatrix, _skyPlane.CloudTexture.TextureResource, _skyPlane.PerturbTexture.TextureResource, _skyPlane.Translation, _skyPlane.Scale, TimeOfDay.CloudBrightness); worldMatrix = _directX.WorldMatrix; _directX.SetZBuffer(true); _directX.EnableSecondBlendState(); _foliage.Render(_directX.DeviceContext); result &= _shaderManager.RenderFoliageShader(_directX.DeviceContext, _foliage.VertexCount, _foliage.InstanceCount, viewCameraMatrix, projectionMatrix, _foliage.Texture.TextureResource); _directX.SetAlphaBlending(false); _terrain.Render(_directX.DeviceContext); result = _shaderManager.RenderTerrainShader(_directX.DeviceContext, _terrain.IndexCount, worldMatrix, viewCameraMatrix, projectionMatrix, ambientColour, diffuseColour, direction, _terrain.Texture.TextureResource); _directX.SetZBuffer(false); _directX.SetAlphaBlending(true); _userInterface.Render(_directX, _shaderManager, worldMatrix, baseViewMatrix, orthoMatrix); _directX.SetAlphaBlending(false); _directX.SetZBuffer(true); _directX.EndScene(); return(result); }