Direct3D для VB.NET Урок 9. Структуры PositionColored и TransformedColored
На уроке 4 у нас был один вид вершин - TransformedColored, а в последних уроках (начиная с урока 6) - PositionColored. В чем же разница между ними?
Разница в том, что за данные они хранят. Вот так определена структура TransformedColored в DirectX SDK:
Structure TransformedColored
Public Color As Int32
PublicShared Format As VertexFormats
Public Rhw AsSinglePublicShared StrideSize As Int32
Public X AsSinglePublic Y AsSinglePublic Z AsSingleEndStructure
А вот так определена структура PositionColored:
Structure TransformedColored
Public Color As Int32
PublicShared Format As VertexFormats
PublicShared StrideSize As Int32
Public X AsSinglePublic Y AsSinglePublic Z AsSingleEndStructure
Как вы видите, они отличаются только наличием/отсуствием поля Rhw типа Single. Во всем же остальном они одинаковы. Что же это за поле? Его присутствие означает, что мы используем так называемые однородные координаты. В однородных координатах кроме трех привычных координат x, y, z есть еще одна, которая равна обычно 1. Помните, как мы писали код в уроке 4:
Вот тут Rhw - это и есть четвертая координата и она равна 1.
Вообще точка (x, y, z, 1) в однородных координатах соответствует точке (x, y, z) в обычных координатах, а точки (x, y, z, t) и (x/t, y/t, z/t, 1) в однородных координатах - эквивалентны (т. е. совпадают).
Зачем вообще нужны однородные координаты? В первом приближении ответ будет такой: с ними во многих случаях легче работать - делать различные преобразования и т. п..
Обе эти структуры определены в классе VertexBuffer как статические. Это означает, что для объявления экземпляра этих структур мы должны написать что-то вроде
Dim vb As VertexBuffer.TransformedColored
и
Dim vb As VertexBuffer.PositionColored
Это, собственно говоря, мы и делали в указанных предыдущих уроках.
Кроме этих двух форматов вершин существует еще несколько. Все они определены в классе VertexBuffer. Их мы рассмотрим на последующих уроках.
PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru