小编Nic*_*ckG的帖子

React 和 Three.js MTLLoader "material.onBeforeCompile 未定义"

我正在尝试使用 Meteor 在 React 中构建一个简单的对象查看器,它可以使用以下 npm 模块导入 .obj 和 .mtl 文件:

  • 三(0.87.1)
  • 反应(15.6.1)
  • 三对象加载器(1.1.3)
  • 三MTL装载机(1.0.1)

到目前为止,我已经设法使用 OBJLoader 显示一个对象。但是当我在使用 MTLLoader 应用纹理后尝试渲染对象时,我从控制台收到此错误:

遗漏的类型错误:无法读取属性 '的toString' 在WebGLPrograms.getProgramCode(modules.js哈希= eae498e3ee56e21f967b663c5bed3444c66eaef2:50707?)的未定义在initMaterial(modules.js哈希= eae498e3ee56e21f967b663c5bed3444c66eaef2:54628)在setProgram(modules.js哈希= eae498e3ee56e21f967b663c5bed3444c66eaef2? 54820)在WebGLRenderer.renderBufferDirect(modules.js散列= eae498e3ee56e21f967b663c5bed3444c66eaef2:53883)在渲染对象(modules.js散列= eae498e3ee56e21f967b663c5bed3444c66eaef2:54613)在renderObjects(modules.js散列= eae498e3ee56e21f967b663c5bed3444c66eaef2:54586)在WebGLRenderer.render(模块。 js?hash=eae498e3ee56e21f967b663c5bed3444c66eaef2:54350) at WebGlDisplay.renderScene (WebGlDisplay.jsx:86) at onClick (WebGlDisplay.jsx:90) at HTMLUnknownElement。boundFunc (modules.js?hash=eae498e3ee56e21f967b663c5bed3444c66eaef2:8794)

原因:material.onBeforeCompilegetProgramCode未定义

我的代码如下所示:

import React, { Component } from 'react'
import THREE from 'three'
const MTLLoader = require('three-mtl-loader');
const OBJLoader = require('three-obj-loader')(THREE);

export default class WebGlDisplay extends Component {
  constructor(props) {
    super(props)
  }

      //init canvas
   init(){
    const …
Run Code Online (Sandbox Code Playgroud)

three.js reactjs

3
推荐指数
1
解决办法
1093
查看次数

标签 统计

reactjs ×1

three.js ×1