【问题标题】:Why is not Monster model displayed by glTFLoader of three.js on iOS?iOS上three.js的glTFLoader为什么不显示Monster模型?
【发布时间】:2017-06-24 12:24:48
【问题描述】:

-规格-

three.js 版本:r84(现在)

设备:iPad Air2

iOS 版本:10.0.2

浏览器:Chrome、Safari

-glTFLoader-

网址:https://threejs.org/examples/#webgl_loader_gltf

怪物 -> 不显示

其他 -> 显示

我为什么要问这个问题?

我的自制模型也有同样的问题。 我的模型是通过以下过程导出的。

  1. MODO 建模、UV、蒙皮和动画
  2. MODO 出口 Collada
  3. 通过 COLLADA2GLTF 工具从 Collada 转换 glTF

我的模型在 Windows 和 macOS 上显示,但在 iOS 上不显示。 所以,我的情况与示例相同。

有显示规则吗?

附言

我没有新的 Android 设备。我不检查Android...

【问题讨论】:

  • 它在cx20.github.io/gltf-test/examples/threejs/… 的 gltf-test 设置中对您有用吗?
  • 嗨,Marco13。不,它不起作用。我在 iPad Air2 上只能看到灰色背景和 XYZ 轴。
  • 使用github.com/cx20/gltf-test 处的测试,用其他库(在同一操作系统/浏览器上)尝试这个怪物,可能有助于确定问题是否特定于three.js。如果是这样,可能值得在 three.js GitHub 页面上将其作为问题打开。 (我的第一个猜测是 three.js 和动画有问题,但你说其他模型(特别是铯人?!)正在工作,所以这不太可能。我无法想象应该怎么做对怪物那么具体,不过……)

标签: javascript android ios three.js gltf


【解决方案1】:

原因是最大数量的骨头。

如果我们使用的骨骼数量超过操作系统支持的数量,WebGL 渲染器会输出“too many uniforms”错误。

我听说 iOS (10.x?) 支持 22 个骨骼(Phong 着色)或 22 个骨骼(Lambert 着色)。

这个问题已经在github上列出了。

https://github.com/mrdoob/three.js/issues/7807

一个简单的解决方案是我们使用少于 22 个骨骼。

嗯...对于人体模型等等来说这是一个小数字。

谢谢 Marco13 和大家。

注意:

怪物模型有 32 块骨头。 (我自制的模型有 52 块骨头(!)。)

我学会了如何使用 iOS safari + macOS safari 进行调试。

以下是怪物模型的日志。

【讨论】:

    猜你喜欢
    • 2021-07-20
    • 2019-07-11
    • 2020-04-13
    • 2015-10-03
    • 2021-05-06
    • 2020-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多