0

我正在尝试编写一个简单的片段/垂直着色器,根据它是否在灯光范围内,它将从“点亮”纹理或“未点亮”纹理绘制适当的颜色。

因此,我需要将灯光之间的距离与灯光的范围进行比较。我一直在谷歌上搜索各种各样的东西,但我似乎找不到访问灯光范围值的方法。有没有办法这样做?如果没有,是否有某种派生数据可以用作替代方案?

更新

我能够在这里找到这种方法,这似乎是迄今为止最有希望的方法,但是在玩了一会儿之后,我似乎仍然无法得到我需要的东西。有人说_LightMatrix0没有人口。任何人都可以确认吗?

更新 2

unity_LightAttenUnity Shader Variables文档中找到了该变量。但是,这仅用于 Vertex Lit 着色,这并不完全理想,尤其是考虑到缺少控制台支持。有没有办法将这个变量传递给正向渲染?

4

1 回答 1

1

您可以使用Material.SetFloat将Light.range传递到着色器中。你需要附加一个脚本来做到这一点。

于 2016-09-12T15:45:19.363 回答