Реализация проектора при помощи кубической карты
Рассмотрим, каким образом можно реализовать источник света (проектор) при помощи кубической карты. Для проектора освещенность зависит от направления на источник, т. е. является функцией направления и поэтому может быть представлена при помощи кубической текстурной карты. Пусть источник света расположен в точке light. Тогда для произвольной вершины Vj в качестве текстурных координат для кубической карты, задающей распределение освещенности, возьмем значения согласно формуле(s, t, г) = Vi – light.
Затем каждой точке произвольной грани сопоставим текстурные координаты на карте освещенности, т. е. зададим падающий на нее свет. Исходя из этого, мы можем реализовать освещение таким проектором следующим образом: 1.В нулевом текстурном блоке мы разместим обычную двумерную текстуру объекта и зададим закон наложения GL_REPLACE. 2.В первом текстурном блоке мы разместим: кубическую карту, задающую распределение освещенности. В качестве закона наложения выберем GLJMODULATE, текстурные координаты будем задавать по формуле.Если мы при этом хотим задавать не только положение источника света в пространстве, но и его ориентацию, то это легко можно сделать при помощи матрицы преобразования текстурных координат. Ориентация объекта в пространстве может быть задана при помощи ортогональной матрицы (или трех углов Эйлера, или кватерниона). Тогда, если задать в качестве матрицы преобразования текстурных координат транспонированную матрицу ориентации (для ортогональных матриц транспонированная совпадает с обратной), то этого будет достаточно для моделирования ориентации источника света.
Наш сайт создан для любителей и профессионалов, для тех кому не безинтересна система под названием Linux. На нашем сайте вы найдете статьи от установки до программирования на Linux'e, отзывы о системе, советы и поддержка начинающим пользователям. Для новичком, доступен раздел "Запускаем Linux", в котором рассказывается все от "упаковки", до первого включения системы.