我正在使用OpenGL测试一些渲染内容,我注意到我遇到了一些形成平面的细长多边形的问题。因此,当这些长多边形中的两个直接彼此相邻,在长边捕捉时,我注意到边缘处的一些像素是不可见的。当我移动相机时,这些不可见的像素会移动。
我发现这是因为这些“条子”多边形边缘的像素是不可见的,因为光栅化认为它们不在这个特定视角的那个多边形内。
我没想到的是如何告诉OpenGL还在屏幕上放置直接位于该多边形边缘的像素。
如果您发现我对问题的描述有点奇怪,请参阅第27页及以下http://www.ugrad.cs.ubc.ca/~cs314/Vjan2008/slides/week5.day3-4x4.pdf。这就是我的意思。
编辑:好吧我想我必须弄清楚我的问题是什么,因为我有一种感觉,我不能用抗锯齿技术来解决它
aaa|b|cc
aaa|b|cc
aaa|b|cc
^ ^
1 2
- the polygons a, b and c form a plane
- some pixels at edge 1 and 2 are invisible at certain camera angles
答案 0 :(得分:1)
我没想到的是如何告诉OpenGL还在屏幕上放置直接位于该多边形边缘的像素。
一般情况下,你没有。如果OpenGL认为三角形的一部分太薄而无法为给定的分辨率渲染,那么它太薄而无法渲染。这个问题的一般形式称为“别名”。
解决方案是使用抗锯齿技术。例如,多重采样。创建上下文时,请选择要使用的多个样本。