zoukankan      html  css  js  c++  java
  • Bubbles Shader in Houdini泡泡泡泡泡泡泡泡泡泡

    在尝试做一个泡泡的shader,如今已经初步做好alpha。下一步做shading,泡泡的形态所有以一种procedure的方式实现,给一个粒子或者点云,就能够渲染出一堆泡泡,泡泡的半径用pscale指定。

    这样粒子用flip什么的动起来的时候,就能看到一堆泡泡在流动了。

    眼下的实现是纯节点连出来的,不得不说节点尽管连的快可是实在蛋疼…… 略微复杂点的不但要注意怎么连,还特娘的要注意在2D空间怎么摆放,而代码堆放的复杂度基本是1D的,一块一块顺着写即可了。



    原理还算简单,把泡泡的膜分为两部分,一种是泡泡和泡泡之间的隔膜,是平面,一种是泡泡和外界之间的薄膜,是球形的。

    平面的中间隔膜。能够依据ray的当前sample P和下一step之后的P推断两个位置近期的点(点云或者粒子)是不是同一个,假设是同一个就处在同一个泡泡的空间中。就没有隔膜。假设是两个不同的点,就说明这step之间穿过了这两个点之间的隔膜,通过求两点之间的中间平分的平面得到隔膜的shading。

    法线也好求,Normalize(近点-远点)。

    和外界之间的薄膜。能够对ray当前和sample P和下一step之后的P和近期的点<这个点的pscale做个xor,结果为true则穿过了薄膜。位置就近似在pscale*normalize(p-p0)+p0,法线normalize(p-p0)。

    眼下用fresnel做的alpha。shading能够用各种specular model执行。

    所以,看看你能不能用这个方法是一个啤酒泡沫。

    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    实现168732363.66元用逗号格式为168,732,363.66元
    程序员的十步学习法
    js中字符串方法大全
    js中数组方法大全
    异常,常用工具
    抽象类,常用类
    this 关键字
    面向对象
    DOS.JDK
    Android
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4875637.html
Copyright © 2011-2022 走看看