问题标签 [multitexturing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2713 浏览

opengl - OpenGL中的纹理单元和顶点数组

我正在尝试为每个面绘制一个具有不同纹理的立方体。我遇到过许多教程,其中指出在display()例程中,您需要在调用之前启用所有纹理单元glDrawElements()。我这样做是我的呼唤:

这一切对我来说都很有意义。然而,当我填充缓冲区时(例如,当我加载我的模型数据时),我如何确定我指的是哪个纹理并不重要。谢谢克里斯

0 投票
2 回答
8147 浏览

opengl - OpenGL:关闭多个纹理单元

如何关闭多个纹理单元,因为它们会影响其他渲染部分。我激活我的它们:

有类似 glDeactivateTexture 的东西吗?

0 投票
4 回答
4373 浏览

c++ - OpenGL 多纹理 - glActiveTexture 为 NULL

我已经开始了一个新项目,我想在其中使用多重纹理。我之前做过多重纹理,并且我的 OpenGL 版本支持

在标题中我有:

在构造函数中,我有:

这显示消息框“multitexturing failed”,glActiveTexture 的内容为 0x00000000

当它到达 glActiveTexture( GL_TEXTURE0_ARB ); 我收到访问冲突错误

我正在实现 MVC 图,所以这一切都在我的地形视图类中

0 投票
3 回答
441 浏览

opengl - 多重纹理使整个场景变暗!

我已经使用 3 个四边形 A、B 和 C 实现了一个场景。四边形 C 在四边形 B 后面。四边形 B 位于四边形 A 的顶部。

所有四边形都使用相同的纹理,除了四边形 B。四边形 B 使用 alpha 贴图和所有其他四边形正在使用的基础纹理。

下面的代码示例是我如何使用固定功能多纹理绘制 Quad B。

当我将多纹理 alpha 贴图应用到 Quad B 时,带纹理的 Quads A 和 C 会改变颜色并最终比 Quad B 更暗。

当我删除对 GL_TEXTURE1 的任何提及时,一切都很好地呈现,没有变暗,尽管我失去了 Quad B 上的 alpha 映射。

有什么建议或提示吗?我的 glTexEnvi 调用有问题吗?

0 投票
1 回答
542 浏览

android - OpenGL es 2.0 GLSL 片段为多个纹理着色

我正在渲染帧,片段颜色基于两个纹理,我希望一次增加其中一个纹理的值,我的意思是我可以一次在两个帧缓冲区上运行一个程序吗?

像 gl_fragmentColor1 和 gl_fragmentColor2,但 gl_fragmentColor2 绑定到第二个帧缓冲区,或者我可以使用 sampler2d 以某种方式写入纹理吗?目前我正在使用颜色数组作为属性传递给着色器并计算 cpu 上的颜色变化,但接近女巫纹理要快得多,问题是我不能在我想要的时候减少像素值

0 投票
1 回答
390 浏览

c++ - 如何在每个角上绘制一个具有自己纹理的三角形?

基本上,我想为三角形的每个角提供 3 个纹理,并从一个纹理插值到另一个纹理,就像在角上用 glColor() 插值颜色一样。

编辑:由于这似乎无法通过纹理组合器实现,因此我愿意使用着色器来实现。

这是我现在拥有的片段着色器代码:

我使用 glColor(); 将颜色 (1,0,0), (0,1,0), (0,0,1) 推到每个三角形的角落,然后我读取颜色以查看我需要相应混合多少纹理.

现在的问题是我不能再在我的顶点上使用颜色了,所以我问,告诉我的片段着色器如何混合纹理的最佳方法是什么+能够在三角形的每个角上使用 glColor() 来应用一些染色?

Edit2:我设法通过发送一个告诉混合比率的 3d texcoord 来让它工作,但这是最好的方法吗?我想听听更多关于这方面的想法。

0 投票
0 回答
142 浏览

opengl-es - 在固定管道opengl中为A使用RGB

是的,这么短的问题:是否可以在 Opengl ES 1.1(固定管道)中使用任何 RGB 组件作为 alpha?

似乎 GL_COMBINE 不允许使用 RGB 作为 alpha 的来源。

为什么要施加此限制,有哪些替代方案?我已经尝试了很多东西,但我无法找到解决方案。

0 投票
1 回答
3740 浏览

ios - 具有不同 uv 坐标的 OpenGL ES 1 多纹理

我需要使用多重纹理来渲染一个对象,但是两个纹理对于同一个对象都有不同的 uv 坐标。一种是法线贴图,另一种是光照贴图。

请提供任何有用的材料。

0 投票
1 回答
608 浏览

iphone - 如何在多纹理对象后绘制具有漫反射纹理的对象

我正在使用多纹理绘制一个对象。这很好,但是当我仅使用漫反射纹理绘制其他对象时,该漫反射纹理会与先前的纹理绑定。我知道我必须停用默认以外的纹理单元,并且必须在 GL_TEXTURE0 处创建活动纹理单元,但它不起作用。

这是我的代码

对于简单的漫反射纹理,在绑定纹理之前我必须编写哪些命令?

任何其他示例代码都会有所帮助。

0 投票
2 回答
705 浏览

opengl - 如何让我的纹理正确绑定以进行多重纹理处理?

我正在尝试将彩色文本呈现到屏幕上。我有一个纹理,其中包含要显示的文本的黑色 (RGBA 0, 0, 0, 255) 表示,我还有另一个纹理,其中包含我要在其中渲染文本的颜色模式。这应该是一个相当简单的多重纹理练习,但我似乎无法让第二个纹理工作。两种纹理都是矩形纹理,因为整数坐标值更易于使用。

渲染代码:

顶点着色器:

片段着色器:

这看起来非常简单,但最终呈现的是纯黑色文本而不是彩色文本。如果片段着色器的最后一行读取,我会得到完全相同的结果gl_FragColor = texture2DRect(texAlpha, gl_TexCoord[0].st);。将最后一行更改gl_FragColor = texture2DRect(texRGB, gl_TexCoord[1].st);为使其根本不渲染任何内容。

基于此,似乎在 texRGB 上调用 texture2DRect 总是返回 (0, 0, 0, 0)。我已经确保它GL_MULTISAMPLE已启用,并将纹理绑定在单元 1 上,但无论出于何种原因,我似乎实际上并没有在我的片段着色器中访问它。我究竟做错了什么?