天空盒的视网膜高分辨率图像为1500x1500
SCNScene *scene = [SCNScene scene];
scene.background.contents = @[[UIImage imageNamed:@"left.png"],[UIImage imageNamed:@"left.png"],[UIImage imageNamed:@"top.png"],[UIImage imageNamed:@"botom.png"],[UIImage imageNamed:@"back.png"],[UIImage imageNamed:@"front.png"]];
并将相机配置为:
_cameraNode = [SCNNode node];
_cameraNode.camera = [SCNCamera camera];
_cameraNode.position = SCNVector3Make(0, 0, 10000);
_cameraNode.camera.xFov = 55;
_cameraNode.camera.zFar = 2100000;
_cameraNode.camera.aperture = 1/50;
我将相机的z值逐渐增加100。当相机达到252000左右时,天空盒开始闪烁,就好像它放大和缩小一样。如果相机走得更远,直到场景变黑(黑色是SCNView的背景颜色),问题就会变得更糟。如何避免这种闪烁,并能够在非常高的场景中使用相机?我做错了什么?
答案 0 :(得分:0)
正如我在评论中所说,我重新设计了我的3D场景,其中测量和物体尺寸缩小了。我还了解到一个人不能使用真实世界的对象大小。按比例缩小所有对象会好得多。人们不需要创造具有真实世界尺寸和测量的巨大场景。缩小也需要更小的纹理,这对于内存优化非常有用。自从应用这些更改后,我没有看到任何闪烁。