【问题标题】:SceneKit - Remove camera perspective distortionSceneKit - 消除相机透视失真
【发布时间】:2014-11-29 03:54:10
【问题描述】:

我正在尝试移除默认的 SceneKit 相机透视失真。我正在构建 Xcode 中内置的默认“游戏”模板。我遇到的问题是存在严重的透视失真。虽然这对于某些应用程序和游戏来说很好,但我想完全摆脱它。为了说明我的意思,这是我从手机截取的屏幕截图。我放置了一架飞机,并使用白色方块旋转相机进行平移。

这是我用来创建相机的:

cameraNode = [SCNNode node];
cameraNode.camera = [SCNCamera camera];
cameraNode.rotation = SCNVector4Make(0, 1, 0, M_PI);
// cameraNode.camera.xFov = 45.0;
cameraNode.position = SCNVector3Make(0, 0, 0);

[scene.rootNode addChildNode:cameraNode];

如您所见,我曾尝试调整 FOV,将飞机向后移动并使其更大,但这会使框看起来更大,这使得在房间内平移需要很长时间。最大程度消除或最小化透视失真的最佳方法是什么?

【问题讨论】:

    标签: ios ios8 scenekit


    【解决方案1】:

    看起来您想要的是正交投影。您可以使用属性“usesOrthographicProjection”配置相机来执行此操作,并使用 SCNCamera 上的“orthographicScale”调整视口。

    如果您只是想减少失真但仍使用透视相机,请减小 FOV(并将相机向后移动以进行补偿)

    【讨论】:

    • 谢谢,我知道正交投影,但我在文档中错过了,我一定会试试这个。
    • @toyos 你好,viewport和orthographicScale是什么关系?我对此感到困惑。
    • 如果你有时间可以帮帮我。我的问题:stackoverflow.com/questions/52428397/…
    猜你喜欢
    • 2020-03-08
    • 2019-12-08
    • 2011-09-17
    • 1970-01-01
    • 2016-08-10
    • 1970-01-01
    • 2016-06-16
    • 2021-03-07
    • 2017-01-11
    相关资源
    最近更新 更多