patch的意思是"片,碎片,斑点, 小块地",其实不一定单单指把三角形面细分才得到patch,只要把对光照分块处理之后再储存起来,那么这个块就算是一个patch了.意思很广泛,其实关键还是算法的问题.
计算radiosity算法的算法很多.我觉得有三个比较常用的方法.一是利用GPU渲染视图结果,之后cos图累加进贴图缓冲区.
二是利用光子投射方式的渲染器,先把光子一次性散射到场景里面,之后再通过滤波把它们的结果计算出来.
第三个的方法可以渲染最真正的场景,就是无限反复的递归去计算光照,直到你认为足够逼真了才停止.不需要光子投射,但它的速度很慢,场景大概要上1000次反复渲染,那样每个象素点才得到均衡.
问题回来,patch应该如何划分,其实还是要看你的渲染算法怎么样写了,两种方式,第一是三角形细分,第二是先计算UV纹理坐标,之后最后再细分2x2,再之后通过UV转换3D坐标,通过这个3D坐标计算亮度. |