【发布时间】:2020-04-14 15:24:59
【问题描述】:
你好,我想在 GLSL 中实现一个简单的 2D 光照技术。我的投影矩阵设置为使窗口的左上角为 (0, 0),右下角为 (window.width, window.height)。我在片段着色器uniform vec2 lightPosition; 中有一个统一变量,当前设置为鼠标位置(同样,在同一坐标系中)。我还计算了从光到像素的距离。
我想根据像素与光源的距离来点亮它。但这里有一个问题,我不想让它比原来的颜色更亮。例如,如果像素的颜色是 (1, 0, 0 (red)),无论光线离它多近,它都不会改变更多,这增加了 令人讨厌的高光度 em>。光源离像素越远,我希望它变得越暗。 我真的觉得我已经快要得到我想要的了,但我就是得不到!
非常感谢您的帮助。我觉得这是一个实现起来相当简单的代码(我为不知道而感到羞耻)。
【问题讨论】:
-
你还没有真正描述你在做什么,但是将光应用到某些材质颜色的标准方法是通过每通道相乘,光值在 [0,1] 或当然.
-
@derhass 我认为它足够清楚。 (s)他想限制基于片段和光源的原始距离的光照强度......但是示例片段代码不会伤害分享