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


Цвет и текстуры - часть 19


void CMainFrame::OnEditChroroe() {

// Загрузить фигуру C3dShape* pShape = new C3dShape;

if (!pShape-»Load() ) ( delete pShape;

return;

}

NewScene() ;

ASSERT(m_pScene) ;

// Создать хромовое покрытие m__pChromeWrap = new C3dChromeWrap;

m_pChromeWrap-»Create (pShape,

m_wnd3d.GetStage () -»GetCamera () ) ;

// Загрузить фоновое изображение макета C3dlmage* pimg = new C3dlmage;

p!mg-»Load(IDB_CHROME) ;

m_pScene-»m_InigList.Append (pimg) ;

m_pScene-»SetBackground (pimg) ;

// Загрузить текстуру C3dTexture* pTex = new C3dTexture;

pTex-»Load(IDB CHROME);

Параметры покрытия '"^Ц; 207

m_pScene-»m_ImgList .Append (pTex) ;

// Наложить текстуру pShape-»SetTexture (pTex) ;

// Сделать ее очень блестящей C3dMaterial matt-mat.SetSpecularPower (2000) ;

pShape-»SetMaterial (&mat) ;

// Присоединить новую фигуру m_pScene-»AddChild(pShape) ;

m pScene-»m_ShapeList .Append (pShape) ;

MakeCurrent(pShape) ;

// Слегка повернуть фигуру p3hape-»SetRotation (1, 1, 1, 0.03);

(

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

Для фона макета и текстуры выбирается одно и то же растровое изображение, IDB_CHROME. Текстура присоединяется к объекту функцией C3dShape::SetTexture. Обратите внимание — мы не пользуемся функцией C3dWrsp::Apply, как это делалось для других типов покрытий; данная функция вызывается позже, во время движения фрейма. С помощью объекта C3dMaterial мы изменяем отражающие свойства поверхности и придаем ей металлический блеск. Наконец, остается лишь включить фигуру в макет и привести ее во вращение, чтобы продемонстрировать эффект хромирования.




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



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