林與我的iPhone的影子體積和一切工作在異常玩弄如果陰影量上限是由遠平面剪輯。GLSL ES剪輯頂點到遠平面
由於gl_ClipVertex
在GLSL ES中不可用,我怎樣才能將gl_Position.z
夾在遠處?我已經嘗試使用gl_Position.z = gl_Position.w
,但結果是錯誤的,並且影子體積似乎遵循相機方向。有沒有其他方法可以做到這一點?
林與我的iPhone的影子體積和一切工作在異常玩弄如果陰影量上限是由遠平面剪輯。GLSL ES剪輯頂點到遠平面
由於gl_ClipVertex
在GLSL ES中不可用,我怎樣才能將gl_Position.z
夾在遠處?我已經嘗試使用gl_Position.z = gl_Position.w
,但結果是錯誤的,並且影子體積似乎遵循相機方向。有沒有其他方法可以做到這一點?
爲了陰影卷工作,你可能需要避免遠平面被修剪的上限。要做到這一點,要麼增加深度範圍(遠離平面移動),要麼減少擠壓量。
有許多陰影體技術,他們中的一些以避免深度記封蓋而設計的。我最喜歡的是Carmack的倒車,只要你知道你的幾何體的邊界框(Carmack使用BSP樹,所以對他來說很容易),這種效果很好,因爲那樣你就知道到底需要多大的距離才能擠出陰影體積。另外,如果燈光非常接近陰影投射物體(否則不是遠端的帽子,但音量的角落最終會被裁剪),則可能需要執行一些裁剪。雖然這很容易解釋,但實施起來相當困難。還有一些其他算法,更適合GPU上的簡單實現(請參見http://www.nvidia.com.br/object/robust_shadow_volumes.html)。
我希望這會幫助你,覺得免費的,如果您需要進一步的援助發表評論。