Matrix Unity 3D摄影机点投影矩阵

Matrix Unity 3D摄影机点投影矩阵,matrix,unity3d,camera,Matrix,Unity3d,Camera,简而言之, 我想实现类似MOBA游戏的相同摄像头视图,如果您注意到,例如在《传奇联盟》或《Dota 2》中,摄像头既不是透视模式,也不是100%正交模式 (尽管它更接近正字法而不是透视法) 例如,如果从A点到B点开始向左或向右移动摄影机,则可以看到一些从A点看不到的未移动对象(如炮塔)的某些面,但它仍然保持对象的尺寸和大小相同 与正交摄影机不同,无论您尝试移动摄影机多少次,都无法看到未移动(或移动)对象的另一面 我希望我说得很清楚,我知道这一定是在矩阵投影中,有人告诉我,我需要一个“离轴投影”,

简而言之,

我想实现类似MOBA游戏的相同摄像头视图,如果您注意到,例如在《传奇联盟》或《Dota 2》中,摄像头既不是透视模式,也不是100%正交模式

(尽管它更接近正字法而不是透视法)

例如,如果从A点到B点开始向左或向右移动摄影机,则可以看到一些从A点看不到的未移动对象(如炮塔)的某些面,但它仍然保持对象的尺寸和大小相同

与正交摄影机不同,无论您尝试移动摄影机多少次,都无法看到未移动(或移动)对象的另一面

我希望我说得很清楚,我知道这一定是在矩阵投影中,有人告诉我,我需要一个“离轴投影”,我不知道它是什么,OpenGL和渲染不是我的强项

任何帮助都将不胜感激

以下是我正在使用的脚本,其中一些调整仍然没有得到任何结果:

编辑:

对于脚本:我正在使用我之前链接的脚本,我没有在这里提出任何新的内容,这就是我在这里的原因

使用UnityEngine;
使用系统集合;
[执行编辑模式]
公共类示例类:单一行为{
公共浮动左=-0.2F;
公共浮动权=0.2F;
公共浮顶=0.2F;
公共浮动底部=-0.2F;
void LateUpdate(){
摄像头=摄像头;
Matrix4x4 m=透视偏心(左、右、下、上、凸轮近平面、凸轮远平面);
cam.projectionMatrix=m;
}
静态矩阵x4x4透视偏心(左浮动、右浮动、底部浮动、顶部浮动、近浮动、远浮动){
浮动x=2.0F*近/(右-左);
浮动y=2.0F*接近/(顶部-底部);
浮动a=(右+左)/(右-左);
浮动b=(顶部+底部)/(顶部-底部);
浮点数c=-(远+近)/(远-近);
浮动d=-(2.0F*远*近)/(远-近);
浮点数e=-1.0F;
Matrix4x4 m=新的Matrix4x4();
m[0,0]=x;
m[0,1]=0;
m[0,2]=a;
m[0,3]=0;
m[1,0]=0;
m[1,1]=y;
m[1,2]=b;
m[1,3]=0;
m[2,0]=0;
m[2,1]=0;
m[2,2]=c;
m[2,3]=d;
m[3,0]=0;
m[3,1]=0;
m[3,2]=e;
m[3,3]=0;
返回m;
}

}
请发布一些带有摄像头视图示例的屏幕。除了屏幕截图外,还应包括相关代码的实际示例,而不是仅包含链接。我知道您的回答,我将尽快发布一些示例,并提供更多详细信息。