作为创作媒介的后处理着色器 - 马克西姆·赫克尔的博客

2024 年大部分时间通过后处理镜头学习新的着色器技术和概念,激发了更复杂、详细和有野心的创意工作。不仅了解了特定风格的内部运作,还加强了多年来建立的着色器思维模型,能够尝试新风格。过去几个月经历了“创意狂欢”,受 Bluesky 和 Twitter 上许多创意开发者等影响,将他们的艺术风格转录为着色器,提升了技能并尝试独特组合。

收集了新的着色技巧并分享,原因是想写这篇文章,展示导致美丽后处理效果的灵感来源、重新实现的思路和完整配方。已探讨过像素化,这次要展示更多基于像素化技术的效果,如塑造像素、复杂像素图案等。

  • 像素化场景:重新审视用于像素化工作的代码,包括定义像素大小、归一化、创建网格等步骤,通过示例详细解释。
  • 塑造像素:以日本收据网站的效果为例,解释如何利用像素化公式和像素亮度(luma)来构建独特图案,如收据效果、点状半色调图案、Three.js 的 ASCII 效果等,重点介绍了“fract”函数的作用。
  • 复杂像素图案:以 John Provencher 的艺术作品为例,介绍使用有符号距离函数(SDF)和自定义阈值矩阵来创建各种像素图案,如圆圈、条纹、编织等,展示了不同技术的应用和效果。
  • 其他效果

    • Stagged LED 细胞面板:通过偏移 UV 坐标来创建交错的 LED 细胞矩阵,可进一步细分细胞并添加边框,以模拟更逼真的效果。
    • Woven Crochet 效果:使用类似技术创建有机的针织织物错觉,通过偏移 cellUV 坐标和应用椭圆图案来实现,还添加了噪声、条纹和色调 shift 等细节。
    • Lego 砖块:利用经典像素化逻辑和 Blinn-Phong 光照模型创建 Lego 砖块效果,包括中心的光照错觉、颜色量化、边框和色调 shift 等。
    • Fluted & frosted glass:通过 UV 扭曲和 Blinn-Phong 光照模型创建类似 fluted 玻璃的效果,将数学概念转化为代码,添加噪声以增加逼真度。
    • Progressive Depixelation:通过使pixelSize依赖于timeprogress实现渐进式去像素化效果,详细定义了相关变量和计算过程。
    • Pixelating Mouse Trail:借鉴他人工作,将MouseTrail组件的输出放入帧缓冲区对象(FBO),根据鼠标的速度和方向实现可变像素化效果,通过采样鼠标轨迹纹理来偏移 UV 坐标。

总结了每个效果的关键要点,强调了它们共享的技巧和技术,以及通过尝试和组合所学知识来创造更多创意效果的重要性。同时提到后续目标是使着色器更具可组合性,将这些效果转换为 WebGPU 等。

阅读 36
0 条评论