全息图、漏光以及如何构建仅 CSS 的着色器 - Robb Owen

主要观点:WebGL 很重要,许多设计奖网站都在利用canvas的力量。CSS 中mix-blend-mode获得广泛支持后,可实现多种常见 shading 技术,无需引入 JS 依赖就能构建高质量效果。
关键信息

  • WebGL 中 shader 是复杂 GLSL 脚本,CSS 中 shader 基本是有额外背景图像层的图像,可通过梯度、掩码等控制层间交互。
  • 介绍了多种 blend mode,如multiplyscreencolor-dodgecolor-burn等及其效果。
  • 通过嵌套div层和应用不同mix-blend-mode实现复杂的合成效果,如模拟日光、极光、光漏、全息等。
    重要细节
  • 示例中通过设置.specularbackground-attachment: fixed实现滚动时渐变固定,模拟视角变化。
  • 用暗图像作为掩码(specular map)控制图像中光的照射区域,如通过mix-blend-mode: multiplymix-blend-mode: color-dodge等实现不同效果。
  • 展示了不同效果的示例及相关 HTML 和 CSS 代码,如极光效果通过重复渐变背景并调整background-size-y实现,光漏效果使用全彩色掩码图像等。同时提到在不同浏览器中使用该技术可能存在性能和渲染问题,如 Safari 中性能下降,Chrome 和 Firefox 在应用 CSS 变换时可能出现梯度偏移等情况。最后列出了文章中使用的图像来源。
阅读 8
0 条评论