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

Уроки по DirectX

  Все выпуски  

Уроки по DirectX


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


DirectX. Уроки с сайта http://progs.biz

Рассылка №5

DirectX. Direct3D. VB.NET. Урок 4. Рисуем треугольник.

Полные версии уроков (с картинками) можно найти по адресам:
Урок 4. Рисуем треугольник.

Н. Секунов. Программирование на C++ в Linux.
Н. Секунов. Программирование на C++ в Linux
Заказать на Озоне

Подробнее

Рассылки сайта progs.biz через subscribe.ru
Delphi. Уроки
Delphi. Уроки. Уровень - от начинающего до профи. Каждый урок рассчитан на 15 - 20 минут. Темы - библиотека VCL, создание компонентов, FAQ, работа с базами данных (InterBase и др).

Direct3D для VB.NET. Урок 4. Рисуем треугольник

На первом занятии мы с вами произвели инициализацию устройства для рисования с использованием DirectX. Настало время что-нибудь нарисовать.

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

Итак, приступаем. Цель этого урока - нарисовать только один треугольник.

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

Public Sub OnCreateVertexBuffer(ByVal sender As Object, ByVal e As EventArgs)
            Dim vb As VertexBuffer = CType(sender, VertexBuffer)
            Dim verts As CustomVertex.TransformedColored() = _
                CType(vb.Lock(0, 0), CustomVertex.TransformedColored())
            'Задаем координаты и цвета вершин.
            verts(0).X = 150
            verts(0).Y = 50
            verts(0).Z = 0.5F
            verts(0).Rhw = 1
            verts(0).Color = System.Drawing.Color.Aqua.ToArgb()
            verts(1).X = 250
            verts(1).Y = 250
            verts(1).Z = 0.5F
            verts(1).Rhw = 1
            verts(1).Color = System.Drawing.Color.Brown.ToArgb()
            verts(2).X = 50
            verts(2).Y = 250
            verts(2).Z = 0.5F
            verts(2).Rhw = 1
            verts(2).Color = System.Drawing.Color.LightPink.ToArgb()
            vb.Unlock()
        End Sub

В этом методе мы определяем координаты и цвета всех вершин нашего буфера.

Далее добавляем код в InitializeGraphics:

            ...
            device = New Device(0, DeviceType.Reference, Me, _
                CreateFlags.SoftwareVertexProcessing, presentParams)
            AddHandler device.DeviceCreated, AddressOf Me.OnCreateDevice
            Me.OnCreateDevice(device, Nothing)
            Return True
            ...

Потом добавляем переменную для вершин:

Private vertexBuffer As vertexBuffer = Nothing

В методе InitializeGraphics мы добавили метод OnCreateDevice в качестве обработчика. Его надо еще написать. Вот его код:

Public Sub OnCreateDevice(ByVal sender As Object, ByVal e As EventArgs)
        Dim dev As Device = CType(sender, Device)
        'Создаем вершинный буфер из 3 вершин.
        vertexBuffer = New VertexBuffer(GetType(CustomVertex.TransformedColored), 3, _
            dev, 0, CustomVertex.TransformedColored.Format, Pool.Default)
        AddHandler vertexBuffer.Created, AddressOf Me.OnCreateVertexBuffer
        Me.OnCreateVertexBuffer(vertexBuffer, Nothing)
End Sub

И, наконец, вставляем код в метод render:

        ...
        'Тут будем добавлять код.
        device.SetStreamSource(0, vertexBuffer, 0)
        device.VertexFormat = CustomVertex.TransformedColored.Format
        device.DrawPrimitives(PrimitiveType.TriangleList, 0, 1)
        'Заканчиваем сцену.
        ...

Все! Компилируем и любуемся на получившийся разноцветный треугольник на синем фоне.

Наверх

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


BannerDrive.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное