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) |