将任意2D多边形投影到3D三角网格上的最佳方法是?

时间:2018-02-13 10:47:24

标签: graphics 3d three.js webgl computational-geometry

将任意2D多边形投影到3D三角网格上的最佳方法是什么?

为了使事情更清楚,这里是问题的可视化:

img

三角形网格表示地形,因此可以被认为是2.5D。我希望能够将投影多边形视为单独的对象。 这个特殊的实现是在WebGL和three.js中完成的,但任何适合交互式3D应用程序的解决方案都很有用。

1 个答案:

答案 0 :(得分:1)

如果您的问题不是如何纹理贴图表面,那么您必须生成新的3D多边形。

您将使用一些投影机制(例如平行机制)将3D问题转换为2D。

首先将曲面反投影到多边形平面上。多边形将覆盖在相应的2D网格上。现在,对于每个方面,找到构面和多边形的交点(在布尔意义上)。

为此目的,您将需要一个多边形交叉机械,例如Weiler-Atherton或Sutherland-Hodgman裁剪算法(后者更简单,但仅适用于凸窗)。 (另请查看http://www.angusj.com/delphi/clipper.php

剪裁后,您将投射到原始小平面。