更换网站需要备案吗,收录优美的图片,html5 手机网站开发叫才,上海公司网站第十二章 OpenGL ES 基础-色温、色调、亮度、对比度、饱和度、高光 第一章 OpenGL ES 基础-屏幕、纹理、顶点坐标 第二章 OpenGL ES 基础-GLSL语法简单总结 第三章 OpenGL ES 基础-GLSL渲染纹理 第四章 OpenGL ES 基础-位移、缩放、旋转原理 第五章 OpenGL ES 基础-透视投影…第十二章 OpenGL ES 基础-色温、色调、亮度、对比度、饱和度、高光 第一章 OpenGL ES 基础-屏幕、纹理、顶点坐标 第二章 OpenGL ES 基础-GLSL语法简单总结 第三章 OpenGL ES 基础-GLSL渲染纹理 第四章 OpenGL ES 基础-位移、缩放、旋转原理 第五章 OpenGL ES 基础-透视投影矩阵与正交投影矩阵 第六章 OpenGL ES 基础-FBO、VBO理解与运用 第七章 OpenGL ES 基础-输入输出框架思维 第八章 OpenGL ES 基础-MVP矩阵理解 第九章 OpenGL ES 基础-高斯模糊原理 第十章 OpenGL ES 基础-图像USM锐化 第十一章 OpenGL ES 基础-基础光照 第十二章 OpenGL ES 基础-色温、色调、亮度、对比度、饱和度、高光 第十三章 OpenGL ES-RGB、HSV、HSL模型介绍
图片颜色特性和概念 色温图片的色温指的是图片中呈现出来的整体颜色偏暖或偏冷的程度。较高的色温会使图像看起来更加蓝色而较低的色温则倾向于呈现更多的黄色和橙色。色温可以影响图像的氛围和情感表达。简单理解是色彩的温度越低越冷如蓝色约高越暖如红色。 色调色调是指图片色彩的整体质感包括主要色调的选择和组合。通过调整色调可以改变图像的整体色彩效果营造特定的视觉风格或情绪。可以简单理解为色彩倾向倾向于红橙还是黄绿。 亮度亮度描述了图片中各个部分的明暗程度。增加亮度将使整体图像看起来更明亮减小亮度则会使图像变得更暗。亮度的调整可以影响图像的整体视觉效果和光线感。增加就是给图片所有色彩加白色减少加黑色。注意是只加黑白两种颜色不然容易跟纯度弄混。 对比度对比度是描述图像中不同区域之间亮度差异的程度。提高对比度会使图像中的明暗部分更加突出增强图像的清晰度和视觉冲击力。适当的对比度可以让图像更具有立体感和层次感。增加就是让白的更白黑的更黑减少就是白的不那么白黑的不那么黑。 饱和度饱和度表示图片中颜色的纯度和鲜艳程度。增加饱和度会使颜色更加丰富饱满减少饱和度则会使颜色变得更加灰暗。调整饱和度可以改变图像的整体色彩效果和视觉吸引力。就是增加图片各种颜色的纯度。比如蓝色增加纯度就是在蓝色上加蓝色降低纯度就是加入蓝色的对比色让它变灰色或者黑色。 高光高光是指图片中最亮的部分通常是在光线照射下产生的明亮区域。调整高光可以改变图像中亮部的强度和反射效果从而影响图像的细节和光影效果。增加就是给图片白色的部分再加点白色减少就是减少点白色。
色温、色调、亮度、对比度、饱和度、高光对应GLSL函数处理
色温
// 用于调整色温的函数,参数temp色温[-1.0, 1.0]暖色和冷色蓝色之前调整只调整其中一种
vec3 adjustTemperature(vec3 color, float temp) {const vec3 warmFilter vec3(0.93, 0.54, 0.0); // 设置黄色const vec3 coolFilter vec3(0.0, 0.0, 0.3); // 设置蓝色// 根据温度值混合color mix(color, color warmFilter, max(temp, 0.0));color mix(color, color coolFilter, max(-temp, 0.0));return color;
}
色调
Hue旋转来调整色相来调整色调
// 色调函数,hue色调[-1.0, 1.0]
vec3 adjustTint(vec3 color, float hue) {float angle hue * 3.14159265; // 将 -1 到 1 映射到 -PI 到 PIfloat c cos(angle);float s sin(angle);mat3 hueRotateMat mat3(0.299, 0.587, 0.114,0.299, 0.587, 0.114,0.299, 0.587, 0.114) mat3(0.701 * c - 0.587 * s, -0.299 * c - 0.587 * s, -0.3 * c 0.413 * s,0.168 * c 0.330 * s, 0.325 * c - 0.5 * s, -0.322 * c - 0.094 * s,0.0 * c 0.035 * s, -0.5 * c - 0.418 * s, 0.5 * c 0.081 * s);return color * hueRotateMat;
}亮度
// 亮度函数,bright亮度[-1.0, 1.0]
vec3 adjustBrightness(vec3 color, float bright) {return color vec3(bright);
}对比度
// 对比度函数,cont对比度[-1.0, 1.0]
vec3 adjustContrast(vec3 color, float cont) {cont 1.0;return ((color - 0.5) * cont 0.5);
}
adjustContrast函数使用一个简单的公式来调节对比度。让我们来解释一下这个公式 cont 1.0;这里将输入的对比度值增加1这样做可能是为了使cont的范围更适合计算。 return ((color - 0.5) * cont 0.5);在这行代码中首先将颜色值减去0.5这会将颜色值移到[-0.5, 0.5]范围内然后乘以对比度因子cont通常是大于1的值用于增加对比度最后再加上0.5以便将值重新映射回[0, 1]范围内。
饱和度 // 饱和度函数sat饱和度[-1.0, 1.0]
vec3 adjustSaturation(vec3 color, float sat) {float luminance dot(color, vec3(0.2126, 0.7152, 0.0722));vec3 grey vec3(luminance);return mix(grey, color, sat 1.0);
}
这个函数是用来调整颜色的饱和度的。下面是函数的说明 vec3 adjustSaturation(vec3 color, float sat): 这是函数的声明它接受一个vec3类型的颜色向量和一个浮点数sat作为输入参数。 float luminance dot(color, vec3(0.2126, 0.7152, 0.0722));: 首先通过将输入颜色向量与一个包含亮度值的权重向量相乘计算该颜色的亮度。dot 函数是计算两个向量的点积。在这里它用于计算 color 向量与 (0.2126, 0.7152, 0.0722) 向量的点积。具体来说它将 color 中的 R、G、B 分量与给定的权重值对应不同颜色通道的亮度相乘并将这些乘积相加从而得到一个单一的值作为光照强度。 vec3 grey vec3(luminance);: 创建一个灰度向量其三个分量均为之前计算得到的亮度值。 return mix(grey, color, sat 1.0);: 使用mix函数基于饱和度的调整在灰度和原始颜色之间进行混合。sat参数控制饱和度的变化当sat为0时返回完全灰度的颜色当sat为1时返回原始
高光
// 高光函数highlightStrengh高光[0.0, 1.0]
vec3 adjustHighlight(vec3 color, float highlightStrengh) {return min(color vec3(highlightStrengh), vec3(1.0));
}