gpt4 book ai didi

c# - 从 3D 到 2D 的平滑过渡

转载 作者:太空宇宙 更新时间:2023-11-04 12:22:53 26 4
gpt4 key购买 nike

我正在编写我自己的 3D 引擎,我有这个矩阵来制作透视图。 (这是一个标准矩阵,所以没有什么有趣的)

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 和返回的平滑过渡...

有人知道吗?我必须在此矩阵中更改什么才能实现平滑过渡?

最佳答案

我会在 m 和单位矩阵 I 之间使用插值,如下所示:

让 alpha 从 1 到 0 in alpha*m+(1-alpha)*I

编辑:

你能详细说说吗

I could make my scene look 2D like just by ignoring that matrix.

想法是在 2D(通过忽略矩阵)和 3D(使用矩阵)之间进行插值。如果您解释了忽略矩阵的准确程度,则插值应该是直接的。

关于c# - 从 3D 到 2D 的平滑过渡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4017877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com