ПРОГРАМИРУЕМ 3D ГРАФИКУ ИСПОЛЬЗУЯ DirectX


Интерфейсы и классы - часть 7


void C3dDevice::SetQuality(D3DRMRENDERQUALITY quality), {

if (!m_pIDevice) return;

m hr = m pIDevice-»SetQuality (quality) ;

AiSERT(SUCCEEDED(m_hr)) ;

)

А вот как функция C3dDevice: :SetQuality используется при первом создании объекта C3dStage и инициализации переменной m_Quality значением D3DRMRENDERJ30URARD:

BOOL C3dStage::Create(CDirect3D* pD3D) (

// Установить текущее качество визуализации m_Device.SetQuality(m_Quality);

}

Качество визуализации может соответствовать нескольким уровням — от простейшего «проволочного каркаса» до закраски методом Гуро, как показано в табл. 3-1. Я выбрал в качестве стандартной закраску Гуро (одна из технологий для получения плавной закраски), поскольку, на мой взгляд, она дает самый реалистичный результат.

Интерфейсы трехмерной графики '^Ц^ 67

Таблица 3-1. Возможные значения параметров функции SetQuality

Качество визуализации Закраска Освещение Заполнение
D3DRMRENDER WIREFRAME Однородная Нет Нет

(«проволочный

каркас»)
D3DRMRENDER UNLITFLAT Однородная Нет Сплошное
D3DRMRENDER FLAT Однородная Да Сплошное
D3DRMRENDER GOURARD Метод Гуро Да Сплошное
D3DRMRENDERPHONG Метод Фонга Да Сплошное"
* He поддерживается и Direct3D версии 2 (DircctX 2).


ПРИМЕЧАНИЕ

Многие функции библиотеки 3dPlus возвращают значение типа BOOL, которое показывает, успешно ли завершилась функция. Тем не менее я решил, что некоторые функции могут закончиться неудачей лишь при полной катастрофе, и такие функции не возвращают никакого значения. Вместо этого в функцию включается директива ASSERT, которая отлавливает любые возможные проблемы.

IDirect3DRMViewport

Интерфейс IDirect3DRMViewport управляет работой проекционной системы, изображенной на Рисунок 3-2 и преобразующей пространственные координаты в двумерные координаты на экране вашего компьютера. Функция SetBack используется для задания положения задней отсекающей плоскости на оси z. Функция SetField изменяет фокальное расстояние камеры, воспроизводящей макет.




Начало  Назад  Вперед



Книжный магазин