Шаг 46 - Пиво, ой, нет. Материалы, но изнутри

Быстро, быстро, пиво долго ждать не может, посмотрим как сделать материалы для разных сторон граней объекта (во загнул, точно, пора пить пиво ;) ).

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

GLfloat m_matDiffuseB[] = {0.5f, 1.0f, 0.7f};

Теперь возьмем и уберем одну грань кубика, просто закомментируем один из блоков glBegin(...) - glEnd(). Это для того, чтобы в нем дырка образовалась ;).

Ну, разумеется надо включить разные материальчики для внутренностей и внешностей кубика:

glMaterialfv(GL_FRONT, GL_DIFFUSE, m_matDiffuse);
glMaterialfv(GL_BACK, GL_DIFFUSE, m_matDiffuseB);

Быстро нажали F7, посмотрели на банку пива, она еще цела, смотрим что получилось. Думаю все понятно без комментариев.

Но ... всего одно замечание и пиво у нас в руках. Попробуйте в команде glLightModel поставить последний аргумент в 0 и вместо маленькой дырочки получится черная дыра. 8)

Так вот. На этом я, пожалуй, закончу маленький вступительный экскурс в материалы и источники света. Примеры на эту тему можно генерировать до бесконечности и эту бесконечность я оставляю вам для экспериментов.

Все. Я дорвался до заветной банки, желаю и вам того же. (сильно то не расслабляйтесь, дальше хуже будет. Слышали что такое трафарет? А буффер трафарета? Эээээ.... от него мозги съезжают еще похлеще чем от пива ;). Но это все потом, а пока ОНО!!!)


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Kirill V. Ratkin - 12.06.2000