2011-11-25 14 views
21

Geleneksel olarak, 3D projeksiyonlarda Y ekseni, "yukarı ve aşağı" temsil eden eksendir. Bunu, diğer motorlarla, Z ekseni olarak bu eksen olarak düşünmeyi öğrendim. Merak ettiğim şey, Z ekseni "yukarı/aşağı" eksenini yapmak için Three.JS içinde bir yol olup olmadığıydı. Eğer öyleyse, bunun bir sonucu var mı? enter image description hereÜç.JS, y ekseninin z ekseni olacak şekilde projeksiyonu döndürür

+4

Bana göre sağdaki resim "x" ve "y" yanlış konumlarda görünüyor. Değiştirilmeleri gerekmez mi? – aarman

+0

Bu kongre hakkında daha fazla bilgiyi nerede bulabileceğimi gösterir misiniz? Asla karşılaşmadım: -/ – Kuba

cevap

36

Tüm koordinat sisteminden ziyade kamerayı değiştirebilirsiniz. Örneğin:

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); 

Bu kamera Z-UP kullanımı için up vektörü değiştirir.


DÜZENLEME:

bir örnek göstermek için, burada biraz up vektör ayarladıktan sonra lookAt aramaya modifiye oluşturulan jsfiddle var: her zaman kurulması gerektiğini http://jsfiddle.net/NycWc/1/

+0

Cevabınız için teşekkürler! Şimdi test etmek için zamanım yok ama yakında deneyeceğim. Bunun diğer kamera yöntemleri üzerinde herhangi bir etkisi var mı? Normalde "lookAt" ve benzeri kullanabileceğim miyim? –

+0

Hmm, Kameranın yukardaki vektörünü kullandığından beri, bu durumun hala işe yaradığını düşünürdüm: https://github.com/mrdoob/three.js/blob/master/src/cameras/Camera.js#L32 – jterrace

+1

Belki de yanlış bir şey yapıyorum, ama kameranın yukarı çıkmasını beklerdim, bunun yerine http://jsfiddle.net/NycWc/ –

2

Ben bir nesneyle bu sorunu vardı: Burada

ne istiyorum bir diyagramıdır. İşte bunu nasıl tamir ettim.
object.rotation.z = 90 * Math.PI/180; 
object.rotation.x = -90 * Math.PI/180; 

Bu

bunu soruyorsun sadece yollarına yönelim değişti aldı.

+0

Tüm koordinat sistemini değiştirmenin bir yolunu arıyorum, böylece y ve z konumlarını değiştirdiğim değişiklikleri yapacağım. –

0

xyz koordinat çerçevesinde sağ el kuralı ile. Kendi sözleşmenizi oluşturmak, bu kadar iyi bir plan değildir ve çok fazla karışıklığa neden olur. İstediğinizde koordinat çerçevesini döndürebilir, ancak eksen yönünü değiştiremezsiniz. Gördüğünüz şeyi gerçekten yapmak istiyorsanız, x, y, -z koordinat çerçevesi oluşturabilirsiniz.

İlgili konular