- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我之前在这里问过这个问题:Uncaught TypeError: THREE.MTLLoader is not a constructor
我通过更改 three-mtl-loader 文件让它工作的地方。但是因为我稍后要将我的工作上传到 github,所以我必须在不更改这些文件的情况下创建一个解决方案。
因此,我尝试使用经典示例中使用的加载器加载 obj 和 mtl 文件:https://github.com/mrdoob/three.js/blob/master/examples/webgl_loader_obj_mtl.html
但我仍然收到错误“Uncaught TypeError: THREE.MTLLoader is not a constructor”
我有点不确定我将如何加载这些加载器,但现在我的代码如下所示:
import * as THREE from 'three'
import {OBJLoader} from 'three'
import {MTLLoader} from 'three'
var mtlLoader = new THREE.MTLLoader();
mtlLoader.load("http://blabla.obj.mtl", function(materials) {
materials.preload();
var objLoader = new THREE.OBJLoader();
objLoader.setMaterials(materials);
objLoader.load("http://blabla.obj", function(object) {
object.scale.x = scale;
object.scale.y = scale;
object.scale.z = scale;
scene.add(object)
});
});
在我插入的src文件夹下的three.js文件中的什么地方:
export { OBJLoader } from './loaders/OBJLoader.js'
export { MTLLoader} from './loaders/MTLLoader.js'
编辑
我使用 NPM 安装,错误消失了。不幸的是,出现了其他问题——但我在另一个问题中问过这些问题:three-mtl-loader error: THREE.MeshPhongMaterial: .shading has been removed -> object not visible
最佳答案
Three.js 文档具有误导性。尽管MTLLoader is in the main documentation , 它实际上不是 Three.js 核心库的一部分。它包含在 Three.js 的 examples/
文件夹中。
如果您使用 ES6 模块语法,您有两个选择。
通常人们将这样的东西发布到 NPM,因为 Threejs 的创建者不使用现代 JS 开发实践。在这种情况下,有一个 three-mtl-loader npm package包。
npm install --save three-mtl-loader
然后
import MTLLoader from 'three-mtl-loader';
您可以复制 MTLLoader.js文件到您的项目中,但是如果您使用的是现代 ES6 模块,则将第三方库复制到您的本地项目中并不是一个好习惯。
关于typescript - 未捕获的 TypeError : THREE. MTLLoader 不是构造函数 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47741644/
我创建了一个加载 mtl 和 obj 并在场景中显示的三个 js 程序 运行程序时不显示纹理并显示黑色对象。 我使用 mtl loader 和 obj loader 并在主机的根文件夹中添加文件 这段
无论出于何种原因,当我将使用 MTLLoader 加载的 Material 应用到使用 OBJLoader 加载的模型时,模型本身就会消失。 MTLLoader.setPath( 'models/'
使用 OBJLoader 和 MTLLoader,我正在尝试将从互联网下载的低多边形汽车模型加载到我的 Three.JS 场景中。这个模型甚至没有纹理。然而,虽然我确实看到了模型,但我没有看到它上面的
我将 Three.js 示例的 webgl_loader_obj_mtl.html 集成到 ASP.NET WebForm 中。但是当我运行 html 时遇到问题,Visual Studio 2015
我之前在这里问过这个问题:Uncaught TypeError: THREE.MTLLoader is not a constructor 我通过更改 three-mtl-loader 文件让它工作的
我正在尝试在 React 中使用 Meteor 构建一个简单的对象查看器,它可以使用以下 npm 模块导入 .obj 和 .mtl 文件: 三(0.87.1) react (15.6.1) 三目标加载
我是一名优秀的程序员,十分优秀!