OpenGL?照明是三維(3D)計算機圖形編程中最復雜、有時也最不易理解的方面之一。它可以用于為渲染場景添加必要的、逼真的畫龍點睛,但它也可能在計算上要求很高,并且在效果不易達到時最終導致混亂元素(例如定義曲面法線)很容...
OpenGL?照明是三維(3D)計算機圖形編程中最復雜、有時也最不易理解的方面之一。它可以用于為渲染場景添加必要的、逼真的畫龍點睛,但它也可能在計算上要求很高,并且在效果不易達到時最終導致混亂元素(例如定義曲面法線)很容易理解,而照明模型的其他部分,例如不同燈光類型的劃分,可能需要更多的研究才能完全掌握。在使用OpenGL?照明時,通常存在兩個問題:渲染速度和質量。有一些技巧可以幫助實現兩者的可接受比例,但最終需要在質量和速度之間進行權衡。許多3D照明技巧可以通過幻覺實現使用制作精良的紋理圖像,這些紋理圖像已經在表面上繪制了照明。通常會遇到一個問題,尤其是對于那些剛接觸OpenGL?照明的人來說,就是場景中的每個頂點都需要定義其曲面法線。如果沒有法線,渲染器將使用單個常量,從而有效地導致使場景看起來平坦且無陰影。定義法線時的一個技巧是使用不垂直于曲面但面向不同方向的值。這將更改燈光在曲面上的渲染方式,并可用于輕松創建噪波或巖石紋理,這一過程稱為凹凸貼圖。要獲得良好效果,以及潛在的獨特效果在使用OpenGL?照明的場景中,有必要充分了解環境、鏡面反射、漫反射和發射光源的含義。可以使用較高的灰色環境值使充滿霧的場景看起來更真實。類似地,可以通過發射來實現火災或暴露燈光等特殊效果材料和光源四種基本模型的分層和組合可以使場景看起來更逼真。了解OpenGL?照明對每個渲染幀都需要大量的處理器功率,這意味著優化場景有助于獲得更好的幀速率。有些事情可以降低渲染效果時間是盡可能少地使用光源,盡量減少被照明的表面數量,并避免多次處理最終幀緩沖區的算法或擴展。在場景中移動照明也會對性能產生一些有害影響,當渲染速度出現問題時應避免使用。有關使用OpenGL?照明的最后一個提示是知道何時不使用OpenGL?照明。它可以很容易想到在場景中的每個點都放置發射對象和燈光,但這很快就變得不切實際了。相反,許多照明技巧可以通過使用制作良好的紋理圖像(已經在表面繪制了照明)來實現。同樣地,布置場景的幾何體有時可以通過隱藏一些問題區域或允許空心復合對象中的單個光源通過多個計劃的開口照射而不需要多個光源
-
發表于 2020-08-07 23:52
- 閱讀 ( 735 )
- 分類:電腦網絡