我试图删除默认的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,将飞机向后移动,并使其变大,但这使得箱子看起来更大,这使得在房间周围平移需要很长时间。什么是消除或最大限度地减少透视失真的最佳方法?
答案 0 :(得分:6)
看起来你想要的是一个正交投影。您可以使用属性“usesOrthographicProjection”配置相机以执行此操作,并在SCNCamera上使用“orthographicScale”调整视口。
如果您只是想减少失真但仍然使用透视相机,请减小FOV(并将相机向后移动以进行补偿)