对于WebGL 2画布,我需要一个简单的“挑选”系统,即给定2D中的点p,系统可以判断哪个对象(如果有的话)被呈现给p。(我不需要CPU中的选择结果,只需要在着色器中。)
为了实现这一点,每个对象将使用不同的“颜色id”呈现到一个专门用于选择的框架缓冲区。我正在考虑使用R16UI或R32UI纹理格式,以及GL_NEAREST过滤。我关心的是反混叠:如何保证对象的边缘不会被反别名,从而改变输出值,并破坏挑选系统?
我正在寻找禁用反混叠的代码,并解释为什么这是/不是保证,从那些谁知道标准。
发布于 2018-03-24 17:01:45
WebGL (和OpenGL ES)不使用任何自动的反别名框架缓冲区。帧缓冲区的防混叠是一种手动操作。在WebGL1中,您根本无法反别名一个框架缓冲区。在WebGL2中,您将创建一个多示例呈现缓冲区。因此,基本上,如果您不创建一个多样本呈现缓冲区,您将不会得到反别名。
另外,整数和无符号整数纹理是不可过滤的,这意味着它们只支持gl.NEAREST。
所以没什么要给你看的。如果您使用R16UI或R32UI纹理并将其呈现给它,它就会像您所希望的那样工作。
https://stackoverflow.com/questions/49462358
复制相似问题