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