SceneKit
の球のように1点の周りに配置されたオブジェクトはほとんど表示しませんが、オブジェクトの設定に問題があります。SCNNodeをシーンに設定する
主なアイデアは、カメラを中心(0,0,0)に配置することです。すべてのオブジェクトは、球面座標系を使用して構成されます。いくつかの軸の周りで、選択された空間の一部のオブジェクトを見る。
私は空を作成したいですか?SCNScene
を追加し、光を追加し、.dae
ファイルを読み取り、オブジェクトを設定します。
しかし今のところ私はどこが間違っているのかわかりません。いつでもSCNNode
のプロパティを変更しようとすると、実際には変更されていません。
SCNScene *scene = [SCNScene scene]; //main scene
SCNNode *cameraNode = [SCNNode node];
cameraNode.camera = [SCNCamera camera];
cameraNode.camera.zFar = 10000; //only with this value i can see my obj
cameraNode.position = SCNVector3Make(0, 0, 0); //position in the center
[scene.rootNode addChildNode:cameraNode];
// create and add a light to the scene
SCNNode *lightNode = [SCNNode node];
lightNode.light = [SCNLight light];
lightNode.light.type = SCNLightTypeOmni;
lightNode.position = SCNVector3Make(0, 10, 10);
[scene.rootNode addChildNode:lightNode];
// 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 darkGrayColor];
[scene.rootNode addChildNode:ambientLightNode];
SCNScene *objScene = [SCNScene sceneNamed:@"art.scnassets/file.dae"];
SCNMaterial *material = [SCNMaterial material];
material.diffuse.contents = [UIImage imageNamed:@"art.scnassets/texture.png"];
material.locksAmbientWithDiffuse = true;
SCNNode *node = [objScene.rootNode childNodeWithName:@"obj" recursively:YES];
node.geometry.firstMaterial = material;
//try next:
// node.position = SCNVector3Make(0, 0, 0);
// node.presentationNode.position = SCNVector3Make(0, 0, 0); -> should't be modified as explainde by Apple devs - "The effect of attempting to modify the returned node in any way is undefined"
// node.transform = SCNMatrix4MakeScale(0.5, 0.5, 0.5);
// node.scale = SCNVector3Make(0.1, 0.1, 0.1);
[scene.rootNode addChildNode:node];
:
実際のコード(私は今、OBJを回転させることができるようにするためにYES
にsetted allowsCameraControl
を使用する)ことができ参照オブジェクトであることを - 10000 - はまた、私は奇妙な大きな値にカメラのzFar
を配置する必要があります
何か提案がありますか?たぶん私は何かが恋しいです - SceneKit
にはあまりよく知られていません。 追加の注意 - 私はまた.dae
ファイルに骨ベースのアニメーションをいくつか持っています。
SCNNodeの位置、スケール、回転を変更する方法(実際にはSCNNodeのプロパティの変更には何も起こりません)?
あなたは何を見ますか?あなたは何が見たいですか?スクリーンショットが役立ちます。 –
@HalMueller私は画面をパンすると完全なオブジェクトを参照しています - 標準のカメラ修正( 'allowCameraControl = YES;')を適用すると、開始時にオブジェクトの一部しか表示されません - 開始fovとちょっとずれがあります。何が私はそれがスケールのオブジェクト、または私がヒストリの位置を変更する場合はスペースで移動することができますオブジェクト、またはスケールまたは何かを見たいと思っています。しかし、私が上で説明したように、私はobjの一部だけを見ることができます。追加: 'pauseAnimationForKey:'メソッドでアニメーションを一時停止しようとすると、alosは効果がありませんが、 '.presentationNode.paused = YES' - それは動作します。 – gbk