看起来你的着色器可能存在问题,但我不能确定,因为你没有发布该着色器。当你打开MSAA时,着色器有可能在像素区域内但在三角形区域外的样本中执行。如果没有MSAA,则此像素根本不会导致片段着色器执行,但现在你打开了MSAA,如果一个样本是活动的,它必须为该像素执行片段着色器。 我发布的链接更深入地解释了这个问题。它还提供了避免此问题的方法,但我不知道OpenGL ES 2.0是否提供对质心采样的访问。如果没有,那么你将不得不为那些会导致伪影的东西禁用多重采样渲染:glDisable(GL_MULTISAMPLE)。当你需要多重采样激活时,可以重新启用它。
- Nicol Bolas
4
你很棒。我会研究一下的。 - paranoidroid
看起来OpenGL ES 2.0不支持中心采样。此外,我需要在着色器中将地面纹理函数与大气函数分开,以便我可以仅禁用大气部分。这基本上是我的唯一选择,对吧? - paranoidroid