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