32

従来、3D投影では、Y軸は「上下」を表す軸です。その軸がZ軸であるとして、他のエンジンでそれを考えることを学びました。私が疑問に思っていたのは、Three.JSにZ軸を「上/下」軸にする方法があるかどうかでした。もしそうなら、それに何か影響はありますか?

これが私が欲しいものの図です: ここに画像の説明を入力してください

4

4 に答える 4

47

座標系全体ではなく、カメラだけを変更できます。例えば:

var WIDTH = 1024;
var HEIGHT = 768;
var VIEW_ANGLE = 45;
var ASPECT = WIDTH / HEIGHT;
var NEAR = 0.1;
var FAR = 10000;
camera = new THREE.PerspectiveCamera(VIEW_ANGLE, ASPECT, NEAR, FAR);
camera.position.z = 300;
camera.up = new THREE.Vector3( 0, 0, 1 );
scene.add(camera);

これによりup、カメラが Z-UP を使用するようにベクトルが変更されます。


編集

例を説明するために、ベクトルlookAtを設定した後に呼び出すようにわずかに変更した jsfiddle を作成しました: http://jsfiddle.net/NycWc/1/up

于 2011-12-05T20:20:45.187 に答える
19

以下は、あなたの望む結果を達成します

THREE.Object3D.DefaultUp.set(0, 0, 1);

ドキュメントによると

.DefaultUp : Vector3

オブジェクトのデフォルトの上方向。DirectionalLight、HemisphereLight、Spotlight (上から下に輝くライトを作成) のデフォルト位置としても使用されます。デフォルトでは ( 0, 1, 0 ) に設定されています。

于 2019-08-07T21:23:42.237 に答える
4

オブジェクトでこの問題が発生しました。これが私がそれを修正した方法です。

object.rotation.z = 90 * Math.PI/180;
object.rotation.x = -90 * Math.PI/180;

これは、あなたが求めているのと同じように向きを変えました。

于 2011-12-04T22:22:36.090 に答える
-4

xyz 座標フレームは常に右手の法則で設定する必要があります。独自の規則を作成することは、あまり良い計画ではなく、多くの混乱を招くことになります。座標フレームは自由に回転できますが、軸の方向は変更しないでください。表示する内容を本当に実行したい場合は、x、y、-z 座標フレームを作成できます。

于 2017-12-22T09:26:48.190 に答える