在 Three.js 中将材质分配给 OBJLoader 模型

2024-01-09

我使用以下代码导入了 OBJ 模型:

var loader = new THREE.OBJLoader();
loader.addEventListener('load', function (geometry) {
    object = geometry.content;
    scene.add(object);
});
loader.load('ship.obj');

它工作正常,但每当我尝试向其中添加材质时,它要么没有效果,要么模型消失。我以为我可以这样做:

var ship = new THREE.Mesh(object, material);

但这是行不通的。有谁知道一种方法可以做到这一点,或者是否可能?我也尝试过使用 OBJMTLLoader,但它只会增加复杂性,同时仍然不允许我更改材质。


编辑:这个答案现在已经过时了。相反,请参阅@mightypile 的答案。


假设你已经正确定义了material, 尝试这个:

loader.addEventListener( 'load', function ( event ) {

    var object = event.content;

    object.traverse( function ( child ) {

        if ( child instanceof THREE.Mesh ) {

            child.material = material;

        }

    } );

    scene.add( object );

});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Three.js 中将材质分配给 OBJLoader 模型 的相关文章

  • Three.js 的外观似乎被翻转了

    我这里有一个演示 测试场地 http www myuplay com game test html or Backup http direct myuplay com game test html 由于某种原因 即使鼠标矢量是正确的 我的对
  • 如何让Three.js全屏显示?

    我想用 Three js 制作游戏 但如何使其全屏显示 我看见本文 http learningthreejs com blog 2011 11 17 lets make a 3d game make it fullscreen 并且我在代码
  • 如何添加标签/标签以显示在多个对象的顶部,以便当用户单击对象时标签始终面向相机?

    本质上 我想说的是 我想创建一个出现在对象顶部 表面上的标签或标签 以便当用户单击对象时 即使对象旋转 标签也始终面向相机 我该如何去做呢 我被告知要使用正交相机 但我不确定如何 和 CSS 作为标签 请参阅上一篇文章 如何使我的文本标签始
  • Three.js 通过 Gui 阻止 Raycast

    我想通过光线投射选择对象 但每次我想在 Three js GUI 上选择某些内容时 Mousdown 事件都会被触发 我怎么说 如果 Gui 在对象前面 则不触发 之类的话 document addEventListener mousedo
  • 有什么方法可以从 Three.js Object3D 中获取边界框吗?

    我正在使用 Three js 和 OBJLoader js 加载 OBJ 文件 这将返回一个 Three Object3D 对象 它具有您期望从 3D 模型中获得的内容 位置向量 向上向量 我不明白的是如何获得它的边界框 这可能吗 您不需要
  • 该浏览器无法识别 React Three Fiber 网格标签

    我正在关注 Youtube 上的 3d 作品集教程 但遇到了这个错误 在这里 我尝试渲染网格 但控制台显示警告 此元素在此浏览器中无法识别 浏览器正在渲染其余部分 但这部分代码没有被渲染 这是代码块 const Computers gt c
  • 具有材质颜色的三个 js 动画搅拌机模型

    我有一个导出的 三个 js json 格式 搅拌机模型 该模型有一些带有颜色的材料 如果我使用 THREE MorphAnimMesh 和 THREE MeshPhongMaterial 动画工作正常 但没有材质颜色 如果我使用 THREE
  • 在 ThreeJS 中将 2D 鼠标坐标转换为世界 XZ 坐标

    我需要将鼠标屏幕坐标转换为 XZ 平面上的 ThreeJS 世界坐标 我发现这个工作代码可以将鼠标位置转换为 XY 世界坐标 但我不知道如何修改它以获取 XZ 坐标 var vector new THREE Vector3 vector s
  • 如何在 Three.js 上覆盖 HTML 文本/按钮?

    好的 很新three js在这里 但我正在努力实现谷歌所拥有的https beinternetawesome withgoogle com interland https beinternetawesome withgoogle com i
  • Three.js 支持波斯语/阿拉伯语文本

    我需要以波斯语 阿拉伯语显示一些文本 我加载了包含字符的字体 并使用 TextGeometry 在场景上创建文本 var loader new THREE FontLoader loader load B Zar Regular js fu
  • 从数组 THREE.js 创建纹理

    我正在研究地形生成器 但我不知道如何处理颜色 我希望能够生成一张占据整个 PlaneGeometry 的图像 我的问题是如何根据我的高度图创建一个覆盖整个 PlaneGeometry 没有环绕 的单个图像 我可以想到一种方法 但我不确定它是
  • 将 A 框架与 Three.js 相结合

    我想知道 是否可以将 Three js 元素添加到 A 框架场景中 假设 A frame 是基于 Three js 构建的 并且 three Version 0 74 0 登录到你的控制台这不应该是一件奇怪的事情 对吧 我在我的 A 框架场
  • THREE.js 导入的模型不应用面部纹理

    我正在尝试导入使用 THREEJS 导出器从搅拌机导出的模型 到目前为止 模型已加载并出现在我的场景中 并且正确应用了材质 汽车应为黄色 玻璃应为透明 但它并没有将我的纹理应用到以 tga 形式保存的汽车上 如果我不将纹理包含在模型所在的服
  • 重复凹凸贴图

    我正在尝试使用 Three js r55 将凹凸贴图应用到平面上 以创建一个模糊的感觉表面 这是我的代码 var mapHeight THREE ImageUtils loadTexture images felt png mapHeigh
  • 在 TypeScript 中使用三个 Js + OrbitControl

    我无法得到this http www example com 在 TypeScript 中使用上述组合的示例 I have and 在我的html中和打字稿文件
  • 在 Three.js 中使用多种材质来合并几何体

    我想使用 2 个网格创建一棵松树 其中 1 个用于树干 另一个用于灌木 这就是我所做的 var pine geometry new THREE Geometry var pine texture 1 THREE ImageUtils loa
  • Three.js - 将 WebGL 和 CSS3D 与 iFrame 混合

    我准备了一个混合的工作页面WebGL and CSS3D 在SO的一点帮助下here https stackoverflow com questions 24681170 three js properly blending css3d a
  • (A 框架)本地 gltf 不会加载;无法读取未定义的属性“切片”

    我从A型框架学校 https aframe io aframe school 11其中加载了 gltf 模型 然后我从 Khronos 加载了示例模型 this box https github com KhronosGroup glTF
  • 如何在react-三纤维中提取并播放动画

    嗯 我有 gltf 动画模型 我成功加载模型 但无法播放嵌入的动画 我想知道是否可以以任何方式解决它 顺便说一句 我正在反应中工作 先感谢您 在这里您可以找到型号https drive google com file d 1ZVyklaQu
  • ThreeJS 中阴影的奇怪行为

    所以我有一个 ThreeJS 场景 并且添加了一些球体 多材质 我还添加了定向光 this light new THREE DirectionalLight 0xFFFFFF 1 this light position set 2 10 2

