threejs模型加载后渲染场景
时间: 2023-09-10 11:08:31 浏览: 46
要将Three.js模型加载到场景中并渲染,可以遵循以下步骤:
1. 创建场景、相机和渲染器
```javascript
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
```
2. 加载模型
使用`THREE.GLTFLoader()`或`THREE.OBJLoader()`加载模型文件。例如,使用GLTFLoader加载一个gltf文件:
```javascript
var loader = new THREE.GLTFLoader();
loader.load('model.gltf', function (gltf) {
scene.add(gltf.scene);
}, undefined, function (error) {
console.error(error);
});
```
3. 设置模型的位置、旋转和缩放
```javascript
gltf.scene.position.x = 0;
gltf.scene.position.y = 0;
gltf.scene.position.z = 0;
gltf.scene.rotation.x = 0;
gltf.scene.rotation.y = 0;
gltf.scene.rotation.z = 0;
gltf.scene.scale.set(1, 1, 1);
```
4. 添加光源
```javascript
var light = new THREE.AmbientLight(0x404040); // soft white light
scene.add(light);
```
5. 渲染场景
```javascript
function animate() {
requestAnimationFrame(animate);
renderer.render(scene, camera);
}
animate();
```
完整的代码示例:
```javascript
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
var loader = new THREE.GLTFLoader();
loader.load('model.gltf', function (gltf) {
scene.add(gltf.scene);
gltf.scene.position.x = 0;
gltf.scene.position.y = 0;
gltf.scene.position.z = 0;
gltf.scene.rotation.x = 0;
gltf.scene.rotation.y = 0;
gltf.scene.rotation.z = 0;
gltf.scene.scale.set(1, 1, 1);
}, undefined, function (error) {
console.error(error);
});
var light = new THREE.AmbientLight(0x404040); // soft white light
scene.add(light);
function animate() {
requestAnimationFrame(animate);
renderer.render(scene, camera);
}
animate();
```