Reactor.RAtmosphere.SkyBox_Render C# (CSharp) Method

SkyBox_Render() public method

public SkyBox_Render ( ) : void
return void
        public void SkyBox_Render()
        {
            if (_instance.skyEnabled)
            {
                try
                {
                    R3DVECTOR target = REngine.Instance._camera.Target;
                    Matrix view = REngine.Instance._camera.ViewMatrix.matrix;
                    Matrix proj = REngine.Instance._camera.ProjectionMatrix.matrix;
                    R3DVECTOR camPos = REngine.Instance._camera.Position;
                    skyBoxWorld = Matrix.Identity * Matrix.CreateScale(REngine.Instance._camera.zfar*0.5f) * Matrix.CreateWorld(camPos.vector, Vector3.Forward, Vector3.Up);

                    //skyBoxWorld = Matrix.Identity * Matrix.CreateWorld(camPos.vector, Vector3.Forward, Vector3.Up);
                    bool flip = false;
                    if (_reflected)
                    {
                        flip = true;
                        target.Y *= -1;
                        camPos.Y *= -1;

                        if (REngine.Instance._camera.Position.Y < RWater.water.World.Translation.Y)
                            flip = false;
                        //skyBoxWorld = (Matrix.CreateScale(REngine.Instance._camera.zfar) * Matrix.CreateTranslation(camPos.vector)) * _reflection;
                        skyBoxWorld *= _reflection;
                        //target.Y *= -1;
                        //camPos.Y *= -1;
                        //REngine.Instance._camera.Position = camPos;
                        //REngine.Instance._camera.LookAt(target);
                        //REngine.Instance._camera.Update();
                        //camPos.Y *= -1;
                        //view *= _reflection;
                        //view = Matrix.CreateV
                        //proj *= _reflection;
                    }
                    else
                    {
                        view = REngine.Instance._camera.viewMatrix;

                    }

                    _instance.skyEffect.Parameters["TextureScale"].SetValue(_instance.TextureScale);
                    _instance.skyEffect.Parameters["surfaceTexture"].SetValue(_instance.skyTex);
                    _instance.skyEffect.Parameters["View"].SetValue(view);
                    _instance.skyEffect.Parameters["Projection"].SetValue(proj);
                    _instance.skyEffect.Parameters["EyePosition"].SetValue(camPos.vector);
                    _instance.skyEffect.Parameters["World"].SetValue(skyBoxWorld);
                    _instance.skyEffect.Parameters["Reflected"].SetValue(flip);
                    //_instance.skyEffect.Parameters["FOGENABLE"].SetValue(RAtmosphere.Instance.fogEnabled);
                    //_instance.skyEffect.Parameters["FOGENABLE"].SetValue(false);
                    //_instance.skyEffect.Parameters["FOGCOLOR"].SetValue(RAtmosphere.Instance.fogColor);
                    //_instance.skyEffect.Parameters["FOGDIST"].SetValue(RAtmosphere.Instance.fogDistance);

                    REngine.Instance._game.GraphicsDevice.DepthStencilState.DepthBufferEnable = false;

                    //_instance.skyEffect.Begin();

                    REngine.Instance._graphics.GraphicsDevice.RasterizerState.CullMode = CullMode.None;

                    foreach (ModelMesh mesh in _instance.skyBox.Meshes)
                    {

                        mesh.Draw();

                    }

                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                    REngine.Instance.AddToLog(e.ToString());
                }
            }
        }