我能用RGB调色板和8位alpha通道在OpenGL中得到苍白的纹理吗?(我正在获取iPhone OpenGL ES实现。)在查看OpenGL文档之后,在我看来,对调色板中带有alpha的调色板纹理的支持。纹理包含8位索引,包含256 RGBA颜色的调色板.我想要一个纹理,包含8位索引到一个RGB调色板和一个独立的8位alpha通道。(我试图节省内存,32位RGBA纹理是相当奢侈的。)或者这是用手做的.通过创建两个独立的纹理,一个用于颜色,一个用于alpha映射,并手动组合它们?
发布于 2009-01-11 23:02:19
免责声明:这个信息是基于官方的OpenGL规范。我不知道OpenGL在iphone上的实现是否支持压缩纹理。在理论上,它至少应该模拟压缩纹理,但你永远不会。
您可以通过glCompressedTexImage2D调用加载8位/像素纹理。您最想使用的压缩类型是GL_PALETTE8_RGBA8_OES。
与调色板一起存储额外的alpha通道是不可能的。要么为alpha分量使用第二个纹理单元,要么在色彩量化期间考虑到alpha,并使用包含alpha的调色板格式。
有一个命令行颜色量化工具,称为明亮在网上某处。它在用alpha量化图像方面做得非常出色。你可能想试一试。
发布于 2009-01-12 06:50:18
不是的。一般来说,图形芯片真的不喜欢托盘化的纹理(为什么?因为从其中读取任何texel都需要两个内存读取,一个是索引,另一个是调色板。是正常读取时间的两倍)。
如果您只是在节省内存,然后查看压缩纹理格式。特别是在iPhone中,它支持2位/像素和4位/像素的PVRTC压缩格式。压缩是有损的(就像调色板压缩通常是有损的),但是内存和带宽节省了很多。
发布于 2009-09-21 22:55:42
调色板纹理将在加载时为iPhone中的GPU进行扩展,因此除了存储大小之外,您将不会获得任何优势。对于卡通风格的游戏,最好的选择是探索使用PVRTC压缩纹理(如NeARAZ说)和16位纹理(RGBA4444表示alpha,RGBA5551表示穿孔,RGB565表示不透明纹理)。两者兼而有之是我自己的方法。
https://stackoverflow.com/questions/433440
复制相似问题