添加了錐形之后,使用兩個錐形和5個玻璃球進行折射、反射和陰影等計算,得到如下結果:


將整個渲染系統重構到沒有虛函數之后,速度得到了一些提升(大概為30%)。整個架構也被重新調整,新的渲染器分成一下幾個部分:
Geometry:負責物體求交與diffuse計算(目前不支持貼圖)。
Transformation:負責對Geometry進行線性變換。將入射實現逆轉換之后,將求交結果(點與法向量)進行線性變換。
Material:負責描述物體的材質(除了diffuse)。
Renderer:負責ray tracing,并將求得的結果進行混合。
接下來的打算是添加更多的矩陣、幾何物體(考慮支持三角形)等基本工具,然后實現GI。為GI求解主要需要將發光物體與非發光物體區別對待。發光物體有diffuse和光源顏色的區別。光源顏色將大于1。對一個點進行GI運算的時候,從點開始,法向量方向為向前方向渲染一副小型全景圖,其中發光物體產生光源顏色。然后進行統計。統計的結果作為光源對該點的貢獻,然后進行一般的計算。
預計GI將是一個無敵慢的運算過程……
將支持的小feature:貼圖、散射、透明物體的雜質、更多的矩陣、更多的幾何物體、天空盒子、GI和并行渲染。