首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用三个js渲染3D文件

用三个js渲染3D文件
EN

Stack Overflow用户
提问于 2020-10-19 12:28:43
回答 1查看 551关注 0票数 0

这是我第一次使用three.js,我试图用三个js、vue和laravel来显示一个简单的3d模型。3D文件位于/public/files/Tree1.3ds中。如何使用三个js在vue组件中呈现文件。我从三个js官方文档中复制了代码,并且运行良好,但如果我直接将文件路径更改为scene.add(),则无法工作。谢谢。

Vue

代码语言:javascript
复制
<script>
import * as THREE from 'three';
let camera, scene, renderer;
let geometry, material, mesh;
export default {
    methods:{
        init() {
        
            camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.01, 10 );
            camera.position.z = 1;
            scene = new THREE.Scene();
        
            geometry = new THREE.BoxGeometry( 0.2, 0.2, 0.2 );
            material = new THREE.MeshNormalMaterial();
        
            mesh = new THREE.Mesh( geometry, material );

            //scene.add( mesh );
            scene.add('http://127.0.0.1:8000/files/Tree1.3ds')   
     
            renderer = new THREE.WebGLRenderer( { antialias: true } );
            renderer.setSize( window.innerWidth, window.innerHeight );
            document.body.appendChild( renderer.domElement );
        
        },
        animate() {
            requestAnimationFrame( this.animate );
            mesh.rotation.x += 0.01;
            mesh.rotation.y += 0.02;
            renderer.render( scene, camera );
        }
    },
    mounted() {
        this.init()
        this.animate()
    }
   }
</script>

更新

改变了装载机的类型,但我得到的只是一个空场景。

代码语言:javascript
复制
import { TDSLoader } from 'three/examples/jsm/loaders/TDSLoader.js';

var loader = new TDSLoader( );
loader.load('http://127.0.0.1:8000/files/Tree1.3ds', function(obj) {
    scene.add( obj );
});
EN

回答 1

Stack Overflow用户

发布于 2020-10-19 13:28:10

必须使用正确的加载程序类型。3ds是一个特定的文件类型,必须与适当的加载程序文件一起加载。现在,您使用的是一个用于纹理的TextureLoader。

示例页代码第47 - 49行上有一个3ds文件的示例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64427359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档