在3D中渲染带有面的n点多边形

时间:2013-02-06 05:11:02

标签: three.js

新手到three.js。我有多个n边多边形显示为面(我希望多边形面是不透明的)。每个多边形在3D空间中面向不同的方向(基本上这些面是某些建筑物的一部分)。

以下是我尝试过的几种方法,但它们不符合要求:

  1. 使用Geometry对象并添加n-vertices和使用的线网格。它将多边形创建为空心多边形。由于我的点数不仅仅是3或4,我无法使用Face3或Face4对象。基本上是一个Face-n对象。
  2. 我查看了WebGL几何形状示例。形状对象在2D和挤出中工作。示例中的所有对象都在一个平面上。虽然我的要求是每个多边形都有不同的3D法向量。我应该使用2D形状还要注意面法线并在渲染后旋转2D形状。
  3. 或者有更好的方法来渲染多个具有不透明面的3D平面多边形,只有x,y,z顶点。

1 个答案:

答案 0 :(得分:2)

只要您的多边形是凸的,您仍然可以使用Face3对象。如果你取一个n边多边形,比方说六边形,你可以通过将顶点编号为(0,1,2)作为一个面,顶点(0,2,3)作为另一个面,顶点(0, 3,4)作为最后面的其他面和顶点(0,4,5)。如果你把它画在纸上,我想你可以得到这个想法。但这仅适用于凸多边形。