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

Уроки по DirectX

  Все выпуски  

Уроки по DirectX


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

Direct3D для Visual C++. Рассылки сайта progs.biz
Выпуск № 27
 
Начало > DirectX > Direct3D > VC++.NET > Урок 8

Горнаков С. DirectX 9. Уроки программирования на С++.
Горнаков С. DirectX 9. Уроки программирования на С++
Заказать на Озоне

Подробнее


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

Direct3D для Visual C++
Урок 8. Показ треугольника

На этом уроке наш треугольник, наконец-то, появится!

Вот такие действия нам надо произвести для этого. Во-первых, надо где-то вызвать написанную на прошлом уроке функцию . Это мы делаем в функции Render, код которой надо поменять следующим образом:

VOID Render()
{
    ...
    // Начало отрисовки сцены.
    if(SUCCEEDED(g_pd3dDevice->BeginScene()))
    {
        // Делаем матричные преобразования:
        SetupMatrices();
        // Отрисовка треугольника.
        g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX));
        g_pd3dDevice->SetFVF(D3DFVF_XYZ|D3DFVF_DIFFUSE);//6:
        g_pd3dDevice->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1);
        // Конец отрисовки сцены.
        g_pd3dDevice->EndScene();
    }
    ...
}

Если вы теперь запустите программу, то увидите черный (а на самом деле он просто не освященный) вращающися треугольник, который к тому же показывает только одну сторону. Нам его надо во-первых, как-то раскрасить и, во-вторых, показывать с обоих сторон. Для этого нам надо внести небольшое дополнение (буквально две строчки) в функцию InitD3D, а именно вызвать для g_pd3dDevice метод SetRenderState с различными параметрами:

HRESULT InitD3D( HWND hWnd )
{
    ...
    // Непосредственное создание устройства.
    if( FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_REF,
        hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING,
        &d3dpp, &g_pd3dDevice)))
    {
        ...
    }
    // Показываем треугольник с обоих сторон.
    g_pd3dDevice->SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE );
    // Показываем цвет у треугольника.
    g_pd3dDevice->SetRenderState( D3DRS_LIGHTING, FALSE );
    ...
}

Компилируем и запускам программу. Результат будет таким, как мы и ожидали - вращающийся цветной треугольник.

Рассылки сайта 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-2005 сайт progs.biz
© 2002-2005 Алексеев Игорь

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

В избранное