首先,您需要进行体素/三角形相交测试.
为了实现这一点,一种自然的方法是使用立方体的六个面的半平面在三角形上重复应用多边形裁剪算法(例如3D中的Sutherland-Hodgman),并检查之后剩下的内容.
Graphics Gems III,Triangle-Cube Intersection,pp.236-239(可实现)中描述了一种更好的方法.
然后,您需要枚举与三角形相交的所有体素.
第一种可能的方法:
[xmin,xmax]x[ymin,ymax]x[zmin,zmax]扫描体素以找出哪些与三角形相交:
对于x在[xmin, xmax]
对于y在[ymin, ymax]
对于z在[zmin, zmax]
检查体素是否(x, y, z)与三角形相交
这可以通过以下几种方式进行优化:
for循环中递增地计算.for通过仅考虑与三角形的支撑平面相交的体素,可以减小最后一个循环的范围.第二种可能的方法:
| 归档时间: |
|
| 查看次数: |
2433 次 |
| 最近记录: |