Javascript GLSL片段着色器:采样器2D问题
我正在尝试使用WebGL创建一个小游戏。在这个游戏中,我想使用GLSL创建多个声纳效果(从一个点向外移动的发光环)。 然而,这些声纳效果中的每一个都应该受到不同面具的影响。此遮罩创建并存储在画布中,并使用链接到片段着色器以便于使用 我在片段着色器中为每个声纳效果及其结构创建了一个对象。但是,当尝试将遮罩画布作为Sampler2D类型添加到它时,着色器脚本将消失,从而产生非描述性错误 这让我想知道Sampler2D:是不能在结构内部使用,还是我做了其他错误的事情 我也尝试过做同样的事情,但这次将采样器保持在结构之外,并将它们放入数组中。 但是,片段着色器也不喜欢这样。是否无法使用二维对象的数组 总结如下:Javascript GLSL片段着色器:采样器2D问题,javascript,canvas,glsl,webgl,fragment-shader,Javascript,Canvas,Glsl,Webgl,Fragment Shader,我正在尝试使用WebGL创建一个小游戏。在这个游戏中,我想使用GLSL创建多个声纳效果(从一个点向外移动的发光环)。 然而,这些声纳效果中的每一个都应该受到不同面具的影响。此遮罩创建并存储在画布中,并使用链接到片段着色器以便于使用 我在片段着色器中为每个声纳效果及其结构创建了一个对象。但是,当尝试将遮罩画布作为Sampler2D类型添加到它时,着色器脚本将消失,从而产生非描述性错误 这让我想知道Sampler2D:是不能在结构内部使用,还是我做了其他错误的事情 我也尝试过做同样的事情,但这次将采
- 是否可以在结构内部使用Sampler2D对象
- 是否可以创建二维对象的阵列
- 如果这两个都不可能:如何以其他方式将遮罩传递给片段着色器
struct Sonar{
float type;//kind of effect, right now only one implemented
float posx;//xposition of effect
float posy;//yposition of effect
float incr;//how far the effect is in its animation
bool alive;//If the effect should be shown
float strength;//How strong the effect should be
sampler2D shadows;//Shadow mask
};
这似乎是定制的完美场景。你能展示你正在使用的“结构”代码吗?谢谢你的回复@BrettHale:我以前从未听说过LOD。你能告诉我怎么用吗?