Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Glsl 你能把全向光和阴影贴图混合起来吗?_Glsl_Shader_Shadow - Fatal编程技术网

Glsl 你能把全向光和阴影贴图混合起来吗?

Glsl 你能把全向光和阴影贴图混合起来吗?,glsl,shader,shadow,Glsl,Shader,Shadow,我已经为我的RPG实现了PSSM(并行分割阴影贴图)。它只使用“太阳”(高出地面的单向光) 所以我的问题是,是否有一种特殊的技术可以将max 4全向光添加到像素着色器中 它将在以下几方面发挥作用: At the shadowmap application (or maybe at its creation): if in light: do as usual else: check if any light is close enough to light this pixel (and if

我已经为我的RPG实现了PSSM(并行分割阴影贴图)。它只使用“太阳”(高出地面的单向光)

所以我的问题是,是否有一种特殊的技术可以将max 4全向光添加到像素着色器中

它将在以下几方面发挥作用:

At the shadowmap application (or maybe at its creation):
if in light: do as usual

else: check if any light is close enough to light this pixel (and if, don't shadow it).
也许这甚至可以在阴影贴图生成中完成(因此过滤也将应用于那些泛光灯)


欢迎提供任何提示或提示!

这个问题的答案非常明显,以至于这个问题本身就表明,你对3D图形的理解太深了,需要记住所有这些实际上应该做什么

阴影贴图是一种判断曲面上特定位置相对于场景中特定灯光是否处于阴影中的方法。阴影贴图回答了以下问题:“曲面上的点和光源之间是否存在固体?”

如果该问题的答案为“是”,则该光源不参与该点的照明计算。如果答案为“否”,则该光源参与照明计算

曲面上点的颜色基于来自所有光源的入射光和曲面上该点的曲面特征(漫反射颜色、镜面反射光泽度、法线等)。每个灯光的所有计算相互相加,以生成该点表示的最终颜色值

你通常也有各种各样的技巧。环境光术语通常用于表示大量的间接照明。灯光贴图可以代替来自其他光源的灯光,而这些光源不是在着色器中动态计算的。等等。但最终,它们都只是灯光

您的照明方程式采用灯光参数(颜色、方向/位置,或仅采用环境光的环境强度)和曲面特征(如上所述),并生成从曲面反射的光量。由于一个灯光的反射率不受其他灯光反射率的影响,因此可以为每个灯光单独计算此值

将所有这些值相加以生成最终值


事实上,你可以通过阴影图测试来缩短其中一项的计算,这与整体方案无关。只需将各种照明条件相互添加,这就是你的答案。没有“特殊技术”要做到这一点,你只需这样做。

ps.我知道使用这种技术,泛光灯不会投射阴影,但这是一个缺点,我可以接受(即,我只放置小灯,远离灌木丛和墙壁,比如说在“火”上放一盏灯就可以了)。我不明白这个问题。你是在寻找一个支持泛光灯的阴影贴图算法吗?或者某个特定的着色器代码块到底在做什么?我在寻找一个“黑客”,阴影贴图支持一个灯光(“太阳”),但你可以使用其他几个“局部”灯光(近光),这可能会影响a)阴影贴图创建或b)阴影贴图应用程序。您可能就在这里,但让我仔细考虑一下,因为这个想法的一部分是能够使用快速百分比过滤PSSM:s使用,并将其用于“其他灯光”。不过我的问题整理得不错,令人印象深刻!事实上,我做了很多骇人听闻的事情(不过大部分都联系在一起了),法线贴图、立方体反射、镜面反射、动画等等。我肯定在那里的某个深处迷路了,但正如我所说的,我必须好好想想,我会在一天左右回来。