SCNCamera 的正确"Field of View"



我试图找出iPad和iPhone上场景套件中视野的正确值。 默认值 60 degree 对屏幕边缘的球体有不良影响。 球体呈椭圆形。值为 34 degree 会导致天空盒像素化。iPad 和 iPhone 的正确值是什么?

_cameraNode = [SCNNode node];
_cameraNode.position = SCNVector3Make(0, 0, 500);
[scene.rootNode addChildNode:_cameraNode];
_cameraNode.camera = [SCNCamera camera];
_cameraNode.camera.automaticallyAdjustsZRange = YES;
#if TARGET_OS_IPHONE
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    _cameraNode.camera.yFov = 55;
} else #endif {
    _cameraNode.camera.xFov = 34;
}
scnView.pointOfView = _cameraNode;

FOV 不依赖于屏幕,而是取决于您希望用户看到场景的方式。

大多数3D程序的默认值是36mm镜头,其FOV约为53°。使用鱼眼镜头时,较低的值会感觉放大,较高的值会缩小。没有神奇的数字,您必须考虑如何查看场景,然后解决出现的问题。

如果您的场景非常小,而查看器很大(例如模拟城市(,那么低视野看起来最好。

如果你的场景非常大,而观众很小(大多数游戏都是从第一人称视角玩的(,那么高视野会让世界感觉很大。

尝试找到哪一个使您的场景看起来比例正确,然后修复出现的问题:

如果您选择低视场,您将需要更高分辨率的天空盒。没有办法绕过它,因为它直接链接到 FOV。

如果选择更高的值,则任何高于 50° 的值都会开始失真。由于屏幕宽,这在iPhone上会更加明显。可以使用着色器来改善扭曲。有几种方法可以进行镜头校正,特别是桶形畸变。

这里有一些有趣的公式 http://paulbourke.net/miscellaneous/lenscorrection/:

相关内容

  • 没有找到相关文章

最新更新