Relic特效系统

Relic特效系统_第1张图片

http://www.slideshare.net/proyZ/relics-fx-system

由开发了众多优秀RTS游戏的Relic带来.

relic在特效方面的积累超过10年,n款产品,冲这一点,足以受到尊敬:

Relic特效系统_第2张图片


hierarchical fx system:

以很强大的方式来组合控制fx

  • particle之间可以嵌套,有一种是combo类型,它里面可以带8个children,其中也可以包括combo类型
    • combo类型里面包括一些属性,控制children particle的spawn, lifetime等
  • combo类型之外的fx类型,可以触发一个新的fx
fx particle type:
  • billboard
  • beam
  • trail
  • streamer:火焰枪这种
  • mesh
  • light
  • audio
  • distortion
particle行为
  • particle行为是与其类型独立的,每个类型都可以有其个性化的互动环境,来与环境互动。
  • 一些简单的物理行为就自己算了,复杂的依赖物理引擎,relic的选择是havok
编辑器
  • 有特效编辑器--制作特效
  • 物件编辑器--把特效挂在物件上面这些事情

效率优化

简化+多线程:没什么好说的

batch
relic会通过1,2个drawcall把所有的particle渲染出来:这个会大量节省cpu时间和gpu上的context switch。
这里面需要这样一些事情:
  • 构建一个包括各种&各个particle的大vertex buffer,这个vertex buffer是ring buffer
  • 贴图:atlas,使用cubemap
  • render state:就是blending mode,和prototype2一个做法,统一alpha addtive&alpha blend
    • fx贴图是预乘过alpha
deferred
就是在低分辨率buffer上面画,回帖的时候是使用预先构建好的depth信息buffer,这个buffer也是低分辨率,记录了每个像素点的最远最近的depth值。

特殊情况处理
像雨雪这种特效,有更优化的方法,围绕着camera来放粒子,在camera移动的时候,需要多做一些处理,使用类似贴图wrap的方式,右边移动的时候,把左边的particle补进去。
Relic特效系统_第3张图片





你可能感兴趣的:(Relic特效系统)