由于之前的建模方法亂七八糟,現(xiàn)在使用一般的Fresnel方法為材質(zhì)建模。這是一個(gè)處理折射和反射光比率的函數(shù)。計(jì)算方法如下:
factor=bias+scale(1+I×N)^power,將factor剪裁之[0,1]范圍內(nèi)之后,折射光/反射光比率為factor/(1-factor)。bias、scale與power是材質(zhì)參數(shù),需直接指定。
添加了錐形之后,使用兩個(gè)錐形和5個(gè)玻璃球進(jìn)行折射、反射和陰影等計(jì)算,得到如下結(jié)果:
將整個(gè)渲染系統(tǒng)重構(gòu)到?jīng)]有虛函數(shù)之后,速度得到了一些提升(大概為30%)。整個(gè)架構(gòu)也被重新調(diào)整,新的渲染器分成一下幾個(gè)部分:
Geometry:負(fù)責(zé)物體求交與diffuse計(jì)算(目前不支持貼圖)。
Transformation:負(fù)責(zé)對(duì)Geometry進(jìn)行線性變換。將入射實(shí)現(xiàn)逆轉(zhuǎn)換之后,將求交結(jié)果(點(diǎn)與法向量)進(jìn)行線性變換。
Material:負(fù)責(zé)描述物體的材質(zhì)(除了diffuse)。
Renderer:負(fù)責(zé)ray tracing,并將求得的結(jié)果進(jìn)行混合。
接下來(lái)的打算是添加更多的矩陣、幾何物體(考慮支持三角形)等基本工具,然后實(shí)現(xiàn)GI。為GI求解主要需要將發(fā)光物體與非發(fā)光物體區(qū)別對(duì)待。發(fā)光物體有diffuse和光源顏色的區(qū)別。光源顏色將大于1。對(duì)一個(gè)點(diǎn)進(jìn)行GI運(yùn)算的時(shí)候,從點(diǎn)開(kāi)始,法向量方向?yàn)橄蚯胺较蜾秩疽桓毙⌒腿皥D,其中發(fā)光物體產(chǎn)生光源顏色。然后進(jìn)行統(tǒng)計(jì)。統(tǒng)計(jì)的結(jié)果作為光源對(duì)該點(diǎn)的貢獻(xiàn),然后進(jìn)行一般的計(jì)算。
預(yù)計(jì)GI將是一個(gè)無(wú)敵慢的運(yùn)算過(guò)程……
將支持的小feature:貼圖、散射、透明物體的雜質(zhì)、更多的矩陣、
更多的幾何物體、
天空盒子、
GI和并行渲染。
posted on 2009-01-24 09:55
陳梓瀚(vczh) 閱讀(1780)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
3D