Отправляет email-рассылки с помощью сервиса Sendsay

Уроки по DirectX

  Все выпуски  

Уроки по DirectX


Информационный Канал Subscribe.Ru

Direct3D для Visual Basic.NET. Рассылки сайта progs.biz
Рассылка № 13
 
Начало > DirectX > Direct3D > VB.NET > Урок 9

С. Токарев. OpenGL. Самоучитель Macromedia Dreamweaver MX.
С. Токарев. Самоучитель Macromedia Dreamweaver MX
Заказать на Озоне

Подробнее


Полные версии уроков (с картинками): урок 9.

Direct3D для VB.NET
Урок 9. Структуры PositionColored и TransformedColored

На уроке 4 у нас был один вид вершин - TransformedColored, а в последних уроках (начиная с урока 6) - PositionColored. В чем же разница между ними?

Разница в том, что за данные они хранят. Вот так определена структура TransformedColored в DirectX SDK:

    Structure TransformedColored
        Public Color As Int32
        Public Shared Format As VertexFormats
        Public Rhw As Single
        Public Shared StrideSize As Int32
        Public X As Single
        Public Y As Single
        Public Z As Single
    End Structure

А вот так определена структура PositionColored:

    Structure TransformedColored
        Public Color As Int32
        Public Shared Format As VertexFormats
        Public Shared StrideSize As Int32
        Public X As Single
        Public Y As Single
        Public Z As Single
    End Structure

Как вы видите, они отличаются только наличием/отсуствием поля Rhw типа Single. Во всем же остальном они одинаковы. Что же это за поле? Его присутствие означает, что мы используем так называемые однородные координаты. В однородных координатах кроме трех привычных координат x, y, z есть еще одна, которая равна обычно 1. Помните, как мы писали код в уроке 4:

    ...
    verts(0).X = 150
    verts(0).Y = 50
    verts(0).Z = 0.5F
    verts(0).Rhw = 1
    ...

Вот тут 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. Их мы рассмотрим на последующих уроках.

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX new!
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2004 сайт progs.biz
© 2002-2004 Алексеев Игорь

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.directxlessons
Отписаться

В избранное