Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.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
Java 不带阴影映射的OpenGL阴影_Java_Opengl_3d_Glsl_Lwjgl - Fatal编程技术网

Java 不带阴影映射的OpenGL阴影

Java 不带阴影映射的OpenGL阴影,java,opengl,3d,glsl,lwjgl,Java,Opengl,3d,Glsl,Lwjgl,一段时间以来,我一直在使用LWJGL和OpenGL在3D中进行点光源阴影映射,特别是因为很难遵循为其他语言编写的超特定教程!然而,我一直在问自己,通过将点光源的半径设置为与某个方向上的碎片最接近的距离,是否有可能创建阴影错觉。因此,基本上与阴影贴图相反,但通过使用每像素照明,可以实现完美的阴影。这种照明有没有一个术语?如果没有,如何仅在一个方向上设置灯光的半径(可能在GLSL中)?点光源没有半径(它们只是点,用于计算已处理碎片的局部照明) OpenGL没有对象(即模型),所以不管你怎么想,它都没

一段时间以来,我一直在使用LWJGL和OpenGL在3D中进行点光源阴影映射,特别是因为很难遵循为其他语言编写的超特定教程!然而,我一直在问自己,通过将点光源的半径设置为与某个方向上的碎片最接近的距离,是否有可能创建阴影错觉。因此,基本上与阴影贴图相反,但通过使用每像素照明,可以实现完美的阴影。这种照明有没有一个术语?如果没有,如何仅在一个方向上设置灯光的半径(可能在GLSL中)?

点光源没有半径(它们只是点,用于计算已处理碎片的局部照明)


OpenGL没有对象(即模型),所以不管你怎么想,它都没有。

对不起,我所说的半径是指从灯光到碎片的距离。我知道你可以用GLSL控制它,但我只知道如何一次改变整个灯光的半径。(我还将“object”改为“fragment”,这是我内心的Java语言)我不知道你为什么否决了我的问题。它是无害的,不是不清楚的,也不是没有帮助的。这也表明我做过研究。@L3R5:我没有投反对票,是别人投的。但是你的问题研究得很差,我怀疑为什么会投反对票。@L3R5:好吧,OpenGL是一个绘图API(我不得不再次重申)。它画一个点、线或三角形,一旦像素到达帧缓冲区,它就已经忘记它做了什么。因此,修改每个片段的灯光属性对场景的其余部分没有影响。但是,阴影会从场景中至少两个几何体的几何体复制中出现。无论您尝试在本地使用哪种技巧,OpenGL本身都无法做到这一点。您必须添加某种内存,以便在绘图时查找整个场景的几何体。@L3R5:在阴影贴图的情况下,阴影贴图提供有关从灯光看到的场景几何体的信息。在模具体积阴影的情况下,通过将轮廓绘制到模具缓冲区中,可以生成相同的全局几何信息,但编码方式不同。