Example #1
0
        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);
        }
Example #2
0
        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);
        }