THREE.PlaneGeometry 是 Three.js 库中用于创建平面几何体的类,其构造函数 new THREE.PlaneGeometry(width, height, widthSegments, heightSegments) 的四个参数含义如下:
-
width
平面在 X 轴方向的宽度(大小),默认值为 1。
-
height
平面在 Y 轴方向的高度(大小),默认值为 1。
-
widthSegments
平面在 X 方向上的分段数(细分数量),即横向的网格数量。默认值为 1,必须是整数。
- 分段数越多,平面被分割成的小网格(三角形)就越多,几何体的顶点数也会增加(顶点数 =
(widthSegments + 1) * (heightSegments + 1))。
- 更高的分段数允许更复杂的变形(如应用波浪动画)或曲面细分。
-
heightSegments
平面在 Y 方向上的分段数(细分数量),即纵向的网格数量。默认值为 1,必须是整数。
- 同样,分段数越多,几何体越精细,但性能开销也会增加。
假设创建一个 width=4、height=2 的平面:
- 低分段数(如
1x1)适合简单的静态平面(如地面、墙壁)。
- 高分段数(如
32x32)适合需要复杂变形的场景(如布料模拟、地形生成)。
若代码中使用 width - 1 和 height - 1 作为分段数,需确保 width 和 height 是大于等于 2 的整数,否则可能导致分段数为 0 或负数,引发错误。
例子:
const width = 100,height=100;
const geometry = new THREE.PlaneGeometry(width, height, width - 1, height - 1);
问:geometry的position属性长度大小?
答:一共有100*100=1万个点。一个点的坐标包含x,y,z三个值。所以长度为3万。