http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter06.html
结合其他一些blog的阅读经验,一个感觉就是技术blog也应该像写代码--简洁优雅!
why?
之前听了umbra的presentation,关于occlusion culling,大卫顾同学推荐我看这个。
(以下介绍都是umbra在presentation上的介绍,其核心竞争力也就是启发式算法(heuristic)他们并无介绍)
umbra使用bounding volume tree for camera culling(cpu side of course)。
gpu side有两个模式,一个是传统的读上一帧的bounding volume的occlusion query的结果,来做drawcall skip。
一个是利用heuristic做本帧直接的判断,这个是比较神奇的地方,umbra自己也没做到完全无错,在我看来做绝对准确的判断有点不可思议,但是在经历了几起让我吃惊的技术阅读之后,不下“不可能”这个判断了吧。
gpu gems2这个文章的核心我觉得就是hierarchy的应用。
至于具体的可以是kdtree,quadtree,octree。。。
在camera frustum culling无需说。
gpu occlusion query又用到coherence temperal的思想,如果一个tree的某一枝没有被看到,那么其子节点就也不判断了。
看到了就进一步向下traverse,其实和cpu端的frustum culling没什么不一样。
that's all.