1.背景技术
在使用H5环境下,绘制大量相同网格的预制件的地形时性能消耗是极大的,每一个单独的预制件都需要进行一次DrawCall,过多的绘制会导致执行效率下降,最终表现为帧率变低,运行的卡顿。
2.解决方案
以上遇到的核心问题就是大批量绘制拼接地形时导致的CPU到GPU的通信时间过长,游戏卡顿,为了解决这个问题。在利用WebGL的Instanced Arrays的基础上,通过对地形数据的分类分批处理管理,剥离视觉表现部分与物理模拟部分,使用实例化技术完成只调用一次渲染,绘制多个地形预制件。通过本方案,能够在大量拼接地形的场景下,提高渲染效率,减少性能消耗,支持在移动端上流畅运行.
为了解决以上问题,用以下解决方案包括:
1.拼接地形的数据编辑器。
2.地形数据渲染批次管理。
3.地形数据物理拆分。
4.地形数据的状态改变。
3.基本结构
4.具体实现
(1).数据编辑器
方案使用Unity引擎进行制作,使用面向设计的EmptyGo架构.提供了丰富的可编辑的地块功能.
导出数据形如:
(2).地形数据渲染批次管理
(3).地形数拆分
基于实体-组件思想的地形表现设计
5.性能对比
在30×30地形下
普通模式:
实例化渲染模式:
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END