Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何将摄影机设置为指向对象_Ios_3d_Scenekit - Fatal编程技术网

Ios 如何将摄影机设置为指向对象

Ios 如何将摄影机设置为指向对象,ios,3d,scenekit,Ios,3d,Scenekit,在我的应用程序中,我从不同的文件(格式相同)加载模型,它们具有不同的几何体:大、小、宽等。我对对象和相机位置进行了硬编码,在某些情况下,我看不到任何东西,因为相机没有指向对象 也许有一种方法可以在将模型添加到场景之前对其进行法线化 更新。 用小胡子的回答,我想出了以下解决方案: // import object from file SCNNode *object = [importer load:path]; object.position = SCNVector3Make(0, 0, 0);

在我的应用程序中,我从不同的文件(格式相同)加载模型,它们具有不同的几何体:大、小、宽等。我对对象和相机位置进行了硬编码,在某些情况下,我看不到任何东西,因为相机没有指向对象

也许有一种方法可以在将模型添加到场景之前对其进行法线化

更新。 用小胡子的回答,我想出了以下解决方案:

// import object from file
SCNNode *object = [importer load:path];
object.position = SCNVector3Make(0, 0, 0);        
[scene.rootNode addChildNode:object];

// create and add a camera to the scene
SCNNode *cameraNode = [SCNNode node];
cameraNode.camera = [SCNCamera camera];
// to avoid view clipping
cameraNode.camera.automaticallyAdjustsZRange = YES;
// set camera position to front of object
SCNVector3 sphereCenter;
CGFloat sphereRadius;
[object getBoundingSphereCenter:&sphereCenter radius:&sphereRadius];
cameraNode.position = SCNVector3Make(sphereCenter.x, sphereCenter.y, sphereCenter.z + 2 * sphereRadius);
[scene.rootNode addChildNode:cameraNode];
对我来说效果很好。

你可以,并根据你得到的数字进行缩放,使其与其他对象的大小相同。

你可以,并根据你得到的数字进行缩放,使其与其他对象的大小相同