Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.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
C# XNA/MonoGame-通过四边形发光_C#_Xna_Shadow_Monogame_Lighting - Fatal编程技术网

C# XNA/MonoGame-通过四边形发光

C# XNA/MonoGame-通过四边形发光,c#,xna,shadow,monogame,lighting,C#,Xna,Shadow,Monogame,Lighting,我的问题: 在MonoGame中有没有一种方法可以指定光源,让它通过四边形/纹理发光,有效地减少剩余的光线,然后让它通过下一层发光,就像真正的纸张后面的光线一样,彼此重叠(有间隙) 说明: 我正在尝试使用MonoGame渲染灯光/阴影框 阴影盒是一个用剪纸做成的盒子,一层层叠在一起,下面有一个光源。纸张的密度、纸张层之间的距离以及光线必须通过的前几层的数量决定了每一层的光线级别(在我的基本理解中)。你可以在谷歌上搜索“纸灯箱”,了解我在说什么。 () 我当前渲染层的方式是在面向摄影机的四边形上绘

我的问题:

在MonoGame中有没有一种方法可以指定光源,让它通过四边形/纹理发光,有效地减少剩余的光线,然后让它通过下一层发光,就像真正的纸张后面的光线一样,彼此重叠(有间隙)

说明:

我正在尝试使用MonoGame渲染灯光/阴影框

阴影盒是一个用剪纸做成的盒子,一层层叠在一起,下面有一个光源。纸张的密度、纸张层之间的距离以及光线必须通过的前几层的数量决定了每一层的光线级别(在我的基本理解中)。你可以在谷歌上搜索“纸灯箱”,了解我在说什么。 ()

我当前渲染层的方式是在面向摄影机的四边形上绘制纹理,然后自己计算灯光级别,只需在假想光源的位置和摄影机位置之间线性插值,为每个层指定一个灯光级别(基本效果中的DirectionalLight0)

这显然没有考虑到光已经必须通过的层的数量,因此纸张层总是只有一个光级别,而不是各种光/阴影渐变

我尝试在层之间使用alpha混合,但似乎不太管用,因为alpha混合也没有考虑层之间的距离


正如你可能已经猜到的,我对单游戏或图形编程一般来说是相当陌生的。我的想法是,这应该是一种通用的问题,已经有几十个人解决了,但几个小时的谷歌搜索并没有把我带到任何地方,所以我非常感谢你的帮助,即使它可能只是告诉我谷歌的正确单词:)

也许不是你想要的,但是试着寻找黄昏的光线。它可能会给你类似的效果。你是对的,这至少看起来和我正在尝试做的相似——但必须更详细地研究它。