我正在编写自己的3D引擎,我有这个矩阵来做透视效果。 (这是一个标准矩阵,所以没有什么有趣的)从3D平滑过渡到2D
public static Matrix3D PrespectiveFromHV(double fieldOfViewY, double aspectRatio, double zNearPlane, double zFarPlane, double mod)
{
double height = 1.0/Math.Tan(fieldOfViewY/2.0);
double width = height/aspectRatio;
double d = zNearPlane - zFarPlane;
var rm = Math.Round(mod, 1);
var m = new Matrix3D(
width, 0, 0, 0,
0, height, 0, 0,
0, 0, (zFarPlane/d) * rm, (zNearPlane * zFarPlane/d) * rm,
0, 0, (-1 * rm), (1 - rm)
);
return m;
}
我可以让我的场景看起来像2D,就像忽略矩阵。
但是想要做的是,使从3D到2D和背部平滑过渡...
任何一个有什么想法?为了使平滑过渡成为可能,我需要在这个矩阵中改变什么?
为什么你米atrix称为Matrix3D?它是一个四乘四矩阵,所以你应该打电话给Matrix4x4相当清楚是什么。或甚至更好,得到它的模板,所以我可以说矩阵 –
thecoshman
2010-10-25 23:23:07
好吧。 Tnx我想到后来... – 2010-10-26 00:54:01