Поделиться через


Использование данных вершин с фиксированной запятой

Обновлен: Ноябрь 2007

Данные вершин с фиксированной запятой можно использовать для ускорения преобразования и освещения фигур драйверами трехмерной графики, которые не поддерживают выполнение данных операций на аппаратном уровне. Некоторые драйверы могут работать быстрее при использовании данных с фиксированной точкой. Чтобы определить, использует ли драйвер математические операции с плавающей запятой, необходимо просмотреть свойство NativeFloat структуры DeviceCaps. Если свойство имеет значение false, то для данного устройства рекомендуется использовать данные в формате с фиксированной запятой. Все драйверы Direct3D Windows должны поддерживать как данные с фиксированной запятой, так и данные с плавающей запятой.

Буферы вершин с фиксированной запятой используются точно также, как и буферы вершин с плавающей запятой. Различия заключаются только в формате содержащихся в них данных и в гибком формате вершин, задаваемом при создании буфера вершин.

Если данные изначально не находились в формате с фиксированной запятой, можно создать объект Mesh, содержащий данные с плавающей запятой, а затем преобразовать их в данные с фиксированной запятой, вызвав метод Clone объекта Mesh.

В следующей таблице указаны значения перечисления VertexFormats, используемые для задания различных гибких форматов для данных с плавающей запятой и фиксированной запятой. Данный список не является полным, но позволяет понять, как гибкий формат вершин с фиксированной запятой отличается от гибкого формата вершин с плавающей запятой.

Формат

Спецификация для плавающей запятой

Спецификация для фиксированной запятой

Только положение

VertexFormats.Position

VertexFormats.PositionFixed

Положение и нормаль

VertexFormats.Position | VertexFormats.Normal

VertexFormats.PositionFixed | VertexFormats.NormalFixed

Положение и распространяемый цвет

VertexFormats.Position | VertexFormats.Diffuse

VertexFormats.PositionFixed | VertexFormats.Diffuse

Положение и одна координата двухмерной текстуры

VertexFormats.Position | VertexFormats.Texture1

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

Положение, нормаль, отражающий цвет, распространяемый цвет, координата одномерной текстуры и координата двухмерной текстуры

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)

 

См. также

Другие ресурсы

Мобильное программирование Direct3D в .NET Compact Framework