OpenGL ES 纹理的图像大小

发布于 2024-11-03 07:42:30 字数 190 浏览 0 评论 0原文

我还不太了解 OpenGL ES。我只学会了画三角形等等。我还没有了解纹理。

我听说在某些设备中,宽度或高度为 2 的幂的图像是必要的,例如:2、4、8、16、32 等。这是为什么呢?如果我的图像尺寸为 53 x 76,我该怎么办?

我需要知道这一点,因为这就是我无法从 canvas 切换到 OpenGL ES 的原因。 谢谢 :)

I don't really understand about OpenGL ES yet. I've only learn about drawing triangles and so . I've yet to learn about texture.

I heard that in some devices an image with width or height to be the power of 2, ex : 2, 4, 8, 16, 32 etc is necessary. why is it? and what should I do if I have image that the size is lets say 53 x 76?

I need to know this, because this is what kept me from switching from canvas to OpenGL ES.
thank you :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

念﹏祤嫣 2024-11-10 07:42:30

具有 2 次幂的纹理极大地简化了纹理硬件,并为许多优化腾出了空间,以使其更快。如果你有一个非 2 次方纹理,你有两个选择:

1)用你想要的任何东西填充“额外”空间(我会选择像亮绿色这样的颜色,这样如果你看到这种颜色 -屏幕上,你知道你对 texcoords 做了一些错误),在你的例子中它将是 64x128,并调整你的纹理坐标来补偿。即您的 texcoords 现在将从 (0, 0) 变为 (53.0/64.0, 76.0/128.0)。

2) 将纹理拉伸到最接近的 2 次方,在示例中再次拉伸为 64x128,然后按原样使用现有的纹理坐标。

A texture having a power-of-2 greatly simplifies the texturing hardware and makes room for many optimizations to make it faster. If you have a non-power-of-2 texture, you have two options:

1) Fill out the "extra" space with whatever you want (I would pick a color like bright-green so that if you see that color on-screen, you know you've done something wrong with the texcoords), in your example it would be 64x128, and adjust your texture coordinates to compensate. I.e. your texcoords would now go from (0, 0) to (53.0/64.0, 76.0/128.0).

2) Stretch your texture to the nearest power-of-2, again 64x128 in your example, and just use your existing texcoords as-is.

不打扰别人 2024-11-10 07:42:30

一般来说,它更简单,并且图形芯片需要更少的逻辑/芯片空间来处理宽度和高度为二的幂的图像。如果您开始使用 mip-map,这一点就变得更加重要。

一些 OpenGL|ES 图形芯片支持非二次纹理,但这会带来一定的代价:不支持 Mip-Map,如果开始旋转图像,性能可能会受到巨大影响。

In general it is simpler and needs less logic/chip real-estate for a graphic chip to address images that are a power of two in width and height. This becomes even more important if you start to use mip-maps.

Some OpenGL|ES graphic chip support non power of two textures, but this comes with a cost: Mip-Maps aren't supported and you may get a huge performance hit if you start to rotate the image.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文