主要观点:长期目标是用 WebGL 实现类似水彩等绘画效果的着色器,受他人启发后,偶然发现 Kuwahara 滤波器,通过多次研究和实践,将其作为自定义后处理效果应用于 React Three Fiber 场景,不断改进以获得更好的绘画效果,包括使用圆形核、高斯权重、多项式权重、多通道处理等技术,还介绍了 Sobel 算子、特征值等用于获取场景结构,最终实现了逼真的绘画效果。
关键信息:
- Kuwahara 滤波器原本用于去除医学图像噪声,现在用于将输入转换为绘画风格。
- 实现 Kuwahara 滤波器的 GLSL 代码及各步骤原理。
- 引入圆形核、高斯权重、多项式权重等改进以优化滤波器效果。
- 通过 Sobel 算子获取场景结构张量,进而推导特征值和特征向量以适应滤波器。
- 多通道处理包括结构张量计算、特征向量获取、滤波器各向异性调整等。
- 最后添加颜色调整和纹理等以增强绘画效果。
重要细节: - Kuwahara 滤波器通过围绕像素中心的盒子划分区域计算平均颜色和方差来确定像素颜色。
- 圆形核能增加区域数量,更好地保留边缘线条。
- 高斯权重能使颜色过渡更自然,减少滤波器产生的伪影。
- 多项式权重可近似高斯权重,提高性能。
- Sobel 算子用于获取场景结构张量,通过计算偏导数得到。
- 特征值和特征向量用于确定局部结构的主导方向,以调整滤波器。
- 多通道处理包括多个步骤,如结构张量计算、特征向量获取、滤波器各向异性调整等,以实现更逼真的绘画效果。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。