先來(lái)兩張圖:


這里的球和圓柱體都是通過(guò)一個(gè)函數(shù)而不是很多三角形來(lái)表示的。表示物體的函數(shù)用來(lái)將物體與一條射線求交,返回最近的交點(diǎn)的位置、法向量和材質(zhì)的信息等。然后程序就遍歷每一個(gè)像素,生成對(duì)應(yīng)的射線,然后求交,最后就可以獲得點(diǎn)了。陰影的做法是繪制點(diǎn)的時(shí)候,求出所有光源到這個(gè)點(diǎn)上的方向,然后反著看回去(用上面實(shí)現(xiàn)的代碼)看看有沒(méi)有被東西擋住。反射就更好辦了,直接拿反射后的視線所獲得的顏色跟結(jié)果進(jìn)行混合就行了。
從明天開始慢慢研究更多的材質(zhì)和光學(xué),然后慢慢給渲染器添加功能。


