【问题标题】:finding out triangles inside the projection plane找出投影平面内的三角形
【发布时间】:2017-03-30 21:38:45
【问题描述】:

假设以下三行表示投影变换后三角形在 3D 空间中的顶点(这些只是举例的任意值):

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 或

【问题讨论】:

    标签: opengl math graphics projection rasterizing


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

    • 答案保持不变。 z 坐标实际上在这里并没有什么不同。唯一可以轻松说的是,当其中一个点在两个轴上的 [-1, 1] 内时,三角形肯定是可见的。但对于其他一切,没有简单的解决方案。
    • 关于图像:在这种情况下,我的回答的第一种方法将起作用。但是例如,[0,3]、[3,3]、[3,0] 会被错误地分类为可见,尽管它不是。
    • 第一种方法是什么意思?你能详细说明一下吗? @BDL
    • 倒数第二段:)
    • 你能帮我解决这个问题吗? stackoverflow.com/questions/40655614/…@BDL
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-19
    • 2012-11-07
    • 1970-01-01
    • 2014-03-24
    相关资源
    最近更新 更多