OpenGraphics Library?(OpenGL?)陰影是三維(3D)OpenGL?場景中陰影在類似照明條件下如何在現實生活中投射的視覺近似。陰影是在OpenGL?中實現的復雜視覺功能,很大程度上是因為沒有對在場景中投射陰影的固有支持,而是有多...
OpenGraphics Library?(OpenGL?)陰影是三維(3D)OpenGL?場景中陰影在類似照明條件下如何在現實生活中投射的視覺近似。陰影是在OpenGL?中實現的復雜視覺功能,很大程度上是因為沒有對在場景中投射陰影的固有支持,而是有多種技術可以使用各種工具從場景中的對象和幾何體創建陰影,例如各種可用的緩沖區、著色器,在某些情況下,允許訪問某些顯卡上的特殊功能的擴展。在大多數情況下,質量,OpenGL?陰影渲染的準確性和速度與計算機或設備中的圖形硬件的處理能力和內存直接相關。實現OpenGL?陰影的一些更流行的方法包括陰影體積,陰影映射和光線跟蹤。陰影有助于使3D圖像具有更好的深度感。創建具有OpenGL?陰影支持的應用程序需要數學知識和對OpenGL?工作原理的深入理解。OpenGL?主要用于創建動態的、實時渲染的3D場景,因此,用于創建陰影的算法不僅要優化速度,還必須仔細測量其資源消耗以及用于渲染的圖形管道中可能造成的任何中斷。基于這些原因,創建陰影的最基本方法,稱為光線跟蹤,從一個或多個光線源的角度來跟蹤一個或多個物體的表面位置,基本上是不切實際的在光柵化過程中,將3D場景繪制到二維(2D)曲面以便顯示,必須對繪制的每個像素執行光線跟蹤過程,尤其是使用紋理或其他曲面屬性,可能需要多次評估相同的像素。這意味著實時光線跟蹤雖然可以精確地渲染陰影,但通常并不實用。另一種可用于創建OpenGL?陰影的方法稱為陰影映射。此方法使用深度或模板緩沖區從光源角度渲染場景作為從光源到場景中不同對象表面的一系列距離。然后從正確的視角再次渲染場景,檢查每個像素是否落在緩沖區內的某個距離范圍內,指示像素是亮還是暗。使用陰影映射可以內存密集型,對于具有多個光源的場景,可能需要從多個角度制作多個貼圖。陰影體積是創建OpenGL?陰影的一種方法,比其他方法更精確,但它也有其自身的問題。陰影體積本質上是場景中一個不可見的幾何體,它從一個物體的發光表面擴展到遠離光源的地方。這個體積可以與其他物體進行對比,看看它們是否落在產生該體積的表面的陰影中。這個過程可以非常復雜,最終在優化速度時產生視覺效果
-
發表于 2020-08-07 23:34
- 閱讀 ( 885 )
- 分類:電腦網絡