使用 Rick 和 Morty 学习着色器编程

这是一篇关于使用 GPU 着色器和有符号距离场制作动画的文章,包含以下主要内容:

  • 制作基础动画:用 240 行代码制作 Rick 动画,代码用 OpenGL Shading Language(GLSL)编写,color_for_pixel函数为每个像素计算颜色,通过各种形状函数(如圆、贝塞尔曲线、星形等)组合绘制 Rick 的各个部分,包括头部、耳朵、眼睛、嘴巴、鼻子、眉毛和头发等,并添加了轮廓和细节,如使用有符号距离场(SDF)函数来实现轮廓效果。
  • 提升动画效果

    • 使头发波浪状:使用域扭曲(domain warping)技术让头发更具动感,通过随机偏移像素位置来创建波浪效果,类似于《指环王》中的视觉效果,并可以通过动画来实现。
    • 绘制无限牙齿:用抛物线作为牙齿形状,通过mod()函数重复牙齿形状,创建出类似沙虫嘴的效果,还可以通过调整牙齿的位置和形状来制作微笑的
阅读 13
0 条评论