【问题标题】:Short Drop Shadows - Monogame/HLSL短阴影 - Monogame/HLSL
【发布时间】:2019-07-03 20:59:18
【问题描述】:

我正在尝试找到一种方法来为我的游戏中的精灵实现有角度的阴影。也就是说,我希望我的播放器、树木等对象具有基于太阳在天空中的位置的阴影。

这个游戏中的影子(亚洲帮派)例如:

我曾尝试修改 Catalin Zima 的方法以适应我的需求,但收效甚微,最终我认为这种方法对我不起作用,而且他所做的优化目前有点超出我的想象。我描述了我的挣扎here

过去几周我花了一些时间学习 HLSL,做了一些简单的环境光和变色着色器,但老实说,我不知道如何满足这个要求。

谁能推荐一种方法或提供一些资源?任何帮助深表感谢。

【问题讨论】:

  • @Strom 截图中使用的程序是什么?
  • 我看不出这如何适合 XY 问题。具体来说,我认为您正在谈论问题中的链接帖子,它可能更适合这种形式。然而,这个问题正在询问有关如何实现动态照明和阴影的资源或想法。 @Strom 在您看来我为什么不应该采用这种方法?动态光照有什么问题?
  • 动态光照没什么问题。在 2D 环境中很难正确实现。(在 3D 中,一旦建立了遮挡,这将成为照明方程中的一个简单术语)。在 2D 中,没有高度分量,因此所有阴影都依赖于物体在感知地平面上的感知投影。在屏幕截图中,阴影是使用 3D 模型预先生成的,并应用于对象周围的表面。

标签: xna shader shadow monogame hlsl


【解决方案1】:

实际上我不认为这些是实际的阴影,而是精灵渲染的有点扭曲。

渲染背景(地板)后,您可以使用黑色或深灰色渲染所有精灵。但是您将多边形向左倾斜一点:

然后你在相同的位置正常渲染精灵。现在你有了一个漂亮的阴影效果,这也是一个超级快速的方法。

你唯一需要考虑的就是角色跳跃的时候。您必须偏移阴影精灵渲染。最好有一个指向左上角的向量并按跳跃的高度对其进行缩放。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多