threejs第五篇【一条龙测试之三 threejs加载 obj 格式模型】
来源:互联网 发布:云南大学滇池学院网络 编辑:程序博客网 时间:2024/06/05 10:51
接着分享如何加载obj格式的模型文件,直接看代码
<!DOCTYPE html>
<html lang="zh-cn"><head>
<meta charset="utf-8">
<script src="../build/three.js" type="text/javascript" ></script>
<script src="../examples/js/Detector.js" type="text/javascript" ></script>
<script src="../examples/js/loaders/OBJLoader.js" type="text/javascript" ></script>
</head>
<body>
<script type="text/javascript">
if(Detector.webgl){
//alert('浏览器支持');
//浏览器支持,我们就做初始化工作。不然js处理半天,浏览器不支持也白搭
init();
animate();
}else{
alert('浏览器不支持');
}
var scene,camera,renderer;
//初始化
function init(){
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(45,window.innerWidth/window.innerHeight,0.1,1000);
camera.position.z= 250;
var directionalLight = new THREE.DirectionalLight( 0xffeedd );
directionalLight.position.set( 0, 0, 1 );
scene.add( directionalLight );
renderer = new THREE.WebGLRenderer();
//下面setSize()可以不写,画面也会显示默认指定300*150的大小,很小。所以肯定要手动设定一下大小
renderer.setSize(window.innerWidth,window.innerHeight);
//别忘记了这个要写滴...不然就真看不见画面。
document.body.appendChild(renderer.domElement);
//开始模型导入的一些工作
//我们看看官方提供的OBJLoad.js脚本的构造函数
//构造函数的参数是一个manager,这是什么呀?看到图中他是集成自THREE.DefaultLoadingManager,
//然后我们去three.js里面DefaultLoadingManager看看是什么?看到了,是LoadingManager对象;
//里面搜了一遍,没有找到LoadingManager的类,我们再看看three.module.js
//在这里发现了function LoadingManager( onLoad, onProgress, onError ) {...}
//接下来我们声明一个LoadingManager
var manager = new THREE.LoadingManager();
//obj加载的类如图:
//obj加载,构造函数的参数是LoadingManager
var loader = new THREE.OBJLoader(manager);
//加载方法有4个参数,分别是obj文件路径,加载完毕回调,加载进度回调,错误回调。
//我们先把几个回调写好
//加载完毕回调如下,加载完毕,我们做的就是把模型加载到场景中
var onLoad = function(object){
scene.add( object );
}
//加载过程,可以显示进度值
var onProgress = function ( xhr ) {
if ( xhr.lengthComputable ) {
var percentComplete = xhr.loaded / xhr.total * 100;
console.log( Math.round(percentComplete, 2) + '% downloaded' );
}
};
//错误回调,因为网页调试有报错,这里可以不做处理
var onError = function ( xhr ) {
};
//回调写好了,现在可以用加载的方法加载模型了。
loader.load('knot.obj',onLoad,onProgress,onError);
}
// 渲染
function render(){
renderer.render(scene,camera);
}
//循环渲染
function animate() {
requestAnimationFrame( animate );
render();
}
</script>
</body>
</html>
模型贴图如何加载,我先吃饭了。有点饿了。
0 0
- threejs第五篇【一条龙测试之三 threejs加载 obj 格式模型】
- threejs第五篇【一条龙测试之四 threejs 给obj模型贴图】
- threejs第五篇【一条龙测试之一 3DSMAX模型建立导出obj】
- threejs第五篇【一条龙测试之五 与物体交互】
- threejs第五篇【一条龙测试之二 threejs基本环境架设】
- threejs 加载stl 或 obj 模型的代码模板
- threejs
- threejs加载3D模型例子
- ThreeJS学习之旅(三)
- Threejs开发笔记之三光源
- Threejs载入OBJ和贴图
- Threejs 加载 DAE 模型遇到关题汇总
- 08.ThreeJs开发指南-第八章-加载外部模型
- ThreeJs之四大组件
- 【threejs学习随记(三)】3D模型导入问题
- WEBGl之THREEJS导入shp文件,生成三维模型
- ThreeJS学习-模型角度限制
- threejs知识点:1.模型分析
- 重点练习类与对象
- Leetcode 416. Partition Equal Subset Sum (Medium) (cpp)
- 基于xmpp协议的开源框架androidpn学习笔记
- Git 创建本地仓库
- UI基础
- threejs第五篇【一条龙测试之三 threejs加载 obj 格式模型】
- Android 线程池框架、Executor、ThreadPoolExecutor详解
- turbostat man page
- Java 8新特性了解
- (十一)fcntl函数的介绍和使用
- 【软件测试】《软件测试技术基础》知识点整理
- Android移植带有libx264实现的ffmpeg
- mysql的检索数据SELECT
- log4net使用时遇到的问题记录