我正在尝试使用这样的自定义着色器材料:
// UNIFORMS
this.uniforms = {
"baseTexture": { type: "t", value: SSD.TEXTURES[texture] }
};
this.material = new THREE.ShaderMaterial( {
uniforms: this.uniforms,
vertexShader: document.getElementById( shader+'Vertex' ).textContent,
fragmentShader: document.getElementById( shader+'Fragment' ).textContent,
transparent: true
});
这在我的台式电脑上工作正常,但我的Nexus 7平板电脑没有显示这些纹理。我见过很多关于ShadersMaterials的三个.js演示实际上是在Nexus上工作的,所以我没看到,这里的问题是什么。
Android上Chrome的远程调试说“不支持S3TC压缩纹理”。
答案 0 :(得分:0)
我最常见的原因是纹理的大小不是2的幂(例如256x256或512x512)。大多数台式机GPU似乎都处理得很好,但平板电脑GPU通常不会。所以首先检查你的纹理大小。
即使您不使用压缩纹理,也会始终显示有关压缩纹理的注释。