随机推荐

  • 使用分段控制更改视图

    我需要使用分段控件更改视图 在下面的示例中 我将两个视图容器放在同一位置 第二个容器是隐藏的 每次使用分段控件时我都会通过代码显示它 虽然它也没有显示 import UIKit class ViewController UIViewCont
  • ClassCastException:java.lang.ClassCastException:android.widget.LinearLayout$LayoutParams 无法转换为 android.support.v4.widget.DrawerL

    我已经为导航抽屉编写了一个程序 该程序运行良好 但最近我尝试放置一个ImageView获取个人资料图片和TextView 之后它给了我一个ClassCastException main activity xml 当我删除LinearLayo
  • JavaScript 验证输入的日期

    我是新来的Javascript编程 我正在尝试验证输入的日期
  • ML 中 ref 函数的用法

    考虑到 ref 运算符 我很难理解它的应用以及以下指令的含义 1 在这个定义中我定义什么 val ref x ref 9 val x 9 int 2 我在这里用 ref x ref 12 做什么 val x ref 8 val x ref
  • 计算跨浏览器 iframe 高度

    我的 JavaScript 经验中最困难的问题之一是正确 即 跨浏览器 计算iframe 高度 在我的应用程序中 我有很多动态生成的 iframe 我希望它们都在加载事件结束时执行某种自动调整大小以调整其高度和宽度 如果是height计算我
  • 为什么不能在 osx 中原生安装 docker?

    我希望能够在 OSX 中的 Vagrant 之外使用 docker 目前这是不可能的 导致它不只限于linux安装的具体原因是什么 Docker 只是系统提供的容器之上的一个抽象和自动化层 技术限制是 OS X 不支持操作系统级虚拟化 ht
  • 如何添加添加图像作为下拉箭头?

    我创建了一个带有下拉箭头的应用程序 但箭头的尺寸太小 所以我决定放大箭头的大小 我需要添加图像而不是箭头 是否可以添加图像或调整箭头大小 我当前的 CSS 如下 custom select after content content siz
  • Play框架会话和cookie如何工作?

    play 如何验证 cookie 我注意到重新启动服务器后我仍然登录 即使我 不要在数据库中保存任何会话数据 我也注意到了 我可以将服务器上的日期设置为大于到期日 cookie 的日期 但我仍然登录 我退出了 将 cookie 保存到文本文
  • 简单文件上传返回NULL?

    我正在尝试在 MVC 5 中进行第一个简单的文件上传 我正在遵循我找到的一堆示例 但由于某种原因 在我的 创建 ActionResult 中 uploadFile 始终为 NULL 因此上传代码为从不运行 有人看到我可能做错了什么吗 Vie
  • 单独类库中数据注释的本地化

    我们正在尝试为我们的域模型实现本地化 这些模型存在于我们的解决方案中的单独的类库项目中 然而 我们无法让它工作 因为我们的模型数据注释属性根本没有被翻译 项目结构 Solution Web project 资源文件夹 包含 resx 文件
  • 如何制作一个永不结束的迭代器?

    我只是想知道无限期地迭代集合的最简单方法是什么 即当它到达末尾时next 调用第一个对象 我假设这不是 Java 中预定义的函数 所以只是寻找在 Java 中实现它的最简单方法 有一个方法很优秀谷歌收藏 https github com g
  • 如何使用 conda 或 virtualenv 在虚拟环境之间共享包?

    我有多个 python 项目 每个项目都有自己的虚拟环境 另外我有一个全局 python 环境 我想在虚拟 全局环境之间共享相同的包文件 而不需要多次复制它们 如果可能 Environment Packages GLOBAL A B C D
  • 在编译时完全枚举 D 维数组的索引

    为了测试一些多维结构 需要生成编译时多维索引以完全覆盖所有可能的情况 我寻找编译时廉价的方法来实现上述目的 我目前所做的 include
  • java 10 中使用局部变量类型推断的限制

    Java 10引入了局部变量类型推断特征JEP 286 http openjdk java net jeps 286 我们可以使用局部变量类型推断var这是保留类型名称 但使用它有一些限制 有人可以总结一下在哪些情况下我将无法使用 var
  • 如何在android的城市飞艇中注册apid?

    I have completed client side code by download sample from git for push notification in android After execute of app i go
  • 有条件地更改 Razor 视图中的 CSS 类

    我需要更改 CSS 类 div 带有 forumChild 类的标签 它必须每 3 个循环更改一次 foreach 循环 有没有办法在控制范围内做到这一点 div class Forum p The Forum p foreach var
  • 是否可以在同一帧中打开新的 fxml 文件

    我在锚点窗格中创建了 fxml 文件 但每次我单击按钮时 我都会在新框架中得到下一个 fxml 我希望它在同一帧中打开 public void baropen ActionEvent event handle the event here
  • 导航栏按钮和项目未在 swift 3 中显示

    我在 swift 中以编程方式使用导航栏 但无法在导航栏中显示栏按钮项目 这是我所做的代码 override func viewDidLoad super viewDidLoad let navBar UINavigationBar UIN
  • 存在主义类型。为异构映射编写类的实例

    使用以下类型和类定义 我不明白为什么在创建时会出现错误instance below 我需要 MyMap 来保存异构值的映射 LANGUAGE ExistentialQuantification module Scratch SO Extis
  • 在 Three.js 中将材质分配给 OBJLoader 模型

    我使用以下代码导入了 OBJ 模型 var loader new THREE OBJLoader loader addEventListener load function geometry object geometry content