Compartilhar via


Usando dados de vértice de ponto fixo

Você pode usar dados de vértice de ponto fixo para aumentar a transformação e iluminação velocidades dos drivers de gráficos 3D que não implementam transformação e iluminação no hardware.Alguns drivers são capazes de trabalhar mais rapidamente em dados de ponto fixo.Você pode determinar se o driver usará operações matemáticas de ponto flutuante examinando o NativeFloat propriedade de um DeviceCaps estrutura. Se o valor da propriedade é false, então, usando dados em um formato de ponto fixo é preferível para o dispositivo. Todos os drivers de Windows Mobile Direct3D são necessários para oferecer suporte a dados de ponto flutuante e ponto fixo.

Buffers de vértice de ponto fixo são usados da mesma maneira que buffers de vértice de ponto flutuante são usados.As diferenças são somente o formato dos dados que eles contêm e o formato de vértice flexível especificado quando o buffer de vértice é criado.

Se os dados não estiverem originalmente em um formato de ponto fixo, você pode construir um Mesh objeto que contém dados de ponto flutuante e, em seguida, convertê-lo em dados de ponto fixo com uma telefonar para o Clone método para o Mesh objeto.

A tabela a seguir lista o VertexFormats valores de enumeração usados para especificar vários formatos flexíveis para dados de ponto flutuante e ponto fixo. Esta lista não é abrangente nas possibilidades, mas ela fornece exemplos de como um formato de vértice flexível de ponto fixo difere de um formato de vértice flexível de ponto flutuante.

Formato

Especificação de ponto flutuante

Especificação de ponto fixo

Somente posição

VertexFormats.Position

VertexFormats.PositionFixed

Posição e normal

VertexFormats.Position | VertexFormats.Normal

VertexFormats.PositionFixed | VertexFormats.NormalFixed

Posição e cor difusa

VertexFormats.Position | VertexFormats.Diffuse

VertexFormats.PositionFixed | VertexFormats.Diffuse

Posição e uma coordenada de textura 2D

VertexFormats.Position | VertexFormats.Texture1

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

Posição, normal, cor especular, cor difusa, uma coordenada de textura 1D, e uma coordenada de textura 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)

 

Consulte também

Outros recursos

Programação Direct3D móvel no .NET Compact estrutura