私はこの3つのJSシーンがありますlookAtが指定されたベクターを見ないのはなぜですか?
カメラ - が表示されない
原産地(3次元ベクトル) - 0,0,0時:http://codepen.io/giorgiomartini/pen/ZWLWgX
シーンは、5つの事項が含まれています。
objOne - グリーン
objParent - レッド
CenterOfscene - ブルー
objOneはobjParentの子です。 ObjOne looksAt origenは0,0,0の3dベクトルです。
しかし、0,0,0を見るのではなく、objOne。原点ベクトルはどこですか、それはobjParentを見ています....?
アイデアはありますか?
私が望むのは、objOneが0,0,0を見ることです。元のベクターはどれですか。
これが不正確な理由は何ですか?ありがとう。
THREE.SceneUtils.detach(objOne, objParent, scene);
THREE.SceneUtils.attach(objOne, scene, objParent);
var origen = new THREE.Vector3(0, 0, 0);
var render = function() {
objOne.lookAt(origen);
requestAnimationFrame(render);
xOffset += 0.01;
yOffset += 0.011;
zOffset += 0.012;
xOffsetParent += 0.0011;
yOffsetParent += 0.0013;
zOffsetParent += 0.0012;
camXPos = centeredNoise(-1,1,xOffset);
camYPos = centeredNoise(-1,1,yOffset);
camZPos = centeredNoise(-1,1,zOffset);
objOne.position.x = camXPos*4;
objOne.position.y = camYPos*4;
objOne.position.z = camZPos*4;
camParentXPos = centeredNoise(-1,1,xOffsetParent);
camParentYPos = centeredNoise(-1,1,yOffsetParent);
camParentZPos = centeredNoise(-1,1,zOffsetParent);
objParent.position.x = camParentXPos*10;
objParent.position.y = camParentYPos*10;
objParent.position.z = camParentZPos*10;
renderer.render(scene, camera);
};
render();
結局のところ、ObjOneはカメラになります...カメラは回転した親や翻訳された親を持つオブジェクトにも対応していませんか? – GiorgioMartini
見ているオブジェクトには、回転/平行移動した親があってはいけません。親を持たないかシーンの子であるカメラは 'lookAt()'を直接サポートします。 – WestLangley
ありがとうございますが、親オブジェクトの子であるためにObjOneが必要です。そのため、親objectParentには大きな距離のスムーズなperlinノイズがありますが、objOneには少し速い別のperlinノイズがあります。 現在の設定(objOneがカメラであると仮定)がベクターを探す方法はありますか? また、このタイプのカメラの動き(実際にはブラウン運動など)を追加して、カメラがまだシーンの子どもになるようにする簡単な方法はありますか? – GiorgioMartini