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 上看起来很有趣,纹理未正确加载的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Three.js 中用 ShaderMaterial 替换 Collada 导入的纹理?