Threejs - 导入 collada 模型在 Chrome Android 上看起来很有趣,纹理未正确加载

Posted

技术标签:

【中文标题】Threejs - 导入 collada 模型在 Chrome Android 上看起来很有趣,纹理未正确加载【英文标题】:Threejs - Import collada model looks funny on Chrome Android, textures are not properly loaded 【发布时间】:2014-06-30 22:56:48 【问题描述】:

我尝试使用提供的ColladaLoader 导入 .dae 模型,它在桌面上运行良好,但在 android 上的 Chrome 上我遇到了一些问题。几何体已加载,但纹理未正确加载。似乎纹理已应用于对象,但它们没有以正确的颜色渲染,它看起来都是浅蓝色的。 任何人都知道我做错了什么?是否与各向异性过滤有关(因为我注意到 chrome mobile 不支持?)

【问题讨论】:

你的纹理有多大? Android 的内存比桌面少很多 【参考方案1】:

three.js创作者本人的回答是,这是高通GPU驱动中与雾gslsl代码相关的bug。为避免此错误,请关闭所有 phong 材料的雾属性。

phongMaterial.fog = false;

在修复此错误之前,Android 上不会出现雾。

【讨论】:

【参考方案2】:

比较threejs.org 网站上的工作示例和非工作示例,我发现了蓝色纹理的罪魁祸首。它是定向光的阴影映射。不知何故,下面的这段代码在 android 设备上引起了问题。

            light.castShadow = true;
            light.shadowMapWidth = 2048;
            light.shadowMapHeight = 2048;

            var d = 390;

            light.shadowCameraLeft = -d * 2;
            light.shadowCameraRight = d * 2;
            light.shadowCameraTop = d * 1.5;
            light.shadowCameraBottom = -d;

            light.shadowCameraFar = 3500;

【讨论】:

以上是关于Threejs - 导入 collada 模型在 Chrome Android 上看起来很有趣,纹理未正确加载的主要内容,如果未能解决你的问题,请参考以下文章

如何使用threejs中的按钮更改Collada的颜色?

ThreeJS collada 文件未居中

Angle Threejs Collada

如何在 Three.js 中用 ShaderMaterial 替换 Collada 导入的纹理?

将 Zbrush collada 模型导入 Xcode 6.2 时出现问题

iOS Xcode 从 Maya 导入 COLLADA .dae 3D 模型,同时尊重枢轴点