gpt4 book ai didi

wpf - 如何在 WPF 中创建偏离中心的 PerspectiveCamera?

转载 作者:行者123 更新时间:2023-12-05 00:08:29 31 4
gpt4 key购买 nike

我正在尝试或多或少地重新创建 Johnny Lee's Wii head tracking app ,但使用增强现实工具包进行跟踪,使用 WPF 进行图形处理。为此,我需要使用顶部、底部、右侧和左侧参数创建一个透视相机来创建我的视锥体,而不是视场和纵横比(对于熟悉 OpenGL 的人,我想使用 WPF 等效项glFrustum 而不是 gluPerspective)

问题是,这些选项在 WPF 的 PerspectiveCamera 类中似乎不可用。如果必须使用 MatrixCamera,我可能可以手动创建投影矩阵,但我想避免这种情况。有谁知道更好的方法来做到这一点?

最佳答案

我从来没有找到一种内置的方法来做到这一点,所以我自己写了。 The math behind it can be found in the OpenGL glFrustum docs .如果其他人遇到过这个问题,这应该对你有用:

public Matrix3D CreateFrustumMatrix(double left, double right, double bottom, double top, double near, double far)
{
var a = (right + left) / (right - left);
var b = (top + bottom) / (top - bottom);
var c = -(far + near) / (far - near);
var d = -2 * far * near / (far - near);

return new Matrix3D(
2 * near / (right - left), 0, 0, 0,
0, 2 * near / (top - bottom), 0, 0,
a, b, c, -1,
0, 0, d, 0);
}

只需将 MatrixCamera.ProjectionMatrix 设置为该方法的返回值,就可以了。

关于wpf - 如何在 WPF 中创建偏离中心的 PerspectiveCamera?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1308395/

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