FoliMesh

适用于PlayCanvas的3D资源包

PlayCanvas 把 GLB 当作 container 资源导入:在编辑器里上传后会生成带模型层级的 template;纯代码环境则用 app.assets.loadFromUrl(url, 'container') 配合 asset.resource.instantiateRenderEntity()。8 个资源包——免费样品包、温带森林、针叶林、热带海滩、沙漠套件、岩石与悬崖——每个模型都带 LOD0–LOD3、碰撞体和位于底部的轴心。

PlayCanvas 没有内置 LOD 组件,用一段短脚本比较相机距离、切换 LOD0–LOD3 实体的 render 组件即可。静态树木放进同一个 batch group 合并绘制调用,大型森林则用 meshInstance.setInstancing() 做硬件实例化。树叶用 glTF MASK 设置 alphaTest,双面叶片把 cull mode 设为 none。模型可导出 GLB、FBX、OBJ,换一个 seed 就得到一种新变化。

在PlayCanvas中使用

PlayCanvas 把 GLB 当作 Container 资源。在编辑器中上传 GLB(FBX 导入时会转换为 GLB),即可得到包含模型层级的模板;纯引擎代码中使用 app.assets.loadFromUrl(url, 'container') 和 asset.resource.instantiateRenderEntity()。

  • LOD:引擎没有内置 LOD 组件,可用一个小脚本比较与相机的距离,切换 LOD0–LOD3 各实体的 render 组件。
  • 静态树木可共用一个 Batch Group 来合并 Draw Call;大片森林可通过 meshInstance.setInstancing() 和存放变换的顶点缓冲使用硬件实例化。
  • 树叶:glTF 的 MASK 会设置 StandardMaterial 的 alphaTest;双面树叶请将剔除模式设为 none。
  • 碰撞网格:添加 mesh 类型的 collision 组件和静态 rigidbody,并禁用其 render 组件。

资源包

其他风格的同款

其他引擎的同款