phaser/webgl: 绑定到纹理单元 0 的纹理不可渲染

phaser/webgl: texture bound to texture unit 0 is not renderable

我正在尝试在 Phaser (2.0.5) 中渲染相当大的 spritesheet,其方式与正常工作的较小的 spritesheet 相同。

我是这样加载的:

game.load.spritesheet('upperArm', '../assets/BodyParts/upperleftarm.png',444,393);

并尝试渲染它:

this.upperArm = game.add.sprite(230,150, 'upperArm');

我只是用黑色方块代替了图片。 spritesheet 本身是 27528px X 393px,我试图将大小增加到 ^2 个数字维度 (32768x512),但我遇到了同样的问题。

工作精灵没有 ^2 维,但工作正常。

当我将渲染器更改为 canvas 时它工作正常(但不稳定)所以问题似乎出在 webgl

有什么想法吗?

你的显卡可能不支持这么大的纹理。

您可以使用 ctx.getParameter(MAX_TEXTURE_SIZE) 查询支持的最大纹理大小,或使用 a look here. Assuming a maximum supported texture size of 4096 is a safe bet(99%), while a lot(81%) of GPUs support 8192. Take a look at webglstats.com 获取更多信息。