找出投影平面内的三角形

时间:2016-11-16 15:48:46

标签: opengl math graphics projection rasterizing

让我们假设以下三条线代表投影变换后三维空间中三角形的顶点(例如,这些只是任意值):

0.0000000 0.0000000 0.9797980
0.1191754 0.0000000 0.9797980
0.0000000 0.1191754 0.9797980

如果投影平面是长度为2的正方形(左上角点(-1,1)和右下角点(1,-1)),并且我已经相对于z轴执行了剪切,则z co-纵坐标将在[-1,1]之内。那么,我如何确定完全位于投影区域之外的三角形,如下图所示?它们是否具有每个顶点的x,y值> 1或者< ; -1?

1 个答案:

答案 0 :(得分:0)

没有。即使所有顶点都在可见区域之外,三角形仍然可见。例如,这将是这一点的情况:

-2  -2  0.5
 2   2  0.5
 2  -2  0.5

尽管两者都是,x和y分量都在[-1,1]之外,但三角形仍然覆盖了屏幕的一半。

实际上,没有简单的方法可以准确地确定哪些三角形位于可见区域的外部(或内部)。根据您的需要,有几种选择:

如果可以将某些三角形分类为可见,尽管它们不可见,您可以测试所有点是否在可见区域的同一侧之外。例如,如果所有点都具有x < -1等等。

如果您确实需要完美分类,Sutherland–Hodgman algorithm可能是一种选择。当输出列表为空时,三角形完全不可见。

相关问题