是否应调整纹理的颜色以在电视上显示?


10

如果在电视上显示的范围约为每通道24位RGB图像,每个通道的范围为0-255。每通道16-235,色彩细节会丢失,对吗?

如果是这样,是否应该对图像进行预处理以仅存储有效范围?我想用代码而不是在图片编辑应用程序中做到这一点。我隐约记得读过一篇文章,线性映射并不是做到这一点的最佳方法,但是不幸的是我找不到我正在阅读的文章!这个过程叫什么?我还需要知道什么其他细节?

Answers:


8

无论您使用哪种纹理格式,某些颜色数据都会丢失或更改。但是,更大的问题将是伽马校正。伽玛校正可能是一个棘手的问题,因为您的游戏在所有显示技术上的视觉效果都不相同,并且找到一个解决方案也不容易。

这些可能会帮助您:


感谢您的链接。我已经在使用libpng进行加载时进行了伽马校正,这很有帮助,但是由于图像仍然在电视上被“冲洗掉”,因此在阅读上述信息后可能不得不再次查看代码。
XX

5

线性映射可能不是最佳解决方案(我认为这涉及将RGB转换为CIE色彩空间,在此处缩放并转换回),但是它非常易于实现,并且范围差异足够小,可能无关紧要。

如果使用SOIL,则可以通过将SOIL_FLAG_NTSC_SAFE_RGB传递给加载函数来自动执行此操作。

微软的文档说要钳制,建议在像素着色器中进行。(线性缩放也应该很容易实现。)它还提到了色度爬行,以我的经验,在电视显示器上工作时,这是一种更加令人讨厌的现象。


泥!我忘了那个图书馆。过去,它对我的​​一些想法有所帮助。感谢您的链接。
xx
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.