颜色过滤器参考

A 滤色器 是用于ImageLayer的内联glsl处理器。OSGearth地形引擎在GPU上渲染图像时,通过其图层的颜色过滤器运行每个图像块。您可以将颜色过滤器链接在一起以形成图像处理管道。

Osgearth附带了几个库存过滤器;您可以通过实现 osgEarth::ColorFilter 接口。

以下是如何在地球文件中使用颜色过滤器:

<image driver="gdal" name="world">
    <color_filters>
        <chroma_key r="1" g="1" b="1" distance=".1"/>
    </color_filters>
</image>

原色过滤器:

BrightnessContrast

此过滤器调整图像的亮度和对比度:

<brightness_contrast b="0.7" c="1.2"/>

这个 bc 属性是 百分比 输入值的。例如, c="1.2" 意味着对比度增加20%。

ChromaKey

此过滤器匹配颜色值以使片段透明,提供一种“绿色屏幕”效果:

<chroma_key r="1.0" g="0.0" b="0.0" distance="0.1"/>

在这个例子中,我们找到所有的红色像素,并将它们变为透明的。这个 distance 属性搜索接近指定颜色的颜色。仅对完全匹配设置为零。

CMYK

此过滤器偏移CMYK(青色、洋红、黄色、黑色)颜色级别:

<cmyk y="-0.1"/>

这里我们将碎片的“黄色”降低0.1。有效范围是 [-1..1] 对于每个 cmyk .

伽马

此过滤器执行伽玛校正。您可以指定 伽马 每个的值 rgb 或者您可以一起调整它们:

<gamma rgb="1.3"/>

GLSL

glsl过滤器允许您嵌入自定义glsl代码,这样您就可以以任何方式调整颜色值。只需编写对rgba颜色变量进行操作的glsl代码块 inout vec4 color ::

<glsl>
    color.rgb *= pow(color.rgb, 1.0/vec3(1.3));
</glsl>

这个例子与 Gamma 过滤,但直接使用glsl代码。

HSL

此过滤器偏移HSL(色调、饱和度、亮度)级别:

<hsl s="0.1" l="0.1"/>

这个例子增加了一点颜色饱和度,并使片段变得更加明亮。有效范围是 [-1..1] 对于每个 hsl .

RGB

此过滤器偏移RGB(红、绿、蓝)颜色级别:

<rgb r="0.1" b="-0.5"/>

这个例子增加了一点红色,减少了蓝色通道。有效范围是 [-1..1] 对于每个 rgb .