Bubbles Shader in Houdini泡泡泡泡泡泡泡泡泡泡
in Shader 泡泡
2023-09-14 09:08:03 时间
在尝试做一个泡泡的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执行。
所以,看看你能不能用这个方法是一个啤酒泡沫。
版权声明:本文博主原创文章。博客,未经同意不得转载。
相关文章
- Briefings in Bioinformatics | 国际上最大的基于中药活性成分的药物转录图谱平台ITCM
- ORA-01511: error in renaming log/data files ORACLE 报错 故障修复 远程处理
- ORA-39117: Type needed to create table is not included in this operation. Failing sql is: string ORACLE 报错 故障修复 远程处理
- ORA-01719: outer join operator (+) not allowed in operand of OR or IN ORACLE 报错 故障修复 远程处理
- ORA-13373: invalid line segment in geodetic data ORACLE 报错 故障修复 远程处理
- MySQL OR和IN:比较和选择(mysqlor和in)
- 的区别MySQL中ON与IN的区别探讨(mysql中on与in)
- MySQL中的IN运算符技巧(mysql查in)
- 和existsMySQL首选:少用IN和EXISTS方法(mysql少用in)
- 探索Oracle中IN关联查询的精彩世界(oracle关联查询in)
- MySQL的IN操作符对于查询中给定的值列表长度是有限制的(mysql中in长度限制)
- MySQL中的IN查询的性能优化(mysql中in性能)
- Oracle中IN运算符的强大用法(oracle中in的使用)
- 深究Oracle中的IN子查询(oracle中in子查询)
- 的影响Oracle中IN操作对索引效率的影响研究(oracle中in对索引)
- Oracle中两个IN叠加的查询技巧(oracle两个in叠加)
- Oracle IN一种SQL语句查询的高效方式(oracle in的定义)
- 使用Oracle IN多表进行联接查询(oracle in多表)