我目前正在编写一个在 sdl 下使用 2D OpenGL 输出的游戏,并且我正在尝试使用 SDL_ttf 加载文本。但是我必须用空白像素填充文本,因为普通的 OpenGL 似乎不支持两个纹理的非幂。我听说有一个名为 OpenGL 的扩展GL_ARB_texture_non_power_of_two
可以启用两个纹理的非幂。截至今天,有多少卡与此扩展不兼容,我如何加载它?
问问题
897 次
2 回答
10
任何 OpenGL 2.0 或更高版本都支持非二次幂纹理。这意味着几乎所有在 2005 年左右之后制作的显卡。这包括 GeForce FX 和 6xxx 及更高版本。它还包括 Radeon 9500 及更高版本(尽管在 Radeon HD 系列之前,Radeon 不允许 NPOT 具有 mipmaps)。
顺便说一句,我希望您不要试图将每个角色放入单独的纹理中。因为从性能的角度来看,那将是可怕的。将您想要使用的所有角色放在一个纹理中,然后挑选出您需要的角色。你甚至不需要 NPOT。
至于 mrazza 关于仅使用 POT 的评论,NPOT 纹理没有什么好怕的(只要您的硬件可以支持它)。这不应该是你的首选,因为它们可能会带来轻微的性能损失,但对于填充或重新缩放不合适的明显情况(渲染目标等),使用它们没有什么好担心的.
于 2011-06-15T08:25:25.030 回答