我需要设置一个“依赖纹理”,以便使用一个纹理查找的返回值来确定从第二个纹理查找的位置。
您能指出我需要执行此操作的正确 gl API 调用吗?
像这样。
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);
}