watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3Vja29u/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

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

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

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3Vja29u/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

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

平面的中间隔膜。能够依据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执行。

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

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

Bubbles Shader in Houdini泡泡泡泡泡泡泡泡泡泡的更多相关文章

  1. 吐泡泡_via牛客网

    题目 链接:https://ac.nowcoder.com/acm/contest/28537/E 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言 ...

  2. Python数据结构应用5——排序(Sorting)

    在具体算法之前,首先来看一下排序算法衡量的标准: 比较:比较两个数的大小的次数所花费的时间. 交换:当发现某个数不在适当的位置时,将其交换到合适位置花费的时间. 冒泡排序(Bubble Sort) 这 ...

  3. 2017.12.10《“剑锋OI”普及组多校联盟系列赛(14)#Sooke#Kornal 的课余时间 》分析报告

    报告内容如下 - - [导语] ------ 太晚了,时间也紧,一切尽量从简吧 PS:本文题目来自剑锋OI 所以废话也不多说,进入正题吧,代码直接跟在题目后边儿,主要分析在代码前,次要的就写在代码后面 ...

  4. 一些noip模拟题一句话题解

    Problem A: 序列 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 12  Solved: 9[Submit][Status][Web Boar ...

  5. iOS开发者福利之精品源码汇总!免费下载

    汇总一些看着不错的源码,有需要的朋友过来下载吧!{:4_102:} 1.用swift制作的色彩炫丽的进度条-KDCircularProgressKDCircularProgress是使用swift制作 ...

  6. iOS第三方地图-百度地图常用功能使用(POI搜索,地理正反编码,定位,添加标注)

    百度地图官网: http://developer.baidu.com/map/index.php?title=iossdk 百度地图集成 1.引入相关包

  7. iOS地图集成示例:百度地图POI检索

    一.集成百度地图(傻瓜教程,以网站说明文档为准,此处罗列几项主要步骤) 1.登录  http://lbsyun.baidu.com  百度地图开发者平台,获取SDK和集成文档. 2.百度地图可以提供的 ...

  8. Python3 列表的基本操作

    列表索引和切片 和字符串一样,也有索引和切片,只不过切出来的内容是列表. 索引的下标从0开始. lst= ["海上钢琴师", "奥特曼", "舌尖3& ...

  9. Laya的动画制作,整图动画,序列图动画,时间轴动画,龙骨动画

    参考: Laya动画基础 Egret帧动画工具类 版本:2.1.1.1 序列图动画 白鹭的序列图动画,使用TexureMerger合图,然后使用MovieClip类播放. Laya的话,使用图集打包工 ...

随机推荐

  1. abstract修饰方法总结

    abstract这种方法修饰,主要用在抽象类和抽象方法. 抽象的类是不可实例化的比如 public abstract class Test{ } 他能够含有抽象的方法 public abstract ...

  2. Galaxy (hdu 5073 数学)

    Galaxy Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total S ...

  3. Custom Media Player in WPF (Part 1)

    First of all I would like to welcome everyone to my new blog and wish you all a happy new year… Thro ...

  4. 0当执行游戏xc000007b错误的解决方法

    如图所示,这个错误是让很多玩家担心. 出现这个错误,可能是硬件的问题,也可能是软件的问题. 可是.因为硬件引起该问题的概率非常小,而且除了更换硬件之外没有更好的解决方法,因此本文将具体介绍怎样通过软件 ...

  5. ASP.NET 应用程序生命周期

    1.请求到达IIS服务器,IIS根据文件后缀找到对应的ISAPI(Internet Server API)扩展来处理,这个配置可在网站属性里的“根目录”选项卡中的“配置”里看到.可以看到,ashx.a ...

  6. 深挖BAT内部级别和薪资待遇,你敢看?(转)

    一. 阿里内部级别和薪资待遇 先看个例子,或许你也曾像他一样纠结 BAT 的 offer: 最近刚通过阿里面试,但基本薪酬也是不升反小降. 级别只有 P6+,连 P7 都没有,非常郁闷,打算拒绝算了. ...

  7. Android该系统提供的服务--Vibrator(振子)

    Android该系统提供的服务--Vibrator(振子) --转载请注明出处:coder-pig Vibrator简单介绍与相关方法: watermark/2/text/aHR0cDovL2Jsb2 ...

  8. 选择排序java

    先简述选择排序,然后上代码 进行选择排序就是将所有的元素扫描一遍,从中挑选(或者说是选择,这正是这个排序名字的由来)最小的一个元素,将这个最小的元素与最左边的元素交换位置 ,现在最左边的元素就是有序的 ...

  9. 局部敏感哈希(Locality-Sensitive Hashing, LSH)方法介绍

    局部敏感哈希(Locality-Sensitive Hashing, LSH)方法介绍 本文主要介绍一种用于海量高维数据的近似近期邻高速查找技术--局部敏感哈希(Locality-Sensitive ...

  10. dm8148 jpeg编解码器测试

    测试过程: 1)于A8将jpeg传送到videoM3解码,然后,videoM3编码.在编译jpeg图像传输到A8,主要是测试jpeg编码的图像需要多少时间: 1000w像素:  编码时间:43ms. ...