8.8. Тематические задания указанного материала в каждой точке пространства. Нетрудно сконструировать несколько интересных функций В().

О Трехмерная черно-белая шахматная доска из 125 блоков формируется с помощью следующей функции: В(х, у, z) - ((int)(5x) + (int)(5y) + (int)(5z)) % 2 при изменении х, у, z от 0 до 1.

О В вершинах куба заданы шесть различных цветов, с непрерывно изменяющимся цветом в промежуточных точках. Используйте в качестве функции В(х, у, z) = (х, у, z), где х, у, z изменяются от О до 1. Вершина с координатами (0,0, 0) имеет черный цвет, вершина (1,0, 0) - красный и т. д.

О Все пространство может быть заполнено кубами, описанными в предыдущем пункте, поставленными друг на друга; для этого может быть использована функция В(х, у, z) = (fract(x), fract(#), fract(z)), где fract(x) - дробная часть величины х. Методы создания деревянной фактуры и мраморных разводов рассматриваются в главе 14, но их можно применить и здесь.

В данном контексте мы хотим наложить на поверхности текстуру такого вида. Для того чтобы сделать это, нужно с помощью функции В( ) вычислить битовую карту (bit map) для каждой грани объекта. Если объект, например, является кубом, то для каждой из шести граней куба вычисляется битовая карта. Пусть определенная грань куба характеризуется плоской поверхностью Р + at + bs, где s и t изменяются в диапазоне от 0 до 1. Затем используем в качестве текстуры функцию В(Рх + at + bxs, Ptj + at + b^s, Рг + af + bs). Отметим, что если в узоре В() имеет место какая-нибудь состыковка (то есть соседние точки обладают почти одинаковой интенсивностью или цветом), то в этом случае и соседние точки смежных граней также будут иметь почти одинаковый цвет. Вследствие этого объект действительно выглядит как выточенный из единого куска сплошного материала.

Расширьте тематическое задание 8.4, включив в него наложение такой текстуры на грани куба и икосаэдра. Используйте шахматную текстуру, текстуру цветного куба, а также древесную текстуру (они рассматриваются в главе 14).


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