Utilizar datos de vértice de punto fijo

Actualización: noviembre 2007

Puede utilizar datos de vértices de punto fijo para incrementar las velocidades de transformación e iluminación de los controladores de gráficos 3D que no las implementen en el hardware. Algunos controladores pueden funcionar con mayor rapidez si se trabaja con datos de punto fijo. Puede determinar si su controlador utiliza las operaciones matemáticas de punto flotante examinando la propiedad NativeFloat de una estructura DeviceCaps. Si el valor de la propiedad es false, es preferible para el dispositivo usar datos en formato de punto fijo. Se requieren todos los controladores de Windows Mobile Direct3D para compatibilidad con datos de punto fijo y punto flotante.

Se utilizan los búferes de vértices de punto fijo del mismo modo que se utilizan los de vértices de punto flotante. Las únicas diferencias son el formato de los datos que contienen y el formato de vértices flexibles especificado cuando se crea el búfer de vértices.

Si el formato de los datos no es originalmente de punto fijo, puede construir un objeto Mesh que contiene datos de punto flotante y, a continuación, convertirlo en datos de punto fijo mediante una llamada al método Clone del objeto Mesh.

La tabla siguiente muestra los valores de la enumeración VertexFormats utilizados para especificar los distintos formatos flexibles para datos de punto flotante y punto fijo. Esta lista no es una lista detallada de todas las posibilidades, pero sí proporciona ejemplos de las diferencias entre los formatos de vértices de punto fijo y flotante.

Formato

Especificación de punto flotante

Especificación de punto fijo

Sólo posición

VertexFormats.Position

VertexFormats.PositionFixed

Posición y normal

VertexFormats.Position | VertexFormats.Normal

VertexFormats.PositionFixed | VertexFormats.NormalFixed

Posición y color difuso

VertexFormats.Position | VertexFormats.Diffuse

VertexFormats.PositionFixed | VertexFormats.Diffuse

Posición y una coordenada de textura 2D

VertexFormats.Position | VertexFormats.Texture1

VertexFormats.PositionFixed | VertexFormats.Texture1 | VertexTextureCoordinate.Fixed(0)

Posición, normal, color especular, color difuso, coordinada de textura de 1D y de 2D.

VertexFormats.Position | VertexFormats.Normal | VertexFormats.Diffuse | VertexFormats.Texture2 | VertexTextureCoordinate.Size1(0)

VertexFormats.PositionFixed | VertexFormats.NormalFixed | VertexFormats.Diffuse | VertexFormats.Texture2 | VertexTextureCoordinate.Size1(0) | VertexTextureCoordinate.Fixed(0) | VertexTextureCoordinate.Fixed(1)

 

Vea también

Otros recursos

Programar Mobile Direct3D en .NET Compact Framework