我试图在两种颜色之间建立一个简单的转换。所以一个四色的渲染,上面的边缘颜色是#2c2b35,底部的颜色是#1a191f。当我通过简单的象素着色器,它只是将颜色应用到顶点并插值它时,我得到了彩色显带的效果,我想知道如果没有先进的像素着色抖动技术,是否有一个消除这种效果的选项。
我附加了渲染的一幅画,其中左边的部分在我的应用程序中呈现,右边的部分在Photoshop中呈现,“抖动”选项被选中。
提前谢谢。
发布于 2017-05-03 17:10:27
分带是每个渲染引擎都必须在某个时候处理的问题。
在开始执行抖动之前,首先应该确认您正在遵循正确的srgb管道。(https://en.wikipedia.org/wiki/SRGB)
要使SRGB正确: RGBX8中的Swapchain和render曲面必须包含SRGB值。最简单的方法是使用XXXX_UNORM_SRGB格式创建一个呈现目标视图。纹理必须在适当的时候使用UNORM_SRGB格式的视图(反照率图),如果不是合适的(普通地图),阴影计算必须在线性空间中进行。
当使用正确的格式时,纹理和渲染目标将在读和写时为您执行转换,但对于常量,则必须手动进行转换。例如,在#2c2b35 : 0x2c中为srgb 44(0.1725),但线性值为0.025。
要进行渐变,必须在着色器中的线性空间中完成,并让渲染目标在写入时将其转换回srgb。
https://stackoverflow.com/questions/43720816
复制相似问题