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


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


Рисунок. 8-11. Планета, созданная с помощью сферического покрытия


* Автор имеет ii пилу ;{наменитый американский телесериал Star Trek, n одном и.ч .')ии:юдо¦1 которого операция «Гснсдис» превращает пустынную планету п райский уголок. — Примеч. пкрев.

/b> Ян1 Глава 8. Цвет и текстуры

На Рисунок 8-12 изображен растр, на основе которого была создана текстура.

. Текстура планеты


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

void CMainFrame::OnEditInsworld() (

// Создать сферу (планету)

C3dShape* pPlanet = new C3dShape;

pPlanet-»CreateSphere (2) ;

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

pTexl-»Load(IDB_WORLD) ;

m_pScene-»m_ImgList. Append (pTexl) ;

// Присоединить текстуру к сфере pPlanet-»SetTexture (pTexl) ;

// Создать сферическое покрытие C3dWrap wrap;

wrap.Create(D3DRMWRAPJ3PHERE,

NULL,

0, 0, 0, // Базовая точка

О, 0, 1, // Направление

О, 1, 0, // Верх

О, 0, // Базовая точка текстуры

1, 1); // Масштаб текстуры

// Наложить покрытие на сферу wrap.Apply(pPlanet) ;

pPlanet-»SetDirection(0.5, 0.8, 0);

pPlanet-»SetName ( "World" ) ;

m_pScene-»AddChild (pPlanet) ;

Параметры покрытия "тЩ: 205

m_pScene-»m_ShapeList.Append (pPlanet) ;

MakeCurrent(pPlanet) ;

}

Хромовые покрытия

Покрытия, с которыми нам приходилось работать до настоящего момента, просто накладывали текстуру на объект в фиксированном положении. В общем случае вид поверхности не зависит от положения объекта (не считая эффектов освещения). Но вдруг объект окажется блестящим? Например, на поверхности хромированного объекта отражается все, что находится вокруг него. При перемещении такого объекта отражения на нем будут незначительно меняться, но вращаться вместе с объектом они не будут.

Хромовым покрытием называется специальный вид покрытия, при котором текстура ориентируется по отношению к макету, а не к оси самого объекта. В результате возникает иллюзия отражения на поверхности объекта при его перемещении. Для получения наилучшего эффекта следует связать текстуру с фоном макета. На Рисунок 8-13 изображен пример хромового покрытия, при котором одно и то же изображение использовано в качестве текстуры и фона.




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



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