Программируемая часть операций OpenGL

при одинаковых координатах в предметном пространстве и при одних и тех же матрицах проекции и модели-вида. Такая инвариантность может быть достигнута использованием встроенной функции ftransform в вершинном шейдере;

gl_Position = ftransforme):

А код вершинного шейдера

gl_Posit1on = glJfodelViewProjectMatrix * gl_Vertex может и не привести к инвариантности из-за возможных оптимизаций компилятора и потенциальных различий в аппаратном обеспечении.

4.5.6. Текстурирование С возникновением языка тендеров OpenGL появилось одно из самых значительных усовершенствований в OpenGL - в области текстурирования. Операции тек-стурирования, в принципе, могут выполняться в вершинном шейдере. Однако при обработке фрагментов также могут выполняться некоторые операции. Фрагмент-ный шейдер потенциально может получить доступ к большему количеству текстурных модулей, чем это возможно при стандартных операциях. Это означает, что за один проход рендеринга можно выполещть больше текстурных преобразований, Разработчик шейдера может запрограммировать, чтобы эти преобразования выполнялись так, как ему представляется удобным.

Изменения в процессе обработки изображения в целом требуют разъяснения новых возможностей текстурирования. Термин «.текстурный модуль» ранее использовался в OpenGL для обозначения разных понятий. Так могла называться и совокупность текстурных координат, которые можно задать для каждой вершины (сейчас это называется набором текстурных координат), и совокупность аппаратных модулей, которые можно было использовать для одновременного доступа к текстурным картам (сейчас их называют модулями текстурных изображений). Набор текстурных координат включает в себя параметры текстурных координат, такие как набор текстурных матриц и режим создания текстур. Чтобы получить количество этих параметров, нужно вызвать функцию gl Get с констан-той GL_MAX_TEXTURE UN ITS.

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


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