网格
Mesh 保存几何数据:顶点缓冲区、可选的索引缓冲区,以及描述如何将数据绘制为三角形、线或点的图元。网格本身没有材质和位置,因此同一个网格可以在不同位置、使用不同材质渲染任意多次。
网格的来源
基础形状
渲染组件的 type 为 box、capsule、cone、cylinder、plane、sphere 或 torus 时,会渲染相应形状的内置网格:
const box = new Entity('Box');
box.addComponent('render', { type: 'box' });
app.root.addChild(box);
基础形状
加载的模型
GLB 加载为容器资源,其渲染资源保存网格。asset.resource.instantiateRenderEntity() 创建实体层级,为每个渲染资源生成渲染组件。参见渲染资源示例。
在代码中创建网格
可以使用 BoxGeometry 等几何类或自己的顶点数据构建网格。参见创建网格。
共享网格
同一个网格可以在多处渲染,因此修改其顶点会影响所有使用位置。即使网格不是由你创建,也遵循这一规则:
- 基础形状的网格在每个图形设备上只创建一次,由该类型的所有渲染组件共享。
- 加载模型的网格由从该资源实例化的所有实体共享。
要只修改单个对象的几何体,请为其提供独立网格。