地形仿真的问题
-
可以参考 https://www.orillusion.com/guide/graphics/mesh.html#自定义几何体
来自定义更改一个 PlaneGeometry 的顶点import {Object3D, MeshRenderer, PlaneGeometry, LitMaterial, VertexAttributeName} from '@orillusion/core'; let obj = new Object3D(); // 添加 MeshRenderer 组件 let mr = obj.addComponent(MeshRenderer); // 设置一个平面作为基础, 定义大小和顶点数量 mr.geometry = new PlaneGeometry(100, 100, 200, 200); // 200x200个顶点 mr.material = new LitMaterial() // 获得现有顶点信息 let posAttrData = mr.geometry.getAttribute(VertexAttributeName.position); // 重写所有顶点 xyz 坐标 for (let i = 0, count = posAttrData.data.length / 3; i < count; i++) { posAttrData.data[i * 3 + 0] = ... // position x posAttrData.data[i * 3 + 1] = ... // position y posAttrData.data[i * 3 + 2] = ... // poisiton z } // 更新顶点信息 mr.geometry.vertexBuffer.upload(VertexAttributeName.position, posAttrData); // 重新计算法向量 mr.geometry.computeNormals();