提升树叶渲染性能

树叶渲染的性能问题主要源于过多的三角形和overdraw。使用Leaf Card(Billboard Leaf)技术虽能提升观感,但可能导致GPU负担加重。通过分析,发现overdraw是主要瓶颈。为解决此问题,可以借鉴Particle Trimming方法,减少像素处理,降低overdraw,从而提高渲染效率。SpeedTree等专业工具提供了优化方案,即使未使用此类工具,也能基于Humus的Particle Trimming实现类似效果,实现约20%的性能提升。
摘要由CSDN通过智能技术生成

        树的渲染的大部分消耗都是花在树叶上,为了是树叶看起来很茂密,美术一般会加很多叶子的三角形,但是三角形太多的话会让vs压力很大,因为树叶的动画都是在vs里完成的,因此大多游戏都采用的是Leaf Card也就是Billboard Leaf,采用这个方法从每个角度看叶子的quad都是朝向camera的,因此从任何一个角度看都觉得叶子很茂密。

       对美术来说这样就over了,因为观感好了很多,而且对他们来说制作也简单了,但是真正放到游戏里测一下会发现我的那个娘啊,这叶子也太费了,经常一个树的叶子在离camera比较近的时候会花0.5ms,这的确有点惊人啊,在GPA里分析了一下就会发现时Pixel太多了,虽然用了Alpha Test最后画到屏幕的像素并不是很多,但是在Alpha Test之前的像素数目是相当多的,一个屏幕像素会对应好几个叶子光栅化之后的像素,这就是所谓的overdraw。如果能减少overdraw,叶子的GPU时间就能降下来。

        对于Particle渲染的时候overdraw往往会成为瓶颈,因此采用Particle Trimming的方法,这样可以减少大量的像素。同样对于树叶或者草这种用AlphaTest的东西也可以采用Particle Trimming的方法。

        SpeedTree作为树渲染的工业级开发工具这个问题自然也是考虑在内的,在SpeedTree的Modeler里就可以根据树叶贴图的形状来生成一个可以包围所有像素的多边形,而不是原先的quad,这样虽然增加了一些顶点数目但是Pixel数目下降了很多,可以看到只增加了一个三角形PIxel数目就下降到原来的77%。实际测试性能发现对树叶和草都有大概20%的性能提升,这20%已经算是不小了,因为只是数据上做了一点手脚而已

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值