FoliMesh

适用于PlayCanvas的棕榈

在 PlayCanvas 编辑器里上传 GLB 文件,会得到一个带完整模型层级结构的容器资源模板;只写引擎代码时,用 app.assets.loadFromUrl(url, 'container') 配合 asset.resource.instantiateRenderEntity() 即可。本次包含椰子树、海枣、加那利海枣、丝葵和矮棕榈,全部带有 LOD0–LOD3 与位于根部的轴心,适合海滩、岛屿和绿洲场景的浏览器游戏。

PlayCanvas 没有内置 LOD 组件,因此用一小段脚本比较摄像机距离,切换四个 LOD 实体的 render component。静态棕榈可以放进同一个 batch group 合并绘制调用;大片棕榈林则用 meshInstance.setInstancing() 做硬件实例化。叶片使用 glTF 的 MASK,会在 StandardMaterial 上设置 alphaTest,双面叶片需把 cull mode 设为 none。碰撞用 mesh 类型的 collision component 加静态 rigidbody。

模型
5
细节层级
LOD0 – LOD3
格式
GLB · FBX · OBJ

在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 组件。

资源包

其他类别

其他风格的同款

其他引擎的同款