Three.js: 禁用多个灯光上的投射阴影会使渲染器崩溃

创建于 2019-10-23  ·  3评论  ·  资料来源: mrdoob/three.js

问题描述

给定一个包含多个光源的场景,仅在其中一个灯光上禁用投射阴影将导致渲染器崩溃。

堆栈跟踪:

three.js:16521 Uncaught TypeError: Cannot read property 'toArray' of undefined
    at flatten (three.js:16521)
    at PureArrayUniform.setValueM4Array [as setValue] (three.js:16999)
    at Function.WebGLUniforms.upload (three.js:17248)
    at setProgram (three.js:25307)
    at WebGLRenderer.renderBufferDirect (three.js:24041)
    at renderObject (three.js:24802)
    at renderObjects (three.js:24772)
    at WebGLRenderer.render (three.js:24549)
    at render ((index):111)

从版本r108开始出现此问题。 在r107中,不会发生此问题。

例子:

  • jsfiddle (r109,单击“阴影”将使渲染器崩溃)
  • jsfiddle (r107,单击“阴影”将正常运行)
Three.js版本
  • [x] r108
  • [x] r108
  • [] r107
浏览器
  • [x]全部
  • [ ] 铬合金
  • []火狐
  • [ ] IE浏览器
作业系统
  • [x]全部
  • [] Windows
  • [ ] 苹果系统
  • [] Linux
  • [ ] 安卓
  • [] iOS

所有3条评论

实际上,我无法使用最新的dev版本进行复制:

https://jsfiddle.net/ewhgdyk4/1/

@moskopio您能验证一下吗?

https://jsfiddle.net/pbkx9mwg/正在使用r109运行,并且此版本确实发生崩溃。

但是,它在使用最新dev :+1的https://jsfiddle.net/ewhgdyk4/1/上确实可以正常工作。

谢谢@ Mugen87

我很高兴这个问题已经解决:sweat_smile:

此页面是否有帮助?
0 / 5 - 0 等级