0
我想寫一個簡單的frag/vert着色器,根據它是否在光照範圍內,將從'點亮'紋理或'未點亮'紋理繪製合適的顏色。如何在Shader中獲取Light的Range值?
因此,我需要比較光線到光線範圍的距離。 我一直在Google上搜索各種東西,但我似乎無法找到訪問光源範圍值的方法。有沒有辦法做到這一點?如果沒有,是否有某種衍生數據可以用作替代方案?
更新
我能找到這個方法here,這似乎是最有前途的,到目前爲止,打不過繞了一點後,我似乎仍不能得到我所需要的。有一些關於_LightMatrix0
未被填充的討論。有人可以確認嗎?
更新2
我的Unity Shader Variables文檔中找到的變量unity_LightAtten
。但是,這僅用於Vertex Lit着色,這並不完全理想,特別是考慮到缺少控制檯支持。 難道有一種方法可以將這個變量傳遞給轉發渲染嗎?
哦,很有希望...我會刺傷並回到這裏,謝謝!但我怎麼區分不同的燈光? – LeftRight92
爲你的燈使用不同的名稱。然後在腳本中按名稱查找這些gameObjects。 [GameObject.Find](https://docs.unity3d.com/ScriptReference/GameObject.Find.html) – zwcloud
這是我達成的第一個解決方案,但是如何知道當前在着色器中使用哪盞燈? ? – LeftRight92