Тематическое задание 8.3. Добавление закраски полигонов и удаления невидимых поверхностей при помощи буфера глубины Уровень сложности III, однако выше, чем требуется для тематического задания 8.2.

Реализуйте свой собственный буфер глубины и используйте его в приложении, которое вы уже разработали в тематическом задании 8.2. Вам потребуется также разработать подпрограмму закраски полигонов (см. главу 10).

Тематическое задание 8.4. Визуализация текстуры Уровень сложности II, однако сложнее, чем тематическое задание 8.1.

Усовершенствуйте программу, которую вы написали в тематическом задании 8.1, так чтобы грани каркасных объектов можно было раскрашивать текстурами. Скомпонуйте программу, способную читать файл ВМР-нзображения и привязывать его к объекту текстуры OpenGL. Поэкспериментируйте с размещением пяти различных текстурных изображений и одной процедурной текстуры на грани куба и заставьте куб вращаться в анимации. Предусмотрите пользовательское переключение клавишей между линейной интерполяцией и интерполяцией, более подходящей для визуализации текстур.

Тематическое задание 8.5. Применение процедурных ЗО-текстур Уровень сложности III.

Можно достигнуть интересного эффекта, если заставить объект выглядеть изготовленным из какого-либо твердого материала, вроде дерева или мрамора. 30-текстуры подробно рассматриваются в главе 14 в связи с трассировкой лучей, однако для достижения убедительного эффекта на поверхность объекта можно отображать «порции» трехмерной текстуры.

Предположим, что имеется текстурная функция В(х, у, z), придающая различным точкам трехмерного пространства различные интенсивности цвета. Например, с помощью функции В(х, у, z) можно было бы отобразить степень «синевы» моря в точке (х, у, z). Когда вы плывете, то перед глазами видите различную степень синевы. Если заморозить брусок воды и вырезать из этого бруска какую-нибудь форму, то поверхность этой формы будет переливаться различными оттенками синего цвета. Кроме того, В( ) может быть вектор-функцией и содержать для каждой точки (х, у, z) три значения, представляющие собой коэффициенты диффузного отражения красного, зеленого и синего света для


⇐ Предыдущая| |Следующая ⇒