由于一時找不到題目寫,所以這兩天就搞了一個簡單的基于光線追蹤的軟件渲染器。準備花點時間做下去了。從昨天開始到現在實現的東西有反射、陰影、多光源、線性變換等。
先來兩張圖:
這里的球和圓柱體都是通過一個函數而不是很多三角形來表示的。表示物體的函數用來將物體與一條射線求交,返回最近的交點的位置、法向量和材質的信息等。然后程序就遍歷每一個像素,生成對應的射線,然后求交,最后就可以獲得點了。陰影的做法是繪制點的時候,求出所有光源到這個點上的方向,然后反著看回去(用上面實現的代碼)看看有沒有被東西擋住。反射就更好辦了,直接拿反射后的視線所獲得的顏色跟結果進行混合就行了。
從明天開始慢慢研究更多的材質和光學,然后慢慢給渲染器添加功能。
posted on 2009-01-19 00:48
陳梓瀚(vczh) 閱讀(4067)
評論(5) 編輯 收藏 引用 所屬分類:
3D