Lut2Photo胶片颗粒参数详解

偷光你的小鱼干

胶片颗粒参数详解

概述

Lut2Photo(V3.1.0+)内置了一套强大的胶片颗粒模拟系统,旨在模拟真实胶片在不同影调区域的颗粒特性,通过高斯噪声生成和亮度调制实现。系统支持CPU和GPU双重处理引擎,提供16个可调参数。

核心算法

噪声生成公式

Box-Muller变换(高斯噪声)

1
2
u1 = random(0, 1), u2 = random(0, 1)
noise = √(-2 × ln(u1)) × cos(2π × u2)

最终颗粒强度计算

1
实际强度 = 全局强度 × 影调强度比例 × 颗粒大小 × 影调尺寸比例 × 强度系数(25)

影调分区算法

使用平滑插值函数避免硬边界:

1
2
smoothstep(t) = t² × (3 - 2t)
过渡区域宽度 = 0.04 (约10个亮度值)

参数详解

基础参数

1. 启用开关 (isEnabled)

  • 类型: Boolean
  • 默认值: false
  • 说明: 控制胶片颗粒效果的总开关

2. 全局强度 (globalStrength)

  • 范围: 0.0 - 1.0
  • 默认值: 0.5
  • 单位: 无量纲
  • 说明: 控制整体颗粒效果的强度,作为所有影调区域的基础乘数

3. 颗粒大小 (grainSize)

  • 范围: 0.5 - 6.0
  • 默认值: 1.0
  • 单位: 相对尺寸
  • 说明: 控制颗粒的基础大小,影响颗粒的视觉密度

高级参数

影调范围参数

4. 阴影阈值 (shadowThreshold)

  • 范围: 0 - 255
  • 默认值: 85
  • 单位: 亮度值
  • 说明: 阴影与中间调的分界点,低于此值的像素被视为阴影

5. 高光阈值 (highlightThreshold)

  • 范围: 0 - 255
  • 默认值: 170
  • 单位: 亮度值
  • 说明: 中间调与高光的分界点,高于此值的像素被视为高光

影调强度比例

6. 阴影颗粒强度 (shadowGrainRatio)

  • 范围: 0.2 - 1.0
  • 默认值: 0.6
  • 单位: 相对比例(以中间调为基准1.0)
  • 说明: 阴影区域的颗粒强度倍数

7. 中间调颗粒强度 (midtoneGrainRatio)

  • 固定值: 1.0
  • 单位: 相对比例(基准)
  • 说明: 中间调区域的颗粒强度基准值

8. 高光颗粒强度 (highlightGrainRatio)

  • 范围: 0.1 - 0.8
  • 默认值: 0.3
  • 单位: 相对比例(以中间调为基准1.0)
  • 说明: 高光区域的颗粒强度倍数

影调尺寸比例

9. 阴影颗粒尺寸 (shadowSizeRatio)

  • 范围: 1.0 - 2.0
  • 默认值: 1.5
  • 单位: 相对比例(以中间调为基准1.0)
  • 说明: 阴影区域的颗粒尺寸倍数

10. 中间调颗粒尺寸 (midtoneSizeRatio)

  • 固定值: 1.0
  • 单位: 相对比例(基准)
  • 说明: 中间调区域的颗粒尺寸基准值

11. 高光颗粒尺寸 (highlightSizeRatio)

  • 范围: 0.3 - 1.0
  • 默认值: 0.6
  • 单位: 相对比例(以中间调为基准1.0)
  • 说明: 高光区域的颗粒尺寸倍数

色彩通道参数

12. 红色通道系数 (redChannelRatio)

  • 范围: 0.5 - 1.5
  • 默认值: 0.9
  • 单位: 相对比例(以绿色通道为基准1.0)
  • 说明: 红色通道的颗粒强度倍数

13. 绿色通道系数 (greenChannelRatio)

  • 固定值: 1.0
  • 单位: 相对比例(基准)
  • 说明: 绿色通道的颗粒强度基准值

14. 蓝色通道系数 (blueChannelRatio)

  • 范围: 0.5 - 1.5
  • 默认值: 1.2
  • 单位: 相对比例(以绿色通道为基准1.0)
  • 说明: 蓝色通道的颗粒强度倍数

15. 通道相关性 (channelCorrelation)

  • 范围: 0.8 - 0.95
  • 默认值: 0.9
  • 单位: 相关系数
  • 说明: 控制RGB三个通道之间的噪声相关程度,值越高颗粒越单色

16. 色彩保护 (colorPreservation)

  • 范围: 0.9 - 1.0
  • 默认值: 0.95
  • 单位: 保护系数
  • 说明: 防止颗粒效果造成严重偏色,值越高色彩越稳定

推荐参数

1. 经典胶片 (classicFilm)

1
2
3
4
全局强度: 0.4
颗粒大小: 1.2
阴影强度: 0.7
高光强度: 0.25

适用场景: 模拟经典35mm胶片的颗粒质感

2. 轻微颗粒 (subtle)

1
2
3
4
全局强度: 0.25
颗粒大小: 0.8
阴影强度: 0.5
高光强度: 0.2

适用场景: 为数字照片添加轻微的胶片质感

3. 强烈颗粒 (heavy)

1
2
3
4
全局强度: 0.7
颗粒大小: 1.8
阴影强度: 0.8
高光强度: 0.4

适用场景: 创造明显的复古胶片效果

技术实现

CPU处理器 (FilmGrainProcessor)

  • 算法: Box-Muller变换生成高斯噪声
  • 分块策略: 超过1600万像素自动分块处理
  • 内存管理: 与CpuLutProcessor一致的分块阈值
  • 性能: 适合小图片和CPU密集型处理

GPU处理器 (GpuLutProcessor)

  • 算法: GLSL着色器实现并行计算
  • 集成方式: 与LUT处理在同一着色器中完成
  • 性能优势: 大图片处理速度显著提升
  • 内存效率: 避免CPU-GPU数据传输开销

预览图自动缩放应用算法

1
2
缩放比例 = √(预览像素数 / 原图像素数)
缩放后颗粒大小 = 原颗粒大小 × 缩放比例

目的: 确保预览效果与最终输出的视觉一致性

使用建议

参数调节顺序

  1. 全局强度: 先设定整体效果强度
  2. 颗粒大小: 调节颗粒的视觉密度
  3. 影调阈值: 根据图片特点调整分区
  4. 影调强度: 微调各区域的颗粒强度
  5. 色彩参数: 最后调节色彩相关参数

注意事项

  1. 内存限制: 超大图片会自动分块处理,可能影响颗粒的连续性
  2. 处理顺序: 颗粒效果在LUT处理之后、边框水印之前应用
  3. 色彩空间: 基于RGB色彩空间计算,适用于sRGB图片
  4. 兼容性: GPU处理需要OpenGL ES 3.0支持
  5. 预览精度: 预览图会根据分辨率自动缩放颗粒参数

其他技术参考

  • Box-Muller变换: 用于生成高质量高斯分布随机数
  • 平滑插值: 避免影调分区间的硬边界
  • 通道相关性: 模拟真实胶片的色彩特性
  • 亮度计算: 使用标准RGB到亮度转换系数 (0.299, 0.587, 0.114)
  • 标题: Lut2Photo胶片颗粒参数详解
  • 作者: 偷光你的小鱼干
  • 创建于 : 2025-12-12 13:03:53
  • 更新于 : 2025-12-12 13:57:39
  • 链接: https://alittlecookie.cn/2025/12/12/Lut2Photo胶片颗粒参数详解/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论