如何设置投影矩阵以进行类似胫骨的投影?

时间:2018-03-01 00:17:37

标签: unity3d opengl 3d projection-matrix

我在这里打了一会儿,但我仍然可以找到一种方法来设置一个矩阵,以Tibianeske的方式投射我的Unity游戏:

example of tibia game view

阅读互联网上的教程我可以弄清楚正常的正交视角是如何工作的,但是胫骨的视觉效果有点奇怪。

我在here找到了一个人(克林特·贝兰格)的网页,他很好地描述了如何在搅拌机的渲染中获得相同的视角:&/ p>

  

从45度等距的场景开始。视频游戏风格,在哪里   相机角度为Blender(60,0,45)。

     

在Blender中,如果你看一下Buttons Window - >场景 - >渲染按钮 - >   格式化,您可以设置渲染宽高比。将AspY设为一半   ASPX。这与采用常规渲染输出和缩放相同   X减50%。如果渲染了一个立方体,那么立方体的顶部将是一个   完美的正方形(虽然呈45度角)。

     

然后我们可以使用Blender节点将结果旋转45度。该   输出:

     

请注意,这是以立方体开头的,因此有很多"垂直"   失真。因此,在使用之前,您可能需要将网格缩放到50%Z   这种方法。还要注意Edge似乎是在应用之后应用的   方面,所以边缘不会扭曲。

     

混合文件:http://clintbellanger.net/images/temp/UltimaVII.blend(我' m   一个节点菜鸟所以可能有一个更聪明的设置)。

     

对于踢球,这里再次是那座塔。我把它拉进了上面   工作流场景和缩放Z 50%。点击"重新渲染此图层"上   创建复合的第一个节点。

在他的方法上,他使用了重新缩放渲染和改变模型比例的东西,我确信我可以与4x4矩阵一起(或者在任何其他3D环境中)相处得很好。

希望有更多经验丰富的3D数学技巧可以帮助我解决这个问题。谢谢! = d

1 个答案:

答案 0 :(得分:0)

你要求的是一个简单的parallel projection。典型的正投影仅是投影光线垂直于图像平面的特殊情况。但是,每个平行投影都可以用affine shear transformation表示,然后是标准正交投影。

  

我确信我可以与4x4矩阵在统一(或任何其他3D环境中)相处得很好。

是。在这里使用默认的GL约定,您所要做的就是采用标准的正交矩阵,将其乘以适当的shear matrix,并将其用作投影矩阵。