0

我需要设置一个“依赖纹理”,以便使用一个纹理查找的返回值来确定从第二个纹理查找的位置。

您能指出我需要执行此操作的正确 gl API 调用吗?

4

2 回答 2

3
于 2013-09-30T18:03:35.560 回答
1

像这样。

uniform sampler2D coord_texture;
uniform sampler2D sampling_texture;
uniform vec2 InvWinSize;

void main(void){
    vec2 uv = gl_FragCord.st*InvWinSize;

    vec2 tex_coord = texture(coord_texture, uv).st;
    vec4 sampled = texture(sampling_texture,tex_coord);
}

我使用屏幕坐标访问了第一个纹理,但您可以使用所需的任何 uv,例如,来自顶点着色器的 uv:

uniform sampler2D coord_texture;
uniform sampler2D sampling_texture;

in vec2 uv;

void main(void){

    vec2 tex_coord = texture(coord_texture, uv).st;
    vec4 sampled = texture(sampling_texture,tex_coord);
}
于 2013-09-30T16:50:13.610 回答