【发布时间】:2015-06-04 05:23:00
【问题描述】:
我正在创建一个简单的小软件 3D 引擎。现在,如果所有顶点都在截锥体之外,则多边形不会渲染,这一切都很好,直到您靠近多边形并且所有顶点都离开屏幕但中间仍在截锥体内但它省略了无论如何。无论如何我都会尝试渲染它,但我需要对其进行一些优化,所以这是我想到的第一个。
如果你不明白我想表达什么,这里是一个 gif 和一些问题代码。
boolean v1Inside = v1.isInsideViewFrustum();
boolean v2Inside = v2.isInsideViewFrustum();
boolean v3Inside = v3.isInsideViewFrustum();
if (v1Inside && v2Inside && v3Inside) {
rasterizeTriangle(v1, v2, v3);
return;
}
if (!(v1Inside || v2Inside || v3Inside)) {
return;
}
【问题讨论】:
-
您要查找的内容通常称为“剪辑”。如果您搜索“裁剪算法”,您应该会找到大量材料。例如,一种标准算法是 Sutherland-Hodgman:en.wikipedia.org/wiki/Sutherland%E2%80%93Hodgman_algorithm。
标签: java optimization 3d rendering rasterizing