问题标签 [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 投票
1 回答
1157 浏览

opengl - 更改片段着色器中显示的纹理

我正在尝试将 2 个纹理传递给着色器,但我对这里的工作有点困惑这是 opengl 代码

顶点着色器是

片段着色器是

当我换线时

仍然只显示第一个纹理,但是当我注释掉下面的行时,显示了第二个纹理,你能解释一下为什么会这样吗?

0 投票
2 回答
2289 浏览

c++ - opengl multitexturing glsl - 一次只有一个纹理

好像如果我使用texture(texture0,textCoord)一次然后我尝试再次使用texture(texture1,textCoord);它返回的另一个纹理(0,0,0,0);我只是不知道为什么。

在我的程序中,它似乎是一个工作顺序,如果深度比其他工作不工作,如果我不使用深度比颜色工作等等。(深度,颜色,正常,位置,光泽是顺序)

这是绑定部分:

这可能是 FBO 类:

0 投票
1 回答
2554 浏览

opengl - Opengl 多重纹理和混合

我解释我的问题:

我有三个 png 图像,第一个有通道 alpha,另外两个是 RGB:

框架 面具 背景

我必须把它混合起来才能得到这个结果

在此处输入图像描述

现在我知道我必须以这种方式掩盖第三个纹理:

从现在开始我写了这个:

但我不确定如何使用 glTexEnvi 来获得所需的效果,有什么建议吗?

0 投票
2 回答
171 浏览

opengl - OpenGL着色器 - 重叠多个纹理

我无法找到一种模式来相互绘制纹理。我需要使结果片段颜色如下:

tex1 + (1-tex1alpha)*tex2 + (1-tex1alpha-tex2alpha)*tex3

不是混合纹理,而是在图像编辑器中将一个放在其他类似图层上。

0 投票
1 回答
7168 浏览

opengl - OpenGL 3.3 多纹理:GL_TEXTURE1 及以下始终为黑色(只有 GL_TEXTURE0 可以正常工作)

GL_TEXTURE0 之后的每个纹理(插槽 0 上的纹理)都是黑色的。

片段着色器(通过改变权重检查不同纹理的示例代码):

我上传这样的纹理(摘录!):

我尝试更改纹理槽并上传不同的纹理,但我总是黑屏,直到我在 GL_TEXTURE0 上使用纹理。

0 投票
1 回答
497 浏览

java - 多纹理在 LWJGL 中不起作用

为了尝试在 LWJGL 中实现多重纹理,我遵循了本教程。但是每当我运行我的代码时,第二个纹理都不会出现,或者第一个纹理会取而代之。这是我绑定纹理的方法:

TexturesmyTex和myTex2 都是drawStuff()我绘制所有内容的函数。我使用 slick 来加载纹理等,这是我的 bindTexture 函数:

drawStuff()我有一个自定义的“Face”类,这里是我在那里绘制所有内容的地方:

t1, t2, t3, norm1, norm2, norm3, p1, p2, p3我制作的 3D 矢量类的所有实例在哪里(我只是在 和 的 z 分量t1, t2中保留一个 0 t3)。顶点和片段着色器源与上述教程中的完全相同。所有代码都可以正常使用普通的旧纹理。关于如何完成这项工作的任何想法?或者可能是使用 LWJGL 时易于遵循的更好的教程?

0 投票
1 回答
383 浏览

opacity - x3d - 具有不同重复级别的透明纹理

我想使用不重复的不透明度贴图使用重复的基础纹理创建地形图层。(在 alpha 中或作为单独的纹理)

使用像素纹理可以得到正确的结果,但我的 opacity.png 地图也保存为 8 位灰度。

0 投票
1 回答
479 浏览

c# - SharpDx 获取 Texture2D,SamplerState 的着色器变量名称

我想知道是否可以获得 Texture2D 和 SamplerState 的变量名称。我知道我能够通过效果框架获得这些。但我正在寻找一种没有这个框架的方法。就像使用 Constantbuffers (ShaderReflection) 的方式一样。我想像这样制作 HLSL 代码

有谁知道我如何能够在没有 EffectsFramework 的情况下访问 VariableNames?

0 投票
1 回答
119 浏览

opengl - 具有多重纹理的凹凸贴图

我正在尝试使用多重纹理实现凹凸映射,并且法线从纹理颜色值(正常纹理)到光照方程。现在,当我在该对象的表面上旋转相机时,我可以看到随着相机旋转的一些镜面高光,当我旋转相机时,我可以在不同的部分看到这些高光。凹凸贴图的正确实现吗?

0 投票
1 回答
849 浏览

canvas - WebGL Multitexturing with Video

I'm trying to use two textures in a fragment shader and having trouble getting WebGL to send the textures properly. I can send one at a time, but when I try to do both at once, I just get black. I've seen some other multitexturing examples around, but all of them deal with loading an array of images.

I want to load a video into one texture, and a canvas into the 2nd texture. I'm fairly certain all my shaders are fine, since I'm just moving them over from a c++ opengl program I wrote. Also, I can display the video or canvas each separately by commenting one or the other out, but like I mentioned above, together they seem to trigger an error.

Here's the snippet of code where I'm creating and filling the textures.

And then inside my draw loop:

I'm also getting a warning message saying:

GL_INVALID_ENUM : glActiveTexture: texture was GL_FALSE

GL_INVALID_ENUM : glActiveTexture: texture was GL_LINES

and also:

WebGL: drawArrays: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering or is not 'texture complete'. Or the texture is Float or Half Float type with linear filtering while OES_float_linear or OES_half_float_linear extension is not enabled.

The line triggering the warning is:

Thanks in advance for the help!