广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >three.js如何加载obj模型
  • 211
分享到

three.js如何加载obj模型

2024-04-02 19:04:59 211人浏览 独家记忆
摘要

这篇文章主要介绍three.js如何加载obj模型,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!three.js是一款webGL框架,由于其易用性被广泛应用。如果你要学习WEBGL,

这篇文章主要介绍three.js如何加载obj模型,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

three.js是一款webGL框架,由于其易用性被广泛应用。如果你要学习WEBGL,抛弃那些复杂的原生接口从这款框架入手是一个不错的选择。好了,下面通过一段代码给大家介绍three.js加载obj模型,具体代码如下所示:

<!DOCTYPE html>
<html>
  <head>
    <script type="text/javascript" src="libs/three.js"></script>
    <script type="text/javascript" src="libs/OBJLoader.js"></script>
    <script type="text/javascript">
      var scene = null;
      var camera = null;
      var renderer = null;
      var mesh = null;
      var id = null;
      function init() {
        renderer = new THREE.WebGLRenderer({//渲染器
          canvas: document.getElementById('mainCanvas')//画布
        });
        renderer.setClearColor(0x000000);//画布颜色
        scene = new THREE.Scene();//创建场景
        camera = new THREE.OrthographicCamera(-5, 5, 3.75, -3.75, 0.1, 100);//正交投影照相机
        camera.position.set(15, 25, 25);//相机位置
        camera.lookAt(new THREE.Vector3(0, 2, 0));//lookAt()设置相机所看的位置
        scene.add(camera);//把相机添加到场景中
        var loader = new THREE.OBJLoader();//在init函数中,创建loader变量,用于导入模型
        loader.load('libs/port.obj', function(obj) {//第一个表示模型路径,第二个表示完成导入后的回调函数,一般我们需要在这个回调函数中将导入的模型添加到场景中
          obj.traverse(function(child) {
            if (child instanceof THREE.Mesh) {
              child.material.side = THREE.DoubleSide;
            }
          });
          mesh = obj;//储存到全局变量中
          scene.add(obj);//将导入的模型添加到场景中
        });
        var light = new THREE.DirectionalLight(0xffffff);//光源颜色
        light.position.set(20, 10, 5);//光源位置
        scene.add(light);//光源添加到场景中
        id = setInterval(draw, 20);//每隔20s重绘一次
      }
      function draw() {//们在重绘函数中让茶壶旋转:
        renderer.render(scene, camera);//调用WebGLRenderer的render函数刷新场景
        mesh.rotation.y += 0.01;//添加动画
        if (mesh.rotation.y > Math.PI * 2) {
          mesh.rotation.y -= Math.PI * 2;
        }
      }
    </script>
  </head>
  <body onload="init()">
    <canvas id="mainCanvas" width="800px" height="600px" ></canvas>
  </body>
</html>

下面看下如何使用Three.js加载obj和mtl文件

OBJ和MTL是3D模型的几何模型文件和材料文件。

在最新的three.js版本(r78)中,以前的OBJMTLLoader类已废弃。

现在要加载OBJ和MTL文件,需要结合OBJLoader和MTLLoader两个类来实现,这也提供了操作的灵活性。

下述代码中首先使用MTLLoader加载egg.mtl材料文件,然后把该材料设置给一个OBJLoader对象,以便在加载obj模型的时候进行应用。

onProgress是加载过程回调函数,onError是错误处理函数。

// model
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) {};
THREE.Loader.Handlers.add(/\.dds$/i, new THREE.DDSLoader());
var mtlLoader = new THREE.MTLLoader();
mtlLoader.setPath('/uploads/160601/obj/');
mtlLoader.load('egg.mtl', function(materials) {
  materials.preload();
  var objLoader = new THREE.OBJLoader();
  objLoader.setMaterials(materials);
  objLoader.setPath('/uploads/160601/obj/');
  objLoader.load('egg.obj', function(object) {
    object.position.y = -0.5;
    scene.add(object);
  }, onProgress, onError);
});

以上是“three.js如何加载obj模型”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网node.js频道!

--结束END--

本文标题: three.js如何加载obj模型

