Graphics 游戏编程-3D对象前的广告牌问题

Graphics 游戏编程-3D对象前的广告牌问题,graphics,unity3d,Graphics,Unity3d,我开始开发一个poc,它的主要功能是基于回合的RPG,类似于《火焰之息4》,一种3D环境与角色和广告牌等物品的混合 我使用的是X轴上30度角的正交摄影机,我使用精灵作为广告牌,枢轴位于中心,当精灵靠近3D对象(如墙)时会出现问题 查看图片: 我尝试过让广告牌的旋转矩阵保持竖直的解决方案,效果很好,但当然,根据相机朝向广告牌的高度和角度,它会变得有点平坦,我还将轴更改为精灵底部,但精灵前面的对象也会出现此问题。我认为解决方案是创建一个片段着色器,该着色器依赖于前一个过程的深度纹理,我试图思考如何使

我开始开发一个poc,它的主要功能是基于回合的RPG,类似于《火焰之息4》,一种3D环境与角色和广告牌等物品的混合

我使用的是X轴上30度角的正交摄影机,我使用精灵作为广告牌,枢轴位于中心,当精灵靠近3D对象(如墙)时会出现问题

查看图片:

我尝试过让广告牌的旋转矩阵保持竖直的解决方案,效果很好,但当然,根据相机朝向广告牌的高度和角度,它会变得有点平坦,我还将轴更改为精灵底部,但精灵前面的对象也会出现此问题。我认为解决方案是创建一个片段着色器,该着色器依赖于前一个过程的深度纹理,我试图思考如何使用着色器,但我无法理解。你能帮我写些文章或其他能让我找到正确方向的东西吗?多谢各位


看看我在努力实现什么。

你找到了正确的方法。使用竖直矩阵,放大广告牌的Z轴,然后使用相机将其展平。Z比例应为1.1547左右。它是1/cos30,这使得广告牌看起来像相机上30度角的原始尺寸。这似乎是一个棘手的方法,但视频中BoF4的开发人员也可能使用相同的解决方案。

Dish为什么表达式为Zscale=1/cossqrt3/2。涉及到什么数学问题?这是一个关于形状投影的问题。你可以通过三角函数的一个性质知道这一点。是否有任何与数学证明的联系来说明这个投影问题?我花了一些时间阅读了所有的材料,了解了不同的三角函数,但我还不明白为什么要用单位圆的割线标量来缩放我的z轴。我真的很想了解它,任何帮助都将不胜感激。谢谢