10 如果在电视上显示的范围约为每通道24位RGB图像,每个通道的范围为0-255。每通道16-235,色彩细节会丢失,对吗? 如果是这样,是否应该对图像进行预处理以仅存储有效范围?我想用代码而不是在图片编辑应用程序中做到这一点。我隐约记得读过一篇文章,线性映射并不是做到这一点的最佳方法,但是不幸的是我找不到我正在阅读的文章!这个过程叫什么?我还需要知道什么其他细节? textures c console image — xx source
8 无论您使用哪种纹理格式,某些颜色数据都会丢失或更改。但是,更大的问题将是伽马校正。伽玛校正可能是一个棘手的问题,因为您的游戏在所有显示技术上的视觉效果都不相同,并且找到一个解决方案也不容易。 这些可能会帮助您: https://maddieman.wordpress.com/2009/06/23/gamma-correction-and-linear-colour-space-simplified/ https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch24.html http://blog.wolfire.com/2010/02/Gamma-correct-lighting https://renderwonk.com/blog/index.php/archive/adventures-with-gamma-correct-rendering/ https://poynton.ca/notes/colour_and_gamma/GammaFAQ.html — Zfedoran source 感谢您的链接。我已经在使用libpng进行加载时进行了伽马校正,这很有帮助,但是由于图像仍然在电视上被“冲洗掉”,因此在阅读上述信息后可能不得不再次查看代码。 — XX
5 线性映射可能不是最佳解决方案(我认为这涉及将RGB转换为CIE色彩空间,在此处缩放并转换回),但是它非常易于实现,并且范围差异足够小,可能无关紧要。 如果使用SOIL,则可以通过将SOIL_FLAG_NTSC_SAFE_RGB传递给加载函数来自动执行此操作。 微软的文档说要钳制,建议在像素着色器中进行。(线性缩放也应该很容易实现。)它还提到了色度爬行,以我的经验,在电视显示器上工作时,这是一种更加令人讨厌的现象。 泥!我忘了那个图书馆。过去,它对我的一些想法有所帮助。感谢您的链接。 — xx