本文链接: https://www.lsjlt.com/news/74072.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • three.js如何加载obj模型
    这篇文章主要介绍three.js如何加载obj模型,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!three.js是一款webGL框架,由于其易用性被广泛应用。如果你要学习webGL,...
    99+
    2022-10-19
  • Three.js GLTF模型加载怎么实现
    这篇文章主要介绍“Three.js GLTF模型加载怎么实现”,在日常操作中,相信很多人在Three.js GLTF模型加载怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Three...
    99+
    2023-07-06
  • Three.js加载外部模型的示例分析
    这篇文章主要介绍了Three.js加载外部模型的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.  首先我们要在官网: ...
    99+
    2022-10-19
  • 解决threeJS加载obj gltf模型后颜色太暗的方法
    目录网上找到的部分解决方法效果对比总结网上找到的部分解决方法 其实通过查找后不难发现网上给出了很多解决方法,但是大部分都无法从根本上解决问题。我之前看到有一篇文章对gltf的解决方法...
    99+
    2022-11-13
  • three.js Mool3D模型类如何使用
    这篇文章主要介绍“three.js Mool3D模型类如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“three.js Mool3D模型类如何使用”文章能帮助大家解决问题。...
    99+
    2023-07-05
  • Vue集成three.js并加载glb、gltf、FBX、json模型的场景分析
    目录先上几个网址安装组件中引入 基本使用 补充 最近刚开始做的一个项目,后面有个模块要通过three.js实现3D的场景,因为之前也没接触过3D这块,就...
    99+
    2022-11-13
  • PHP加载3D模型【WebGL】
    这是另一篇关于如何使用 PHP加载 3D 模型的文章。 在这里,我使用 Laravel 作为后端及其存储。 我在前端使用 Three.Js 库来渲染和显示 3D 模型。 我将向您展示如何上传 3D 模...
    99+
    2023-09-28
    php 3d webgl
  • Python如何加载模型并查看网络
    目录加载模型并查看网络打开终端神经网络_模型的保存,模型的加载模型的保存(torch.save)模型的加载(torch.load)加载模型并查看网络 加载模型,以vgg19为例。 打...
    99+
    2022-11-11
  • Pytorch模型参数如何保存和加载
    这篇文章主要介绍“Pytorch模型参数如何保存和加载”,在日常操作中,相信很多人在Pytorch模型参数如何保存和加载问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Pytorch模型参数如何保存和加载”的疑...
    99+
    2023-07-05
  • torch.hub.load 加载本地模型(已解决)
    背景 运行网上的项目,有时会卡住或者超时,原因是 torch.hub.load 默认会去网上找模型,有时会因为网络问题而报错 解决方法 不让 torch.hub.load 联网下载模型,改为 torc...
    99+
    2023-09-06
    python 深度学习 开发语言
  • pycharm如何加载模块
    要在PyCharm中加载模块,可以按照以下步骤操作:1. 打开PyCharm,并打开您的Python项目。2. 在项目文件夹中创建一...
    99+
    2023-08-15
    pycharm
  • unity如何添加模型
    Unity可以通过以下步骤添加模型:1. 在Unity编辑器中选择想要添加模型的场景或游戏对象。2. 在Unity编辑器的Proje...
    99+
    2023-08-20
    unity
  • three.js中如何通过模块导入
    这篇文章主要为大家展示了“three.js中如何通过模块导入”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“three.js中如何通过模块导入”这篇文章吧。前言通...
    99+
    2022-10-19
  • PyTorch模型保存与加载的方法
    这篇文章主要介绍了PyTorch模型保存与加载的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PyTorch模型保存与加载的方法文章都会有所收获,下面我们一起来看看吧。state_dict 是一个Pytho...
    99+
    2023-06-30
  • PyTorch加载模型model.load_state_dict()问题及解决
    目录PyTorch加载模型model.load_state_dict()问题1. 对load的模型创建新的字典2. 直接用空白''代替'module.'...
    99+
    2023-02-03
    PyTorch加载模型 model.load_state_dict() PyTorch模型
  • Pytorch模型参数的保存和加载
    目录一、前言二、参数保存三、参数的加载四、保存和加载整个模型五、总结一、前言 在模型训练完成后,我们需要保存模型参数值用于后续的测试过程。由于保存整个模型将耗费大量的存储,故推荐的做...
    99+
    2023-03-11
    Pytorch模型参数保存 Pytorch模型参数加载
  • Three.jsGLTF模型加载实现示例详解
    目录引言1. 下载GLTF模型2. 加载GLTF模型3. 添加光源4. 动画控制总结引言 在Three.js中,要加载三维模型文件,可以使用GLTF格式。GLTF是一种基于JSON...
    99+
    2023-05-16
    Three.js GLTF模型加载 Three.js GLTF
  • 详解Three.js 场景中如何彻底删除模型和性能优化
    目录three.js 场景中如何彻底删除模型和性能优化删除外部模型优化技巧注意事项three.js 场景中如何彻底删除模型和性能优化 删除外部模型 在three.js场景中,要彻底...
    99+
    2023-05-16
    Three.js 删除模型性能优化 Three.js 彻底删除模型
  • Java类加载器以及类加载器的委托模型是什么
    本篇内容介绍了“Java类加载器以及类加载器的委托模型是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我们知道,我们在Java中用到的所...
    99+
    2023-06-17
  • PyTorch模型保存与加载实例详解
    目录一个简单的例子保存/加载 state_dict(推荐)保存/加载整个模型保存加载用于推理的常规Checkpoint/或继续训练保存多个模型到一个文件使用其他模型来预热当前模型跨设...
    99+
    2022-11-10
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作