使用Houdini制作微观医学三维动画的探索

Houdini不仅用于影视行业,还几乎适合制作各种类型的特效(比如Motion Graphic)。本demo是一次在医学三维动画方面的尝试,三维部分是在houdini中制作,合成是在nuke中完成。我的色彩感觉实在不怎么样, 因此合成的效果也不能够令人满意,这还需要加强。视频的故事版来自于hybrid等公司。

 

Houdini不仅用于影视行业,还几乎适合制作各种类型的特效(比如Motion Graphic)。本demo是一次在医学三维动画方面的尝试,三维部分是在houdini中制作,合成是在nuke中完成。我的色彩感觉实在不怎么样,因此合成的效果也不能够令人满意,这还需要加强。视频的故事版来自于hybrid等公司。


下面简述一些细节。视频分为六段:


  1. 血细胞在血管中流动

    • 粒子在血管中的运动:我使用了自制的风场otl来影响粒子的速度,在这里没有采用力场(force),因为力场的效果更像是在真空中而非是介质中。在血管中布满了速度采样点,点上面有wind属性,该属性将被传递入POP并参与计算,大致算法如下:

      可见,这个风场事实上是一种带有阈值判断的力场,粒子最终的速度始终要和其所在的介质一致,因此也必须要加入阻力。顺便一提,我没有在POP中加入扰动,扰动是在SOP中做好后导入到POP中,这样的一个好处是所有的扰动都是可视的,易于观测,用户在解算之前便能对扰动的强度和方向有一个大体的预计。
       
    • 尽管有三种细胞,但只需要一套粒子系统,这要归功于Houdini中copy的便利,定义class属性,并取随机数R(id) = rand($ID*a+b),class值与随机数的对应关系:
       
  2. 在神经细胞中穿梭

    • 神经细胞的树突用L-system实现,很简单。轴突是沿着曲线进行copy的几何体。
    • 摄像机在遍布着数十个神经细胞的场景中穿梭,每个神经细胞2.5万面,如果全部显示,会为渲染带来巨大压力。因此我使用摄像机的位置来影响神经细胞的Alpha以及是否可见,差不多是一种加强版的camera_cull,原理如图:

      位于取景框(红线)范围外的细胞会被删掉,位于R2外也被删掉,位于R1内的保留且Alpha为1,位于R1和R2间的细胞保留且Alpha为1-(dist-R1)/(R2-R1)。
       
  3. 噬菌体病毒入侵细胞

    • 学习了基本的装配及蒙皮
    • 复制出的噬菌体仍然由风场控制
    • 细胞分解的效果为噪波的衰减,用ramp提取出边界,并由边界作为发射源。被入侵的细胞由metaball构成,这个做溶解动画比较方便,在最后转换成polygon。 
  4. 卵细胞的产生与拾取

    • ……没什么值得一提的,本打算在这里研究柔体破裂的效果,并加入一些体积流体运算,但可惜时间不够,未能实现,非常遗憾。 
  5. 卵细胞的运动

    • 卵细胞向前滚动事实上是一个路径动画,而路径是ray到模型上的,不过在有noise的情况下,血管边缘的ray会出错,需要手动调整一下。
    • 学习了基本的毛发处理
    • 本打算制作经典的卵细胞与精子结合的场面,好多demo里都有这个,然后就是卵细胞的分解,单核变双核,四核变八核的那种,可惜仍然由于时间的缘故未能完成。
    • 毛发没有采用动力学解算,被压倒是用CHOP做的属性残留。为了让毛发有那种经典的迪士尼氏的摆动效果,做了一些尝试,下面的手绘图来自《动画师生存手册》:

      我用两种函数(左)叠加的效果(右):
       
  6. DNA

    • 用于片尾字幕,为了能够循环播放,要求图像首尾完全吻合,需要留意一下置换,别的没什么值得一提的。

 

 

发表评论

邮箱地址不会被公开。