В последующих главах использование некоторых из этих функций будет иллюстрировано примерами. С теми возможностями программируемое™, которые предоставляет язык шейдеров OpenGL, текстурная память может использоваться не только как хранилище изображений текстур. Приведенные далее функции обеспечивают быстрый и гибкий доступ к этим данным, что позволяет с их помощью реализовывать различные эффекты (табл. 5.7).

S.7. Функции доступа к текстуре Таблица 5.7, Функции доступа к текстуре

CHHTaKCMc

Описание

vec4 texturelD (samplerlD sampler.

Текстурная координата coord

float coord [. float bids})

используется для поиска по ID-текстуре,

rec4 texturelDProj (samplerlD sampler.

указанной семплером. Для версии

vec2 coord [. float bias])

функции с проецированием («Proj»)

vec4 texturelDProj (samplerlD sampler,

текстурная координата coord.s делится

vec4 coord [, float bias])

на последний компонент coord. При ис-

vee4 texturelDLod (samplerlD sampler.

пользовании типа coord vec4 второй

float coord, float lod)

и третий компоненты coord игнорируются

vec4 texturelDProjLod (samplerlD sampler.
vec2 coord, float 7od)
vec4 texturelDProjLod (samplerlD sampler.
vec4 coord, float lod)
vec4 texture2D (sampler2D sampler.

Текстурная координата coord

vec2 coord [. float bias])

используется для поиска по 20-текстуре,

vec4 texture2DProj (sampler2D sampler.

указанной семплером. Для версии функ-

vec3 coord [. float bias]) vec4 texture2DProj

ции с проецированием («Proj») текстур-

(sampler2D sampler. yec4 coord [, float iu'a5])

ная координата {coord, s. coord, t) де-

vec4 texture2DLod (sampler2D sampler.

лится на последний компонент coord.

vec2 coord, float 7od) vec4 texture2DProjLod

При использовании типа coord vec4

(sampler2D sampler. vec3 coord, float lod)

третий компонент coord игнорируется

vee4 texture2DProjLod (sampler2D sampler.
vee4 coord, float ?od)
vec4 texture3D (sampler3D sampler. vec3 coord

Текстурная координата coord использует-

[. float bias]) vec4 texture30Proj

ся для поиска по Зй-текстуре, указанной

sampler3D sampler. vec4 coord [, float bias])

семплером. Для версии функции с прое-

vec4 texture3DLod (sampler3D sampler. vec3 coord.

цированием («Proj») текстурная коорди-

float ?od) vec4 texture3DProjLod (sampler3D

ната делится на coord, о

sampler.vec4 coord, float /od)
vec4 textureCube (samp!erCube sampler.

Текстурная координата coord исполь-

vec3 coord [. float ofas]) vec4 textureCubeLod

зуется для поиска по кубической тексту-

(samplerCube sampler. vec3 coord, float lod)

ре, указанной семплером. Направление

coord учитывается при выборе грани,

по которой выполняется поиск двухмер-

ной текстуры

vec4 shadowlD (samplerlDShadow sampler.

Текстурные координаты coord исполь-

vec3 coord [, float OJ'as]) vec4 shadow2D

зуются для поиска по глубине в текстуре

(sampl er2DShadow sampler. vec3 coord

глубины, указанной семплером. Третий

[. float D7'as]) vec4 shadowlDProj

компонент coord (coord.р) сравнивается

(samplerlDShadow sampler. vec4 coord

со значением, считанным из текстуры

[. float ofas]) vec4 shadow2DProj

глубины. Текстура, связанная с семпле-

(sampler2DShadow sampler. vec4 coord

ром, должна быть текстурой глубины,

[. float of as]) vec4 shadowlDLod

иначе результаты будут неопределенны-

(samplerlDShadow sampler. vec3 coord.

ми. Для версии функции с проецировани-

float lod) vec4 shadow2DLod

ем («Proj») текстурная координата де-

(sampler2DShadow sampler. vec3 coord.

лится на coord, q, представляя значение

float 7od) vec4 shadowlDProjLod

глубины coord.picoord, q. Второй компо-

(samplerlDShadow sampler. vec4 coord.

нент coord игнорируется для ID-вариан-

float lod) vec4 shadow2DProjLod

тов функции

(sampler2DShadow sampler. vec4 coord, float 7od)

Встроенные функции


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