gpt4 book ai didi

performance - 现代 WebGL 的二次幂纹理性能优势

转载 作者:行者123 更新时间:2023-12-03 16:53:56 29 4
gpt4 key购买 nike

我们将 PIXI.js 用于内部使用 WebGL 进行渲染的游戏。时不时地,我会偶然发现避免 NPOT 纹理(https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL#Non_power-of-two_textureshttps://github.com/pixijs/pixi.js/blob/master/src/core/textures/BaseTexture.js#L116)的二次幂和可能的性能优势。令人困惑的是,也有人提到它不再有影响(OpenGL - Power Of Two Textures)。随着 webgl 和浏览器的发展如此之快,很难判断这些信息中的哪一个是准确的。

具体来说,我想知道填充图像以创建 POT 纹理的开销(更长的下载时间,增加的内存使用)是否值得性能优势(如果它们确实存在)。我找不到任何比较 POT 与 NPOT 纹理的比较或性能基准,遗憾的是我真的不知道如何自己创建一个。

有没有人有这方面的经验或一些最新的数字?有没有衡量 webgl 性能的好方法?

最佳答案

我认为您将得到的大多数答案是“取决于硬件/驱动程序/gpu”、“您必须自己测试”或“它不会慢得多(但需要注意的是,您必须在所有 gpus 上进行测试才能做出当然)”。

与其担心将图像填充到 POT,不如使用纹理别名( Sprite 表)。或者请求 Pixi 背后的人来实现它。通过使用具有 POT 尺寸的纹理别名,您真正获得了两全其美:最小的填充浪费,保证 POT 纹理将执行 不慢比 NPOT 纹理,减少 GL 状态变化。

我不能强调通过减少 GL 状态更改可以获得多大的改进。通过实现纹理混叠和绘制批处理,我基本上可以在现实环境中绘制尽可能多的 2D Sprite ;也就是说以 60fps 的速度移动、旋转和调整 sprite 的大小约为 150k(受 CPU 约束,以每帧计算每个 sprite 的新变换)

关于performance - 现代 WebGL 的二次幂纹理性能优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37502697/

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