在现行的毛发渲染技术中,一组用于计算物理模拟的曲线叫做导发,真正的毛发在导发间插值得到。当导发上的顶点过多时,会显著影响毛发渲染的性能,所以按需减少导发上的顶点数量可以优化毛发渲染的速度,是一项很必要的技术需求。
本方案目的是使艺术家能够指定导发上各段的密度,按需减少导发上的顶点数量,最终优化毛发渲染的速度。实现原理是将艺术家指定的毛发分段密度转换为一个分段密度函数,利用分段密度函数的积分来筛选各顶点的保留情况。
具体步骤
- 从编辑器界面中得到艺术家指定的分段密度。
- 根据分段密度画出分段密度函数
计算分段密度函数在0到1上的定积分,其实就是折线函数下方梯形的面积总和。
根据分段密度函数的积分确定新的毛发的总顶点数。
以原毛发线段数的倒数为步长,计算每段在密度函数下的面积,得到一个面积数组。
以(密度函数下面积总和/新毛发线段数)为新毛发一个线段的目标面积。
从0开始累加第5步中得到的原毛发线段面积数组,每当超过一次目标面积时,根据(超过的面积/当前原毛发线段面积)在当前原毛发线段的两个顶点间进行线性插值得到新顶点位置。之后减去一个目标面积,继续进行累加。
流程图
成果