Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programming / GameProg / RPG_Programming_2ed.pdf
Скачиваний:
240
Добавлен:
12.02.2016
Размер:
12.06 Mб
Скачать

Джим Адамс

// Включаем альфа-проверку и альфа-смешивание m_Graphics->EnableAlphaTesting(TRUE); if(Alpha == TRUE)

m_Graphics->EnableAlphaBlending(TRUE, D3DBLEND_SRCCOLOR, D3DBLEND_DESTCOLOR);

// Рисуем каждый слой for(i = 0; i < 6; i++) {

if(m_Textures[i].IsLoaded() == TRUE) { m_Graphics->SetTexture(0, &m_Textures[i]); m_VB.Render(i*4, 2, D3DPT_TRIANGLESTRIP);

}

}

// Отключаем альфа-проверку и альфа-смешивание m_Graphics->EnableAlphaTesting(FALSE); if(Alpha == TRUE)

m_Graphics->EnableAlphaBlending(FALSE);

return TRUE;

}

При вызове функции Render вы должны передать ей текущий объект cCamera, который используется для визуализации сцены. Необязательному аргументу Alpha вы можете присвоить значение TRUE, чтобы функция Render визуализировала небесный куб с использованием техники альфасмешивания.

Использование класса небесного куба

Теперь пора посмотреть небесный куб в действии. Вообще-то, если вы уже смотрели пример NodeTree, то видели небесный куб. В этом примере для небесного куба используется единственная текстура (звезды). Хотя я и использовал такой простой пример, в небесном кубе можно применять до шести текстур, что позволяет создавать изумительно выглядящие трехмерные сцены.

Заканчиваем с трехмерной графикой

Вам редко будет нужен более мощный движок, чем представленный в этой главе. Благодаря двум способам визуализации ваших уровней и методу быстрого определения видимых объектов, частота кадров в вашей игре будет достаточно высокой.

netlib.narod.ru

431

Глава 8. Создание трехмерного графического движка

Программы на CD-ROM

Программы, демонстрирующие обсуждавшийся в этой главе код, находятся на прилагаемом к книге CD-ROM. В папке \BookCode\Chap08\ вы найдете следующие программы:

MeshLvl — показывает, как использовать отдельные сетки для конструирования уровней. Местоположение: \BookCode\Chap08\MeshLvl\.

NodeTree — демонстрирует визуализацию уровней, представленных в виде древовидной структуры. Местоположение:

\BookCode\Chap08\NodeTree\.

Objects — показывает, как использовать пирамиду видимого пространства для отбрасывания находящихся вне поля зрения объектов. Местоположение: \BookCode\Chap08\Objects\.

432

netlib.narod.ru

Соседние файлы в папке GameProg