【发布时间】:2020-06-21 20:27:21
【问题描述】:
我已经开始接触 Three.js 并且一直无法加载 gltf 文件。我已经设法修复了所有错误,但我的模型仍然没有出现在我的页面上。这是我的代码:
function init() {
scene = new THREE.Scene();
scene.background = new THREE.Color(0xffffff);
camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
renderer = new THREE.WebGLRenderer({antialias: true});
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
let controls = new OrbitControls(camera, renderer.domElement);
/*
let geometry = new THREE.BoxGeometry();
let material = new THREE.MeshBasicMaterial( { color: 0x00ff00, wireframe: true } );
cube = new THREE.Mesh( geometry, material );
scene.add( cube );*/
var loader = new GLTFLoader();
loader.load(
// resource URL
'models/eevee/eevee.gltf',
// called when the resource is loaded
function ( gltf ) {
let object = gltf.scene.children[0];
object.scale.set(0.1,0.1,0.1);
object.position.set(0, -10, -0.75);
scene.add( object );
renderer.render(scene, camera);
},
// called while loading is progressing
function ( xhr ) {
console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
},
// called when loading has errors
function ( error ) {
console.log( 'An error happened' );
console.log(error)
}
);
camera.position.z = 5;
window.addEventListener('resize', onWindowResize);
}
正如我所说,没有出现错误,但 3d 模型没有显示在我的页面上。
【问题讨论】:
-
控制台有错误吗?有时加载的模型太大而超出相机的范围,或者有时太小而无法看到......
-
如果您包含上下文数据,例如浏览器、操作系统和规格,这可能会有所帮助
-
this article 可能会提出一些想法
-
@gman 我曾尝试使用本教程,但收到错误消息“无法读取未定义的属性 'getUniforms'”。