光線追蹤技術(shù)的理論和實(shí)踐(面向?qū)ο?
最后我們也可以讓地面反射物體,然后再墻上添加很多小球,讓畫(huà)面變得復(fù)雜一些,如下圖。
總結(jié)
這篇文章通過(guò)利用面向對(duì)象的方法來(lái)實(shí)現(xiàn)了光線追蹤渲染場(chǎng)景。利用面向對(duì)象的方法來(lái)實(shí)現(xiàn)光線追蹤使程序的擴(kuò)展性得到增強(qiáng),渲染復(fù)雜的場(chǎng)景或者復(fù)雜的幾何物體的時(shí)候,或者有很多光源和復(fù)雜光照計(jì)算的時(shí)候,只需要從基類(lèi)繼承,然后利用多態(tài)性來(lái)實(shí)現(xiàn)不同物體的不同渲染方法。
從上面的類(lèi)圖可以看到,利用面向對(duì)象的方式可以很容易擴(kuò)展程序。而且,由于光線追蹤的這種結(jié)構(gòu),不論添加多少物體在場(chǎng)景中,不論物體多么復(fù)雜,這種結(jié)構(gòu)總能很好地渲染出正確的畫(huà)面。
但是,對(duì)光線追蹤來(lái)說(shuō),越復(fù)雜的場(chǎng)景需要的渲染時(shí)間越長(zhǎng)。有的時(shí)候渲染一幀的畫(huà)面甚至需要幾天的時(shí)間。所以好的算法和程序結(jié)構(gòu)對(duì)于光線追蹤來(lái)說(shuō)是很重要的,可以通過(guò)場(chǎng)景管理、使用GPU或CUDA等等技術(shù)來(lái)提高渲染效率。
c++相關(guān)文章:c++教程
評(píng)論