如何在OpenGL中模拟有限的(256)调色板?


16

在Twitter上,我找到了正在开发的游戏的以下屏幕截图:

在此处输入图片说明

顶部的图像似乎没有任何颜色限制。但底部的其他两张图片则具有256色调色板。

我想达到类似的效果我的比赛(我使用OpenGL)。我该怎么办?



您是否要绘制256色图形等老式图形,还是要使24bit图形看起来像老式图形?换句话说,您要发布流程还是实际使用256色调色板?这是在WebGL中做调色板256色图形的方法
gman

Answers:


32

我是那个形象的创造者。

右侧的图像使用颜色查找纹理进行渲染。在最终的GLSL着色器中,我应用了抖动,然后将RGB值转换为0 <= x <40范围内的整数,将它们组合为单个索引,然后在此图像中查找结果颜色值:

颜色查询表

最下一行是原始调色板。

左侧图像完全是在着色器中生成的,方法是在应用抖动后将红色和绿色通道降采样为8个值,将蓝色通道降采样为4个值,从而得到RGB332。我还用7种红色,9种绿色和4种蓝色调进行了测试,仅产生252种颜色,但重点是绿色,而人眼对绿色最为敏感。


6

您可以在此处以及可能在此处描述的后处理步骤中使用颜色分级查找表。

在此处输入图片说明

完成此操作后,您要做的就是制作一个屏幕截图,在其上覆盖查找纹理,然后在任意图形软件中对其进行编辑直到您喜欢为止-然后再次检索修改后的查找纹理。这可以包括也可以不包括将检索到的查找表缩小为颜色的子集。

在加载具有颜色限制的查找纹理时,只需确保禁用所有过滤,这样就不会产生其他颜色。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.