Использование данных вершин с фиксированной запятой
Обновлен: Ноябрь 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