请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

bottle纹理加载不出来

bottle纹理加载不出来,代码如下

loadTexture () {
    const loader = new THREE.TextureLoader()
    const specularTexture = loader.load('/game/res/images/head.png')
    const middleTexture = loader.load('/game/res/images/middle.png')
    const bottomTexture = loader.load('/game/res/images/bottom.png')
    const specularMaterial = new THREE.MeshBasicMaterial({
      map: specularTexture
    })
    const middleMaterial = new THREE.MeshBasicMaterial({
      map: middleTexture
    })
    const bottomMaterial = new THREE.MeshBasicMaterial({
      map: bottomTexture
    })

    return {
      specularMaterial,
      middleMaterial,
      bottomMaterial
    }
  }
const {
      specularMaterial,
      middleMaterial,
      bottomMaterial
    } = this.loadTexture()

    const top = new THREE.Mesh(
      new THREE.SphereGeometry(headRadius / 1.4, 20, 20),
      bottomMaterial
    )
    const head = new THREE.Mesh(
      new THREE.OctahedronGeometry(headRadius),
      specularMaterial
    )

图片描述

 const specularTexture = loader.load('/game/res/images/head.png', function(texture) {
      console.log(texture.image.currentSrc) // 拿到 http://127.0.0.1:58577/game/res/images/head.png,这个地址在浏览器中都无法访问,
    })

图片描述

请问各位大佬,这是哪里出问题了?

正在回答 回答被采纳积分+3

1回答

提问者 慕哥7245114 2020-10-12 19:13:07

应该不是图片访问不到到问题,代码也应该没有问题

想了半天,感觉应该是纹理加载是异步到原因,修改一下render函数就好了

但是,为什么老师到代码不用requestAnimationFrame也可以呢?

```

render() {

this.renderer.render(this.instance, this.camera.instance)

requestAnimationFrame(this.render.bind(this))

}

```

0 回复 有任何疑惑可以回复我~
  • 千迦 #1
    同学你好,在慕课网平台上下载代码可以作为参考。我看了complete-version的代码,用的也是requestAnimationFrame。祝你学习愉快
    回复 有任何疑惑可以回复我~ 2020-10-20 10:20:39
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信