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(); }
/// <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; }