gpt4 book ai didi

textures - glGenerateMipmap - 非 2 次幂

转载 作者:行者123 更新时间:2023-12-04 03:05:00 27 4
gpt4 key购买 nike

环境 Ubuntu 17.04,Chrome 60。

在没有警告/错误的情况下在本地运行此示例:https://github.com/mdn/webgl-examples/tree/gh-pages/tutorial/sample6

然后替换cubetexture.pngnon-power-of-2图像在这里:
https://github.com/mdn/webgl-examples/blob/gh-pages/tutorial/sample6/webgl-demo.js#L220

得到预期的警告/错误:
[.Offscreen-For-WebGL-0x13d050ba2c00]RENDER WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering.[.Offscreen-For-WebGL-0x13d050ba2c00]GL ERROR :GL_INVALID_OPERATION : glGenerateMipmap: Can not generate mips
接下来添加参数:

gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);

然后在没有警告的情况下运行正常,但仍然出乎意料地出现错误:
[.Offscreen-For-WebGL-0x13d050fb4000]GL ERROR :GL_INVALID_OPERATION : glGenerateMipmap: Can not generate mips
除了错误消息 non-power-of-2图像在立方体上渲染正常。 Firefox 54 中的行为相同。这里有什么提示吗?

最佳答案

您不能为 WebGL1 中的非 2 次幂纹理生成 mipmap。这就是重点,在 WebGL1 时期不支持 mipmapped 非 2 次幂纹理。所以你设置了过滤,所以它只使用级别 0

gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);

这意味着没有理由生成 mips,因为它们永远不会被使用。 See this article .

关于textures - glGenerateMipmap - 非 2 次幂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45430608/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com