Threejs渲染obj+mtl模型源码,3D工厂模型

简介: Threejs渲染obj+mtl模型源码,3D工厂模型

1,介绍


Threejs实现引入工厂模型,加载obj+mtl模型源码下载,可用于学习研究,二次开发


2,部分代码


// 创建一个场景,它将包含我们所有的元素,如物体,相机和灯光。
var scene = new THREE.Scene();
var cubeLoader = new THREE.CubeTextureLoader();
// 创建一个摄像机,它定义了我们正在看的地方
camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 1000);
// 将摄像机对准场景的中心
camera.position.x = 10;
camera.position.y = 50;
camera.position.z = 90;
camera.lookAt(scene.position);
var orbit = new THREE.OrbitControls(camera);
// 创建一个渲染器并设置大小,WebGLRenderer将会使用电脑显卡来渲染场景
renderer = new THREE.WebGLRenderer({
  antialias: true,
  logarithmicDepthBuffer: true,
});
renderer.setClearColor(new THREE.Color("#0e0934"));
renderer.setSize(window.innerWidth, window.innerHeight);
// 基础光源,并应用到场景
scene.add(new THREE.AmbientLight("#ffffff", 1.5));
initModel();
// 将呈现器的输出添加到HTML元素
document.getElementById("dom").appendChild(renderer.domElement);
// 启动动画
renderScene();
// 添加模型
function initModel() {
  var mtlLoader = new THREE.MTLLoader();
  mtlLoader.setPath("assets/models/factory_new/")
  mtlLoader.load('factory.mtl', function(materials) {
    materials.preload();
    var objLoader = new THREE.OBJLoader();
    objLoader.setMaterials(materials);
    objLoader.load('assets/models/factory_new/factory.obj', function(object) {
      mesh = object;
      mesh.scale.set(0.0003, 0.0003, 0.0003);
      mesh.position.set(-200, 0.5, -200);
      scene.add(mesh);
    }, function(xhr) {
      let num = Math.floor(xhr.loaded / xhr.total * 100) / 100;
      NProgress.set(num)
      console.log('加载完成的百分比'+(xhr.loaded/xhr.total*100)+'%');
    });
  });
}


3,下载


使用threejs渲染工厂模型源码,立即下载

模型源文件.max格式,obj+mtl格式,立即下载

目录
相关文章
|
Web App开发 JavaScript 容器
Threejs 加载 DAE 模型遇到关题汇总
Threejs 加载 DAE 模型遇到关题汇总 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循“署名-非商业用途-保持一致”创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。
1738 0
|
9月前
|
存储
THREEJS实战6_加载fbx模型
THREEJS实战6_加载fbx模型
901 1
|
存储
threejs实战_加载fbx模型
threejs实战_加载fbx模型
499 0
使用Unity获取所有子对象及拓展方法的使用
这个问题还是比较简单的,无非就是一个for循环就可以全部获取到了,但是我喜欢简单直达,有没有直接就能获取到所有的子对象函数呢,搜了好久都没有,所以我准备写一个扩展函数,来自己补充这个函数,一起来看一下吧。
|
定位技术 API
Cesium开发:关于加载CGCS2000切片
Cesium开发:关于加载CGCS2000切片
767 0
|
6月前
|
Web App开发 应用服务中间件 定位技术
three.js:三维模型加载量测试
three.js:三维模型加载量测试
253 4
|
4月前
ThreeJs设置模型的边线
这篇文章介绍了如何在Three.js中为3D模型添加边线效果,并提供了实现这一功能的代码示例。
77 2
Cesium系列:加载单个模型
Cesium如何加载单个三维模型数据
588 0
|
存储 Web App开发 JavaScript
逆工程 JS 对象 (一): 浅谈 V8 对象布局
逆工程 JS 对象其实就是根据 V8 设计的对 JS 对象存储结构的描述,开发者可以实现在进程运行内存空间中或者进程崩溃后的 Core 文件还原的内存空间中来反推出当前 JS 代码运行状态和 JS 对象在堆空间的分配状况的一种技术。
2278 0

热门文章

最新文章