Exemple #1
0
        public static void Render(EstadoRender Estado)
        {
            if (ParametrosDeConfiguracion.Embarcacion != EmbarcacionActual)
            {
                LoadEmbarcacion(ParametrosDeConfiguracion.Embarcacion);
            }

            if (!ParametrosDeConfiguracion.RenderBarco)
            {
                return;
            }

            Device d3dDevice = GuiController.Instance.D3dDevice;

            CalcularFisica();

            // cago la posicion a la camara para seguir al bote
            if (!ParametrosDeConfiguracion.VerFrustumCulling)
            {
                GuiController.Instance.ThirdPersonCamera.Target = mesh.Position;
            }

            // material source para que el color del reflejo sea mejor
            d3dDevice.RenderState.DiffuseMaterialSource  = ColorSource.Color1;
            d3dDevice.RenderState.SpecularMaterialSource = ColorSource.Color1;
            d3dDevice.RenderState.AmbientMaterialSource  = ColorSource.Color1;

            if (ParametrosDeConfiguracion.RenderBoundingBoxes)
            {
                mesh.BoundingBox.setRenderColor(Color.Red);
                mesh.BoundingBox.render();
            }
            mesh.render();
        }
Exemple #2
0
        /// <summary>
        /// Crea y activa la Light necesaria para el sol de acuerdo al estado de renderizado.
        /// </summary>
        /// <param name="Estado">El estado que se está renderizado: reflexión, refracción, normal.</param>
        public static void Render(EstadoRender Estado)
        {
            Device d3dDevice = GuiController.Instance.D3dDevice;

            // obtengo las coordeandas del vector posición del sol
            float x = (float)-(Math.Cos(ParametrosDeConfiguracion.Sol.PosTheta) * Math.Sin(ParametrosDeConfiguracion.Sol.PosAlpha));
            float y = (float)Math.Sin(ParametrosDeConfiguracion.Sol.PosTheta) * ((Estado == EstadoRender.REFLEXION) ? -1.0f : 1.0f);
            float z = (float)-(Math.Cos(ParametrosDeConfiguracion.Sol.PosTheta) * Math.Cos(ParametrosDeConfiguracion.Sol.PosAlpha));

            // cargo al sol como luz
            d3dDevice.Lights[0].Direction    = new Vector3(x, y, z);
            d3dDevice.Lights[0].Diffuse      = Color.FromArgb(new ColorValue(2f, 2f, 2f, 1f).ToArgb());
            d3dDevice.Lights[0].Ambient      = Color.FromArgb(new ColorValue(0.2f, 0.3f, 0.3f, 1f).ToArgb());
            d3dDevice.Lights[0].Specular     = Color.FromArgb(new ColorValue(1f, 1f, 1f, 1f).ToArgb());
            d3dDevice.Lights[0].Attenuation0 = 1f;
            d3dDevice.Lights[0].Type         = LightType.Directional;
            d3dDevice.Lights[0].Enabled      = true;
            d3dDevice.RenderState.Lighting   = true;
        }