我正在尝试使用WebGL创建一个小游戏。在这个游戏中,我想使用GLSL创建多个声纳效果(从一个点向外传播的发光环)。 然而,这些声纳效应中的每一个都应该受到不同掩模的影响。此掩码已创建并存储在画布中,并使用glsl.js链接到片段着色器以便于使用。
我为片段着色器中的每个声纳效果以及它们的结构创建了一个对象。但是,当尝试将掩码画布作为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
};