http://developer.amd.com/media/gpu_assets/ArtAndTechnologyOfWhiteout(Siggraph07).pdf
这个文章很全面,包含了很多东西,这里就做volume particle部分吧,效果很赞:
这里主要是集中在shadow上的内容。
在lightview这个pass上记录particle的minz和maxz,两者相减得出thickness。
在camera view,因为particle是用sprite画得,所以其实是一片片的,还要做一个z值的平滑化。
这样就可以用平滑过得结果去sample lightview shadowmap了。
这个可以得出selfshadow。
在terrain上的shadow就更直接了。
这里因为是很平均也相对thick,颜色也是白的。
相比之下,还是starcraft2的translucent shadowmap更好一些。
那个里面用alpha值参与thickness的运算,颜色也有考虑,更加合适一些,最后效果也更好.
所以在计算thickness的时候考虑进去alpha觉得更合理一些,当然这就需要sample texture了,也更费了。
LightScattering:Henyey-GreenStein phase function近似mie scattering
lighting结果近似这个
网上简单搜了下,bungie有个SIGGRAPH09_LightingResearch.pdf的说道类似的,但是也只是给了个公式。
这个日后再说吧。。。
估计