LightFixed (Clase)
Actualización: noviembre 2007
Representa un conjunto de propiedades de iluminación. Esta clase no se puede heredar.
Espacio de nombres: Microsoft.WindowsMobile.DirectX.Direct3D
Ensamblado: Microsoft.WindowsMobile.DirectX (en Microsoft.WindowsMobile.DirectX.dll)
Sintaxis
'Declaración
Public NotInheritable Class LightFixed
'Uso
Dim instance As LightFixed
public sealed class LightFixed
public ref class LightFixed sealed
public final class LightFixed
Comentarios
Esta clase proporciona compatibilidad para las operaciones matemáticas de punto fijo.
Ejemplos
En el ejemplo de código siguiente se muestra cómo se utilizan las estructuras LightFixed.
' This code example is from the
' Direct3D Mobile Fixed Point Lighting Sample
' of the .NET Compact Framework Samples in the SDK.
' The FrameMove method is called once per frame,
' and is the entry point for animating the scene.
Public Sub FrameMove()
lightData = device.LightsFixed(2)
' Rotate through the various light types
If Fix(appTime) Mod 20 < 10 Then
device.LightsFixed(2).Type = LightType.Point
Else
device.LightsFixed(2).Type = LightType.Directional
End If
' Make sure the light type is supported by the device. If
' VertexProcessingCaps.PositionAllLights is not set, the device
' does not support point or spot lights, so change light #2's
' type to a directional light.
If Not _
device.DeviceCaps.VertexProcessingCaps.SupportsPositionalLights _
Then
If device.LightsFixed(2).Type = LightType.Point Then
device.LightsFixed(2).Type = LightType.Directional
End If
End If
' Values for the light position, direction, and color
Dim x As Single = System.Convert.ToSingle(Math.Sin(appTime * 2.0F))
Dim y As Single = System.Convert.ToSingle( _
Math.Sin(appTime * 2.246F))
Dim z As Single = System.Convert.ToSingle( _
Math.Sin(appTime * 2.64F))
Dim r As Byte = System.Convert.ToByte((0.5F + 0.5F * x) * &HFF)
Dim g As Byte = System.Convert.ToByte((0.5F + 0.5F * y) * &HFF)
Dim b As Byte = System.Convert.ToByte((0.5F + 0.5F * z) * &HFF)
device.LightsFixed(2).DiffuseColor = _
ColorValueFixed.FromColor( _
System.Drawing.Color.FromArgb(r, g, b))
device.LightsFixed(2).Range = 100.0F
Select Case device.LightsFixed(2).Type
Case LightType.Point
device.LightsFixed(2).Position = _
New Vector3Fixed(4.5F * x, 4.5F * y, 4.5F * z)
device.LightsFixed(2).Attenuation1 = 0.4F
Case LightType.Directional
device.LightsFixed(2).Direction = _
New Vector3Fixed(x, y, z)
End Select
device.LightsFixed(2).Update()
End Sub
// This code example is from the
// Direct3D Mobile Fixed Point Lighting Sample
// of the .NET Compact Framework Samples in the SDK.
// The FrameMove method is called once per frame,
// and is the entry point for animating the scene.
public void FrameMove()
{
lightData = device.LightsFixed[2];
// Rotate through the various light types
if (((int)appTime % 20) < 10)
device.LightsFixed[2].Type = LightType.Point;
else
device.LightsFixed[2].Type = LightType.Directional;
// Make sure the light type is supported by the device. If
// VertexProcessingCaps.PositionAllLights is not set, the
// device does not support point or spot lights, so change
// light #2's type to a directional light.
if
(!device.DeviceCaps.VertexProcessingCaps.SupportsPositionalLights)
{
if (device.LightsFixed[2].Type == LightType.Point)
device.LightsFixed[2].Type = LightType.Directional;
}
// Values for the light position, direction, and color
float x = (float)Math.Sin(appTime*2.000f);
float y = (float)Math.Sin(appTime*2.246f);
float z = (float)Math.Sin(appTime*2.640f);
byte r = (byte)((0.5f + 0.5f * x) * 0xff);
byte g = (byte)((0.5f + 0.5f * y) * 0xff);
byte b = (byte)((0.5f + 0.5f * z) * 0xff);
device.LightsFixed[2].DiffuseColor =
ColorValueFixed.FromColor(System.Drawing.Color.FromArgb(r,
g, b));
device.LightsFixed[2].Range = 100.0f;
switch(device.LightsFixed[2].Type)
{
case LightType.Point:
device.LightsFixed[2].Position =
new Vector3Fixed(4.5f * x, 4.5f * y, 4.5f * z);
device.LightsFixed[2].Attenuation1 = 0.4f;
break;
case LightType.Directional:
device.LightsFixed[2].Direction =
new Vector3Fixed(x, y, z);
break;
}
device.LightsFixed[2].Update();
}
Jerarquía de herencia
System.Object
Microsoft.WindowsMobile.DirectX.Direct3D.LightFixed
Seguridad para subprocesos
Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Plataformas
Windows CE, Windows Mobile para Smartphone, Windows Mobile para Pocket PC
.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Información de versión
.NET Compact Framework
Compatible con: 3.5, 2.0
Vea también
Referencia
Microsoft.WindowsMobile.DirectX.Direct3D (Espacio de nombres)