HTML

导入代码模板:

import * as THREE from '//techbrood.com/threejs/build/three.module.js';

import Stats from '//techbrood.com/threejs/examples/jsm/libs/stats.module.js';

import { OrbitControls } from '//techbrood.com/threejs/examples/jsm/controls/OrbitControls.js';

import { FBXLoader } from '//techbrood.com/threejs/examples/jsm/loaders/FBXLoader.js';

var container, stats, controls;

var camera, scene, renderer, light;

init();

animate();

function init() {

container = document.createElement( 'div' );

document.body.appendChild( container );

camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 2000 );

camera.position.set( 0, 1.6, 0 );

scene = new THREE.Scene();

scene.background = new THREE.Color( 0xa0a0a0 );

scene.fog = new THREE.Fog( 0xa0a0a0, 200, 1000 );

light = new THREE.HemisphereLight( 0xffffff, 0x444444 );

light.position.set( 0, 20, 0 );

scene.add( light );

light = new THREE.DirectionalLight( 0xffffff );

light.position.set( 0, 20, 10 );

light.castShadow = true;

scene.add( light );

var grid = new THREE.GridHelper( 5, 20, 0x000000, 0x000000 );

grid.material.opacity = 0.2;

grid.material.transparent = true;

scene.add( grid );

// model

var loader = new FBXLoader();

loader.load( '/uploads/1911/forest/AssaultRifle_1.fbx', function ( object ) {

object.traverse( function ( child ) {

if ( child.isMesh ) {

child.castShadow = true;

child.receiveShadow = true;

}

} );

object.rotation.y = Math.PI/2;

//object.rotation.x = -Math.PI/2 - Math.PI/12;

object.position.set(0, -0.15, 0.3);

console.log(object.position);

object.scale.set(.003, .003, .003);

scene.add( object );

} );

renderer = new THREE.WebGLRenderer( { antialias: true } );

renderer.setPixelRatio( window.devicePixelRatio );

renderer.setSize( window.innerWidth, window.innerHeight );

renderer.shadowMap.enabled = true;

container.appendChild( renderer.domElement );

controls = new OrbitControls( camera, renderer.domElement );

controls.target.set( 0, 0, 0 );

controls.update();

window.addEventListener( 'resize', onWindowResize, false );

// stats

stats = new Stats();

container.appendChild( stats.dom );

}

function onWindowResize() {

camera.aspect = window.innerWidth / window.innerHeight;

camera.updateProjectionMatrix();

renderer.setSize( window.innerWidth, window.innerHeight );

}

//

function animate() {

requestAnimationFrame( animate );

renderer.render( scene, camera );

stats.update();

}

fbx模型加载到html,three.js演示如何用FBXLoader来加载fbx模型相关推荐

  1. 怎样使页面加载完再执行js代码

    怎样使页面加载完再执行js代码 由于HTML页面的加载顺序是从上到下,所以js代码要写在页面靠下的位置,否则可能会发生元素获取不到的问题,为了避免这种情况,可以通过页面元素加载完之后,再执行js代码, ...

  2. JS,两种在页面加载完成后自动执行的方法(ready,onload)

    JS,两种在页面加载完成后自动执行的方法 1.jQuery的ready事件,需要引入jQuery的包才能使用,表示文档结构已经加载完成(不包含图片等非文字媒体文件): ready可以多次调用,可以绑定 ...

  3. WKWebView Safari调试、JS互调、加载进度条、JS中alert、confirm、prompt

    主要内容 Safari调试 swift/OC与JS互调 增加加载进度条 支持JS中alert.confirm.prompt Safari调试 设置 -> safari --> 高级,开启J ...

  4. 解决pjax加载页面不执行js插件的问题

    解决pjax加载页面不执行js插件的问题 参考文章: (1)解决pjax加载页面不执行js插件的问题 (2)https://www.cnblogs.com/fanwenhao/p/9643549.ht ...

  5. Django 无法加载静态文件(js,css,image)解决办法

    Django 无法加载静态文件(js,css,image)解决办法 按照这个配置成功: https://jingyan.baidu.com/article/8cdccae92ffc16315413cd ...

  6. 网站性能分析(下)-让网站并行加载但顺序执行JS

    如果网站不支持JavaScript,复杂的功能将无法正常工作.在开发当中通常有几个脚本会写在HTML文件的头部.你嵌入的越多,网站的速度潜在的变得越慢.因此提高并行加载速度变得非常有必要,在前面的文章 ...

  7. 关于JQUERY动态加载页面时的JS失效的问题

    加载页面后一些JS特效或CSS特效不起作用,简单的方法是重新加载一下JQUERY的特效函数.

  8. html底部自动加载下一页,js页面滚动到底部时自动加载下一页数据

    一段滚动到页面底部自动加载更多数据的js代码,需要jquery.js . jquey.tmpl.js 支持 var Data = { PageCount: 1, PageSize: 30, IsCom ...

  9. html js 如何判断页面是第一次访问还是重复刷新访问,使用JS判断页面是首次被加载还是刷新...

    1 利用window.name属性在页面刷新时不会重置判断(在该属性空置的情况下可使用) if(window.name == ""){ console.log("首次被加 ...

  10. SAP UI5应用入口App.controller.js是如何被UI5框架加载的?

    首先在UI5应用的manifes.json里,定义了UI5应用的入口视图为App: 调试器里的pending数组的两个元素: 实际上对应了我在App.controller.js里定义的两个依赖: 而a ...

最新文章

  1. Linq 集合处理(Union)
  2. Python高效编程技巧
  3. sql server中存储过程提示错误
  4. ionic4的input调用手机键盘将换行改成搜索
  5. heart beat 安装与配置
  6. android控件的touch事件_聊聊Android嵌套滑动
  7. centos 6 安装clamav杀毒软件查毒
  8. java代码执行效率分析
  9. 《LeetCode刷题C/C++版答案》pdf出炉,白瞟党乐坏了
  10. 苹果Apple TV+上线了重磅史诗级别科幻作品,这是要挑战Netflix、HBO?
  11. 如何启用计算机网络,启用网络发现,教您win10怎么启用网络发现
  12. tomcat下载、安装、配置(新手教程墨迹版)
  13. 标准盒模型与怪异盒模型
  14. Java网络编程,一对一聊天
  15. 杭电1874畅通工程绪
  16. Buzz 多用途 WordPress主题[v1.10]
  17. 时代周刊对比海地与汶川地震 称赞中国重建能力
  18. 关于C中编译后RO,RW,ZI的含义
  19. 联通3G 网络设置+彩信设置
  20. 智慧管廊综合监管平台

热门文章

  1. 超越极限——2009年度DDR3内存横向测试(图)
  2. 计算机内存分为几代,电脑内存怎么看大小(内存条怎么看几代型号)
  3. 移动端抓包工具spy-debugger使用
  4. java hl7v3_HL7标准V3开发框架中个模型的关系
  5. hdu4565(矩阵快速幂)
  6. 用html写游戏,Html5写一个简单的俄罗斯方块小游戏
  7. PumpkinRaising靶机渗透
  8. 局域网内两台电脑ping不通
  9. cups linux 升级_linux cups版本
  10. win10怎么在开机时自动连接拨号上网