这个文章要解决的问题其实不算是这个generation的,但是里面带来一些思想或许有一些启发,也提到不少知识,也算是复习和加深理解了。
但对于实际游戏开发来说营养甚小。
我们正常做env mapping的时候是不带occlusion信息的,实际使用中tri ace会使用ao来做一些额外处理变成envmap的occlusion信息,然后根据occlusion情况把sample到的亮度进行衰减即可。
本文更多处理更大量的计算情况,那么遇到有occlusion的情况,希望通过少sample来提升效率--目的所在。
通过少量sample来尽可能好的模拟全量sample的结果,使用importance sampling再合适不过了,这里对于关键点的选取算法就是本文介绍的重点。
算法的名字就是在标题上了--floyd steinberg halftoning。
它的核心思想就是如果这一点取还是不取都会造成一定误差,比如这一点的值是0.3,不取就造成了0.3的误差,或者0.8,取,则有0.2的误差。
那么就会把误差distribute到周围的点上,希望藉由影响周围的点来让综合的误差最小。