Если известно математическое выражение для функции texture ( ), то можно найти и аналитические выражения для ее частных производных. Например, texture( ) может изменяться волноообразно в двух направлениях вследствие комбинирования двух синусоидальных волн: texture (и, v) = sin(aw) sin(to), где a lib - некоторые константы. Если же функция текстуры получена в виде массива точек изображения, то ее вычисление в точке (и*, v*) производится с помощью линейной интерполяции, а аппроксимация частных производных осуществляется в конечных разностях.

8.5.4. Пример текстурирования с использованием OpenGL

Для того чтобы проиллюстрировать вызов средств текстурирования, предлагаемых OpenGL, покажем приложение, которое отображает вращающийся куб с различными узорами, нарисованными на его шести сторонах. На рис. 8.49 показан один кадр анимации, создаваемой этой программой.

8.5. Добавление текстуры к граням

Текстурированный куб, генерируемый программой-примером

Рис. 8.49. Текстурированный куб, генерируемый программой-примером Код данного приложения приведен в листинге 8.2. В нем используется несколько функций OpenCL - для задания шести текстур и для прикрепления их к граням куба.

Листинг 8.2. Приложение, осуществляющее вращение текстурированного куба #indude "RGBpixmap.h"

////////////////////////////////////////////////// GLOBALS IIIIIIIIIIlllllllIIIIIIIIIIIIIIIIIIIIIIIIIIII
RGBpixmap pix[6]"opengl1_573.html">⇐ Предыдущая| |Следующая ⇒