问题标签 [objloader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何将 .obj 模型加载到 three.js 上的对象中以提高移动性能
我应该如何正确加载带有 objLoader 和 MTLLoader 的 .obj 模型?我问这个问题是因为我的 three.js 迷你游戏包含一些 obj 和 mtl 模型,这些模型在我的太空游戏动画循环开始之前正在加载。游戏在计算机上渲染和加载良好,但无法在手机浏览器上加载。更准确;当您在手机浏览器上访问时,它会尝试加载、失败,然后自动刷新,直到浏览器发送错误。当我使用 obj 模型为游戏创建多个小行星时,桌面与手机浏览器的战争开始发生。您可以在“查看我的游戏” zeeyeland.com/dungeon-space”。如果您在桌面上控制台登录,则可以查看日志信息。但是,如果您通过电话访问网站,则会发生上述错误。加载失败让我感到惊讶。三人组。org 网站上有很多更复杂的游戏可以加载到我的手机浏览器上。任何帮助将不胜感激。这是我的一些代码,它们可能会确定移动支持渲染的一些重要因素
这组代码在触发我的主要动画循环之前加载了我的所有对象
我的大多数 obj 和 mtl 对象加载器的编码类似于:
我的小行星物体加载相似但数量更多。我使用 for 循环创建了大约 25 个小行星并随机化它们的位置
其他对象包括宇宙飞船和背景中的行星,它们是使用球体几何形状制作的。在将小行星添加到游戏之前,所有这些对象都在移动浏览器上渲染。
three.js - How can I load a group of objects to a global variable with OBJLoader without type-error messages?
I'm using the following code to load OBJ objects, but in order to load the resulted group on a global variable, I pre-define the variable as 'null' which raises Type-error messages in Firefox console. I tried defining it as THREE.Group, THREE.Mesh, etc to no avail -those are causing the code to not execute. How can I have the same functionality without those annoying error messages?
javascript - THREE.OBJLoader - 缩放网格和 BufferGeometry 顶点
我正在使用THREE.OBJLoader将 3D 模型加载到我的场景中。它工作正常。
但是,将其添加到场景后,我需要将其缩放 10,然后检索其顶点位置。
我知道这THREE.OBJLoader
给了我一个BufferGeometry
,并且我知道如何使用position
属性访问它的顶点。
我的问题是:Float32Array
无论是在将网格添加到场景之前还是之后,在缩放网格后存储这些顶点似乎都没有更新。
在从加载程序中获取网格后,我使用此代码段来缩放网格:
然后我使用以下方法获取顶点:
这样做,我的网格被添加到具有适当(缩放)尺寸的场景中,但它BufferGeometry
不想更新顶点值。
我做了很多涉及myMesh.geometry.attributes.position.needsUpdate = true;
or的测试myMesh.updateMatrix();
,我已经看到了很多关于这个主题的 SO 问题(这里或这里),但我找不到解决方案......
如果我在这里误解了什么,你能告诉我吗?(请记住,我刚开始使用 Three.js 和 WebGL,所以我肯定缺乏这方面的知识)。
three.js - THREE.js - BufferGeometry (ObjLoader) 的顶点坐标
我是 Three.js 的新手,在获取 2 个顶点的坐标时遇到了问题。我需要他们的 x,y,z 坐标来计算和绘制尺寸。
我使用了 ObjLoader,我确切地知道顶点的 ID(索引) - 11889 和 11877。
我尝试使用 BufferGeometry 的一些属性,但显然是错误的。所以这是我要使用的简单代码。
我读了一些类似的问题,但我无法针对我的问题调整答案。我应该怎么做才能获得坐标?谢谢!
javascript - 如何在 Three.js 中使用 ObjLoader 加载的对象的顶点
ObjLoader 在我的场景中加载了一个对象。但随后我需要读取该对象顶点。但我仍然不知道该怎么做。在我在three.js 中制作的普通立方体上,我可以毫无问题地读取和更改顶点,但在ObjLoader 加载的对象上它不起作用。我还尝试使用 FaceNormalsHelper,它也适用于立方体,但不适用于我的对象。
这是我的代码:
非常感谢
javascript - 在 OBJLoader2 加载的网格上应用 MeshLambertMaterial
我有一个用 OBJloader2 显示的 obj 文件。我正在寻找一种在其上应用 MeshLambertMaterial 的方法。
我可以用 OBJLoader 做到这一点,在 onLoadedCallback 函数中调用以下代码:
不幸的是,我不能对 OBJLoader2 做同样的事情。我错过了什么吗?我发现的所有示例都是从 .mtl 文件中导入材料,这是唯一的方法吗?
谢谢。
javascript - 似乎无法将我的 obj 添加到场景中: THREE.Object3D.add: object not an instance of THREE.Object3D
我是使用three.js的新手。我曾经使用 JSON 文件作为我的 3D 模型,但是当我从 Blender 导出它时,实际的 3D 文件有一些问题,所以我切换到 obj。实际模型现在很好,但我不知道如何从JSON切换到obj。这是我所能得到的,但我不断收到错误:THREE.Object3D.add:对象不是 THREE.Object3D 的实例。
3D 模型似乎已加载,但我认为无法将其添加到场景中
javascript - 在 ThreeJS 中将物理添加到 OBJ 模型
我正在尝试将 PhysiJS 与 ThreeJS 一起使用。我有一个从 Blender 导出的 OBJ 模型。当我用 OBJLoader 加载它时,我看到它是一个 BufferGeometry。我还注意到它缺少一个vertices
属性,这是 PhysiJS 寻找的。
我的 ThreeJS 版本是 r101。我将不胜感激任何建议。如果有更合适的图书馆,我也愿意。我也很乐意提供任何澄清。
three.js - three.js getObjectByName() 导致未定义
我试图在更新函数中更改对象的不透明度,但我无法按名称调用对象。它总是返回未定义的。
这段代码是一个片段。有许多汽车使用相同的功能。对于有问题的台词,我评论说:“这是正确的吗?”。如果需要澄清,请发表评论。