2014-11-01 68 views
2

我正在玩场景套件。sketchup消失的scenekit模型

我对建模没有太多了解,但是我创建了一个没有材质或纹理的非常基本的Sketchup模型。

我从番茄酱中导出模型并将其导入到场景中。

当我向相机的一端移动相机时,后部消失,反之亦然。当相机向前旋转时,后部会变成黑色。

这是什么原因?

照明?这里是场景的代码。它是一个基本的Xcode游戏项目

// create a new scene 
SCNScene *scene = [SCNScene sceneNamed:@"ship_transport.dae"]; 

// create and add a camera to the scene 
SCNNode *cameraNode = [SCNNode node]; 
cameraNode.camera = [SCNCamera camera]; 
[scene.rootNode addChildNode:cameraNode]; 

// place the camera 
cameraNode.position = SCNVector3Make(0, 0, 100); 

// create and add an ambient light to the scene 
SCNNode *ambientLightNode = [SCNNode node]; 
ambientLightNode.light = [SCNLight light]; 
ambientLightNode.light.type = SCNLightTypeAmbient 
ambientLightNode.light.color = [UIColor whiteColor]; 
[scene.rootNode addChildNode:ambientLightNode]; 


// retrieve the ship node 
SCNNode *ship = [scene.rootNode childNodeWithName:@"ship" recursively:YES]; 
ship.geometry.firstMaterial.diffuse.contents = [UIColor redColor]; 
ship.geometry.firstMaterial.specular.contents = [UIColor whiteColor]; 
SCNVector3 vector = SCNVector3Make(.1, .1, .1); 
[ship setScale:vector]; 
//[scene.rootNode addChildNode:lightNode]; 

// animate the 3d object 
[ship runAction:[SCNAction repeatActionForever:[SCNAction rotateByX:0 y:0 z:0 duration:1]]]; 

// retrieve the SCNView 
SCNView *scnView = (SCNView *)self.view; 
scnView.autoenablesDefaultLighting = true; 

// set the scene to the view 
scnView.scene = scene; 

// allows the user to manipulate the camera 
scnView.allowsCameraControl = YES; 

// show statistics such as fps and timing information 
scnView.showsStatistics = YES; 

// configure the view 
scnView.backgroundColor = [UIColor darkGrayColor]; 
+0

您的场景如何显示在Preview或QuickLook中? (另外,默认灯光仅在没有其他灯光时使用) – 2014-11-01 10:48:39

回答

1

尝试设置相机的zFar属性。其他相关的属性可以改变xFov和yFov。

+0

zFar修复了它。对不起,我不是一个游戏程序员,现在我正在搞清楚这些东西。但谢谢! – 2014-11-01 19:21:23

+0

在一个简单的应用程序(如模板)中,您甚至可以删除添加摄像头的代码(SceneKit会在运行时自动添加一个,自动使整个场景可见)或设置['automaticallyAdjustsZRange'](https:// developer.apple.com/library/mac/documentation/SceneKit/Reference/SCNCamera_Class/index.html#//apple_ref/occ/instp/SCNCamera/automaticallyAdjustsZRange),相机会自动确认场景的景深范围。 – rickster 2014-11-03 19:40:31