了解.OBJ 3D对象的位置
我正在尝试制作一个简单的可视化系统,以显示帝国大厦中各种物体的大小。所以我买了,它有几种格式,包括了解.OBJ 3D对象的位置,3d,three.js,.obj,3d,Three.js,.obj,我正在尝试制作一个简单的可视化系统,以显示帝国大厦中各种物体的大小。所以我买了,它有几种格式,包括.obj。然后我用了三个来将它添加到场景中 container = document.getElementById("city"); camera = new THREE.PerspectiveCamera( 60, 1, 1, 2000 ); camera.position.set( 100, 0, -100 ); scene = new THREE.Scene(
.obj
。然后我用了三个来将它添加到场景中
container = document.getElementById("city");
camera = new THREE.PerspectiveCamera( 60, 1, 1, 2000 );
camera.position.set( 100, 0, -100 );
scene = new THREE.Scene();
scene.background = new THREE.Color( 0x87CEEB );
var ambientLight = new THREE.AmbientLight( 0xcccccc, 0.4 );
scene.add( ambientLight );
// load the ESB model
var loader = new THREE.OBJLoader();
loader.load(
'data/esb.obj',
function ( object ) { // called when resource is loaded
ESB = object;
scene.add( object );
},
function ( xhr ) { // called when loading is in progresses
console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
},
function ( error ) {
console.log(error);
}
);
这将成功加载OBJ文件--。(我会戴上密码笔,但没有重新分发OBJ的权利。请不要偷!)
但是,正如您所看到的,当我添加了一些在远处隐约可见的轴辅助对象时,ESB从左侧漂入:
显然,我不太理解.obj规范,尽管我已经试着读过了。我的问题是:
- OBJ文件是否具有绝对坐标,因此,出于某种原因,ESB将远离文件的中心
- 为什么它在移动?OBJ文件是否有动力,或者这是我在Three.js中所做的工作的产物
一如既往地谢谢你 是的,ESB的模型不是以原点为中心的。如果您将其导入Blender,您可以轻松地验证这一点。尝试通过以下方式将加载的
OBJ
重新定位到场景中心:
var boundingBox = new THREE.Box3().setFromObject( object );
boundingBox.getCenter( object.position ).negate();
对象的移动与OBJ
格式无关。我猜某些应用程序级代码会导致这种行为