小程序three.jsobj的简单介绍

本文目录一览:

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

使用Three.js加载obj和mtl文件方法:

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);

 

});

ThreeJS渲染一个.obj三维模型文件(Vue)

先来看一个效果:

最近有个项目需要实现三维模型的web端渲染,以前虽然也做过类似的项目,单是两个项目一个是java Application,一个是安卓结合,两个我都只参与到的建模环节,所以知道三维模型文件的大概结构,要想在web端实现渲染,首先要做的就是读取这些模型文件,对里面的点、面、法线、材质进行逐行解析。

各种对比后,发现了ThreeJS。它不仅可以解析obj模型文件,还可以解析大部分市场上有的模型格式文件。

npm 安装后,在node_modules/three/examples/jsm/loaders/目录下可以看到它支持的模型格式。

PS:demo中使用了最流行vue语法。

组件注销前,解绑全局事件、停止刷新。beforeDestroy()

效果如下:

PS:鼠标移入时,先暂存材质的颜色,移除后再恢复。实现过程有bug,getHex()未得到有效的颜色,所以恢复不到原有的材质颜色,正在查找原因。如有有哪位大神发现问题,请赐教。

优化内容:

2.页面组件销毁时,解绑鼠标事件

3.组件销毁时,清除缓存数据

关于three.js导入obj模型后进行移动的问题

我之前用three.js写过demo不是很熟,但思路应该是,new 一个 Object3D

然后add(加载的对象)

移动这个整体的对象就行了

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/292031.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-25 14:07
下一篇 2024-12-25 14:07

相关推荐

  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • Python程序文件的拓展

    Python是一门功能丰富、易于学习、可读性高的编程语言。Python程序文件通常以.py为文件拓展名,被广泛应用于各种领域,包括Web开发、机器学习、科学计算等。为了更好地发挥P…

    编程 2025-04-29
  • Python简单数学计算

    本文将从多个方面介绍Python的简单数学计算,包括基础运算符、函数、库以及实际应用场景。 一、基础运算符 Python提供了基础的算术运算符,包括加(+)、减(-)、乘(*)、除…

    编程 2025-04-29
  • Python满天星代码:让编程变得更加简单

    本文将从多个方面详细阐述Python满天星代码,为大家介绍它的优点以及如何在编程中使用。无论是刚刚接触编程还是资深程序员,都能从中获得一定的收获。 一、简介 Python满天星代码…

    编程 2025-04-29
  • Python购物车程序

    Python购物车程序是一款基于Python编程语言开发的程序,可以实现购物车的相关功能,包括商品的添加、购买、删除、统计等。 一、添加商品 添加商品是购物车程序的基础功能之一,用…

    编程 2025-04-29
  • 爬虫是一种程序

    爬虫是一种程序,用于自动获取互联网上的信息。本文将从如下多个方面对爬虫的意义、运行方式、应用场景和技术要点等进行详细的阐述。 一、爬虫的意义 1、获取信息:爬虫可以自动获取互联网上…

    编程 2025-04-29
  • Vb运行程序的三种方法

    VB是一种非常实用的编程工具,它可以被用于开发各种不同的应用程序,从简单的计算器到更复杂的商业软件。在VB中,有许多不同的方法可以运行程序,包括编译器、发布程序以及命令行。在本文中…

    编程 2025-04-29
  • Python海龟代码简单画图

    本文将介绍如何使用Python的海龟库进行简单画图,并提供相关示例代码。 一、基础用法 使用Python的海龟库,我们可以控制一个小海龟在窗口中移动,并利用它的“画笔”在窗口中绘制…

    编程 2025-04-29
  • Python一元二次方程求解程序

    本文将详细阐述Python一元二次方程求解程序的相关知识,为读者提供全面的程序设计思路和操作方法。 一、方程求解 首先,我们需要了解一元二次方程的求解方法。一元二次方程可以写作: …

    编程 2025-04-29

发表回复

登录后才能评论