Three.js 中心 3d 模型
Three.js Center 3d Model
这是我第一次在 Whosebug 上写...这几天我尝试使用 javascript 库 Three.js(实际上是版本 n° r99),我正确地输入了3D 模型,但是当我看到它加载时是从后面看到的,而不是在视口中心,我该如何解决它?
代码是这样的:
<script>
var scene = new THREE.scene();
var camera = new THREE.PerspectiveCamera ( 50, window.innerWidth / window.innerHeight, 1, 1000);
camera.position.z = 15;
var render = new THREE.WebGLRenderer();
renderer.setSize ( window.InnerWidth, window.InnerHeight );
document.body.appendChild (renderer.domElement);
window.addEventListener('resize', function(){
var width = window.innerWidth;
var height = window.innerHeight;
renderer.setSize( width, height );
camera.aspect = width / height;
camera.updateProjectMatrix();
});
controls = new THREE.OrbitControls ( camera, renderer.domElement );
var loader = new THREE.ObjectLoader();
loader.load("/models/teschio.json",function (obj)
{
scene.add( obj );
});
var animate = function (){
requestAnimateFrame ( animate );
renderer.render (scene, camera);
}
animate();
</script>
目前这是一个线框屏幕:
actual wireframe
提前感谢您的回答。
像这样:
var loader = new THREE.ObjectLoader();
loader.load("/models/teschio.json",function (obj)
{
var box = new THREE.Box3().setFromObject( obj );
var center = new THREE.Vector3();
box.getCenter( center );
obj.position.sub( center ); // center the model
obj.rotation.y = Math.PI; // rotate the model
scene.add( obj );
});
这是我第一次在 Whosebug 上写...这几天我尝试使用 javascript 库 Three.js(实际上是版本 n° r99),我正确地输入了3D 模型,但是当我看到它加载时是从后面看到的,而不是在视口中心,我该如何解决它?
代码是这样的:
<script>
var scene = new THREE.scene();
var camera = new THREE.PerspectiveCamera ( 50, window.innerWidth / window.innerHeight, 1, 1000);
camera.position.z = 15;
var render = new THREE.WebGLRenderer();
renderer.setSize ( window.InnerWidth, window.InnerHeight );
document.body.appendChild (renderer.domElement);
window.addEventListener('resize', function(){
var width = window.innerWidth;
var height = window.innerHeight;
renderer.setSize( width, height );
camera.aspect = width / height;
camera.updateProjectMatrix();
});
controls = new THREE.OrbitControls ( camera, renderer.domElement );
var loader = new THREE.ObjectLoader();
loader.load("/models/teschio.json",function (obj)
{
scene.add( obj );
});
var animate = function (){
requestAnimateFrame ( animate );
renderer.render (scene, camera);
}
animate();
</script>
目前这是一个线框屏幕: actual wireframe
提前感谢您的回答。
像这样:
var loader = new THREE.ObjectLoader();
loader.load("/models/teschio.json",function (obj)
{
var box = new THREE.Box3().setFromObject( obj );
var center = new THREE.Vector3();
box.getCenter( center );
obj.position.sub( center ); // center the model
obj.rotation.y = Math.PI; // rotate the model
scene.add( obj );
});