Modelin boyutunu ve konumunu belirleme ve sonra otomatik merkezleme ve modeli ölçeklendirmenin bir yolu var. kamera? Sketchup'dan bir Collada modelini içe aktardığımda, modelin Sketchup'daki orijinde ortalanmış olmaması durumunda, o zaman bu üç.js'de ortalanmıyor. Bu mantıklı olsa da, ithal edildikten sonra orijinin otomatik olarak merkezlenmesi güzel olurdu.Modelden sonra Akıllı Merkez Oluşturma ve Ölçekleme üç.js'de içe aktar
Farklı dosya yükleyicilerinde, içe aktarılan modelin sınırlarını alma konusunda bazı tartışmalar gördüm, ancak bunun nasıl yapılacağına dair herhangi bir başvuru bulamadık.
Ölçekleme sorunu daha az önemli, ancak bir sınır işleviyle ilgili olduğunu düşünüyorum, bu yüzden de sordum.
DÜZENLEME:
biraz ve birkaç daha google aramalarında etrafında oynadıktan sonradiğer bilgiler ...
şimdi Collada dosyası yüklenirken benim geri arama işlevi için kodu şöyle görünüyor:
loader.load(mURL, function colladaReady(collada) {
dae = collada.scene;
skin = collada.skins[ 0 ];
dae.scale.x = dae.scale.y = dae.scale.z = 1;
dae.updateMatrix();
//set arbitrary min and max for comparison
var minX = 100000;
var minY = 100000;
var minZ = 100000;
var maxX = 0;
var maxY = 0;
var maxZ = 0;
var geometries = collada.dae.geometries;
for(var propName in geometries){
if(geometries.hasOwnProperty(propName) && geometries[propName].mesh){
dae.geometry = geometries[propName].mesh.geometry3js;
dae.geometry.computeBoundingBox();
bBox = dae.geometry.boundingBox;
if(bBox.min.x < minX) minX = bBox.min.x;
if(bBox.min.y < minY) minY = bBox.min.x;
if(bBox.min.z < minZ) minZ = bBox.min.z;
if(bBox.max.x > maxX) maxX = bBox.max.x;
if(bBox.max.y > maxY) maxY = bBox.max.x;
if(bBox.max.z > maxZ) maxZ = bBox.max.z;
}
}
//rest of function....
Bu, model hakkında bazı ilginç veriler oluşturuyor. Model için genel bir sınırlayıcı kutunun olabileceğini düşündüğüm model için genel bir aşırı koordinat alabilirim (muhtemelen yanlış). Fakat bu koordinatlarla bir şey yapmaya çalışmak (modeli ortalamaya göre ortalamaya taşımak ve hareket ettirmek gibi) tutarsız sonuçlar doğurur.
Ayrıca, bir model için her bir geometri boyunca döngü yapmak zorunda kalmamak, daha iyi bir yol var mı? Değilse, bu mantık diğer yükleyicilere uygulanabilir mi?
http://stackoverflow.com/questions/14614252/how-to-fit-camera-to-object http://stackoverflow.com/questions/20059612/calculate-camera-zoom-required -klasöre sığdırmak için ekran yüksekliği http://stackoverflow.com/questions/11274358/adjusting-camera-for-visible-three-js-shape http://stackoverflow.com/soru/16462848/üç-jS-yakınlaştırma sığdırmak için genişlik-of-nesneleri-göz ardı yükseklikte – gaitat