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