博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Three.js加载gltf模型
阅读量:4557 次
发布时间:2019-06-08

本文共 2986 字,大约阅读时间需要 9 分钟。

效果图

1108804-20181018150033152-770467863.png

demo

import './index.css';var stats;stats = new Stats();document.body.appendChild( stats.dom );var gui = new dat.GUI();var fn = new function() {    this.rotationSpeed = 0.02;    this.bouncingSpeed = 0.03 ; }gui.add(fn,'rotationSpeed', 0, 0.5); gui.add(fn,'bouncingSpeed', 0, 0.5); var renderer = new THREE.WebGLRenderer();renderer.setSize(window.innerWidth, window.innerHeight);renderer.shadowMap.enabled = true;document.body.appendChild(renderer.domElement);var path = './static/textures/cube/MilkyWay/';var format = '.jpg';var envMap = new THREE.CubeTextureLoader().load( [    path + 'dark-s_px' + format,path + 'dark-s_nx' + format,     path + 'dark-s_py' + format, path + 'dark-s_ny' + format,    path + 'dark-s_pz' + format,path + 'dark-s_nz' + format ] );var scene = new THREE.Scene();scene.background = envMap;var camera = new THREE.PerspectiveCamera(95, window.innerWidth / window.innerHeight, 0.1, 2000);camera.position.z = 2;camera.position.x = 5;camera.position.y = 5;// 自适应屏幕大小window.addEventListener('resize', function(){    camera.aspect = window.innerWidth / window.innerHeight;    camera.updateProjectionMatrix();    renderer.setSize(window.innerWidth, window.innerHeight);}, false);// 设置光源(function(){    // 设置光源    var light = new THREE.PointLight( 0xffffff, 1.5, 2000 );    light.position.set( 0, 30, -20 );    light.castShadow = true;    light.shadow.mapSize.width = 1024;    light.shadow.mapSize.height = 1024;    var textureLoader = new THREE.TextureLoader();    var textureFlare0 = textureLoader.load( "./static/textures/lensflare/lensflare0.png" );    var textureFlare1 = textureLoader.load( "./static/textures/lensflare/lensflare2.png" );    var textureFlare2 = textureLoader.load( "./static/textures/lensflare/lensflare3.png" );    var lensflare = new THREE.Lensflare();    lensflare.addElement( new THREE.LensflareElement( textureFlare0, 512, 0 ) );    lensflare.addElement( new THREE.LensflareElement( textureFlare1, 512, 0 ) );    lensflare.addElement( new THREE.LensflareElement( textureFlare2, 60, 0.6 ) );    light.add( lensflare );    scene.add( light );})();// 加载模型(function(){    // model    var loader = new THREE.GLTFLoader();    loader.load( './static/models/gltf/Duck/glTF/Duck.gltf', function ( gltf ) {        console.log(gltf)        gltf.scene.traverse( function ( child ) {            if ( child.isMesh ) {                child.material.envMap = envMap;            }        } );        scene.add( gltf.scene );    }, undefined, function ( e ) {        console.error( e );    } );})()var controls = new THREE.OrbitControls( camera, renderer.domElement );controls.target.set( 0, 0, 0 );controls.update();var step = 0;var animate = function () {    requestAnimationFrame(animate);    // cube.rotation.x += 0.01;    // cube.rotation.y += 0.01;    // sphere.position.y = 1 + (5*Math.abs(Math.sin(step+=0.04)));    stats.begin();    renderer.render( scene, camera );    stats.end();};animate();

转载于:https://www.cnblogs.com/ye-hcj/p/9810538.html

你可能感兴趣的文章
[LeetCode] Excel Sheet Column Number
查看>>
安卓广播接收者
查看>>
999线监控
查看>>
Redis在python中的使用
查看>>
理解class.forName()
查看>>
九大排序算法再总结
查看>>
Uva10290 - {Sum+=i++} to Reach N
查看>>
每日一小练——数值自乘递归解
查看>>
二叉搜索树 (BST) 的创建以及遍历
查看>>
MyBatis/Ibatis中#和$的区别
查看>>
【JAVASCRIPT】React学习-组件生命周期
查看>>
win 64 文件操作
查看>>
LeetCode : First Bad Version
查看>>
pythone函数基础(14)发送邮件
查看>>
Java的一些好看的
查看>>
Linux 修改文件夹和其中所有文件的权限
查看>>
详解volatile 关键字与内存可见性
查看>>
go 聊天室简单版总结
查看>>
HDU 4258 斜率优化dp
查看>>
Literature review
查看>>