首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GLSL中使用独立的纹理坐标进行多重纹理的正确方法是什么?

在GLSL中使用独立的纹理坐标进行多重纹理的正确方法是什么?
EN

Stack Overflow用户
提问于 2015-08-11 19:34:07
回答 1查看 328关注 0票数 0

Multitexturing曾经是简单和直接的。绑定纹理,调用glBegin,然后进行渲染,除了为每个纹理调用glMultiTexCoord而不是glTexCoord。然后,所有这些都被弃用了。

我现在在四处寻找正确的方法,但我从Khronos Group官方来源和博客上找到的所有教程都假设您希望对所有纹理使用相同的纹理坐标集,这是一个非常简单的假设,不适用于我的用例。

假设我有纹理A和纹理B,我想渲染纹理B中的颜色,在矩形rB中,使用纹理A中的Alpha值,在矩形rA中(为了简单起见,它具有与rB相同的高度和宽度,但不具有相同的Left和Top值),使用OpenGL 3,而不使用任何废弃的功能。这样做的正确方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2015-08-11 19:48:08

在着色器中,您只需声明(并使用)一组额外的纹理坐标和第二个采样器。

代码语言:javascript
复制
vec4 sample1 = texture(texture1, texCoord1);
vec4 sample2 = texture(texture2, texCoord2);

在指定模型时,将第二组texCoords添加到属性中:

代码语言:javascript
复制
glVertexAttribPointer(tex1Loc, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex), (void*)offsetof(texCoord1, Vertex));
glVertexAttribPointer(tex2LOC, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex), (void*)offsetof(texCoord2, Vertex));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31940645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档