Houdini zplus SOP 教程观看记录(三)

雷电案例

19:闪电的制作

操作逻辑
+ 通过多个turbulence和resample可以将直线弄成比较弯曲的线

20:闪电分支添加

操作逻辑

  • 通过vop给曲线标记颜色,通过颜色来删除曲线
  • 获取曲线的ptnum以及点的总数
  • 让点的总数减一
  • 将ptnum转成浮点型
  • 将ptnum与点数减一相除
  • 获取的值赋值到颜色上,即可实现颜色从零到一的黑白渐变
  • 加入ramp节点进行调节

21:vopsop参数及效果控制

观看笔记

  • Polyframe节点可以添加切线法线

操作逻辑

  • 通过vop给曲线标记颜色,通过颜色来删除曲线上的点
  • 通过copy节点根据撒的点复制曲线
  • 给复制的曲线添加polyframe节点将tangent的信息写到N法线上

  • 添加point节点将法线的信息反转

22:vopsop参数及效果控制

观看笔记

  • rotate节点可以实现切线(法线)旋转
  • point函数可以获取到具体点序号的属性
  • scatter随意撒点导致撒的点不在曲线的点上,这导致后面合点会出问题
  • sort节点可以修改序号排序,甚至可以修改为随机

操作逻辑

  • 添加point节点加入pscale属性
  • pscale加入随机数实现,实现随机大小

  • 加入Vop point 实现切线方向向左的往左偏移,向右的往右偏移
  • 加入rotate节点乘到法线属性上实现偏移
  • 加入random节点实现随机旋转
  • 加入fit函数调整random输出值的范围
  • 加入外部参数方便外部调节
  • 加入vector to float节点获取N的X轴向
  • 加入two way switch 节点进行判断切换
  • 加入compare节点判断是否大于零
  • 加入multiply constant来乘-1
  • 实现大于零往正转,小于零往负转

  • 主干线加入ratio属性
  • copy节点加入stamp复制ratio
  • 支线加入sub_ratio属性 实现支线从主干线的ratio值到1

  • 加入fuse节点合并顶点
  • 通过表达式根据ratio删除点实现雷电的从零到一的效果
  • 添加polywire添加实现多边形
  • 添加normal节点修正法线

雷电案例总结

  雷电这个案例的逻辑还是挺复杂的,整理出来之后就清晰了很多,难点都在vop point里面。

玻璃裂痕案例

23:玻璃裂纹制作思路

观看笔记

  • 玻璃裂纹需要无序的点进行曲线复制
  • 用曲线去模拟玻璃裂纹的感觉
  • 通过int取整可以实现0.1 0.2 0.3的间隔取值
  • transfer attribute 可以实现将其他地方的属性传送到需要的地方中

操作逻辑

  • 加入add节点添加点
  • 用copy节点复制点
  • 加入vop让点在平面上随机排布

  • 添加point节点,通过pscale加入随机的大小

  • 添加line节点,并加多一些点,为后面传递颜色做准备
      曲线要让中心与原点居中,复制的时候才合理
  • 添加transform节点来旋转直线
  • 通过copy stamp来传递旋转值
  • 用同样的方法制作弧线
  • 弧线的pscale可以取整,看起来更加合理
  • 另外弧线的长度也可以根据pscale的值进行调整

  • 通过color节点分别给弧线和直线添加黑和白的颜色

  • 添加attribute transfer节点将直线的信息传递到弧线上
  • Distantce Threshold 来控制传递的精度

  • 通过attribute promote节点将point的Cd属性转成primitive
      promote的averge合并可以让曲线的颜色混合,没有传递到值的曲线颜色位黑色

  • 删除黑色的弧线
  • 去除颜色属性
  • 通过merge合并

24:玻璃裂纹的蔓延动画及渲染

观看笔记

  • gourp节点的Bounding volume 可以用几何体去框选需要的点线面
  • box节点可以通过根据上面的bounding box生成大小

操作逻辑

  • 加入sphere节点添加分组的用几何体
  • 加入mountain节点给球加入随机效果
  • 加入transform节点设置关键帧实现模型组件变大的效果
  • 加入group节点进行分组

  • 加入point vop节点实现噪波(实现原理与上面撒点的一致)

  • 加入delete节点进行删除,删除非打组的部分,实现模型由中心向外延伸
  • 加入polyextrude节点挤压面
      挤压后需要去掉用于生成的曲线

玻璃裂痕案例总结

  这个案例也不复杂,逻辑理顺之后非常简单。
  最后的噪波实现如果按照教程赋予给多边形会导致每一帧模型都在变化,所以最后我把噪波加载曲线上了。

脚印案例

25:solver节点的特点

观看笔记

  • solver节点可以实现根据时间累加的效果
  • 脚印就是将相应的面往下拉,只要模型的细分足够就可以看到比较精细的结果
  • +

操作逻辑

  • 通过该alembic节点加载模型
  • 缩放模型

+ 加入grid节点生成地面

  • 分别给模型赋予不同的颜色
  • 通过solver节点来处理attribute transfer
      实现触碰的区域有颜色区分,并且效果是叠加的


  • 加入group节点根据颜色信息进行打组
      输入的表达式不能有空格,否则不起作用

  • 加入time shift节点实现保留240帧的结果

+ 加入subdivide对组细分

  • 加入第二个solver节点进行脚印变形
      这里的group节点需要勾选unshared Edges来实现

+ 通过magnet节点实现模型往下移动的效果,magnet只能接收metaball的体积

  • 加入color节点让地面颜色统一

26:solver的使用

观看笔记

  • 通过xyz distant 来获取地板周围的区域

操作逻辑

  • 通过attribute create 创建dis值
      默认值不能为零需要和搜索的最大值一致,否则最小值为零就没有凸起效果了(教程可能有误)


  • 在第二个solver中加入point vop节点
  • 加入xyz distant 节点获取人物模型和地面的接触区域
      根据搜索的最大值,获取的区域由0到最大值过渡

  • 设置min节点保证最小值过滤
      保护已找到的区域,从而不会导致脚离去,抬起的部分又缩回去

  • 通过bind节点获取外部dis值
      如果dis的初值为零,就会导致最小过滤一直在零值上


  • 在颜色处理之前加入point vop节点抬起周围的区域

  fit1的范围值让0到0.5的区域变为1到0,从而实现大于0.5的区域都为黑色,0-0.5的区域逐渐变大抬起

  fit2的范围让-0.1到0的区域变为0到1,从而实现Y轴小于-0.1的区域乘以0,保持脚踩坑的高度在地面以下

  • 加入parameter节点生成scale参数方便外部控制抬起的程度

27:脚印效果以及改善

观看笔记

  • 加入turbulence 节点增加地面抬起的复杂度
      用perlin噪波的效果比较理想

脚印案例总结

  脚印案例还是有点难度的,我主要是在打组的表达式以及min节点操作上面卡了不少时间,其他部分就不算太难。

Houdini-学习之路(三)相关推荐

  1. Redis——学习之路三(初识redis config配置)

    我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息. 我们就 ...

  2. typescript学习之路(三) —— ts定义类的方法(包含es5以及es6的定义类)

    提起类,不得不说一下,强类型编程语言,如php,java,c++等都有类的概念.而js作为一门弱类型语言,是没有类这个概念的,虽然也能模拟类的实现,但总归不是类.so,ts也只是模拟类而已,使得更贴切 ...

  3. 函数式编程学习之路(三)

    入门: 函数式编程之艰难,在于这玩意更接近数学,就是数学之"用",大牛们在云端,玩纯数学去了,弄出一堆公式及概念,码农们爬在地上,辛苦耕耘,要的是看得见摸得着的,函数式编程就是要打 ...

  4. ZYNQ学习之路(三):自定义IP实现PL处理PS写入BRAM的数据

    目录 一.实验简介 二.vivado部分处理 三.SDK编程 四.实验测试 五.总结 一.实验简介 ZYNQ系列嵌入式FPGA可以使PS将数据写入PL部分BRAM,PL可以将数据读取后再重新写入BRA ...

  5. Cocos2d学习之路三(使用Zwoptex创建精灵表单和CCAnimate动画)

    创建精灵表单: 创建动画先要把图片整合到一个图片上然后生成plist文件: 方法下载Zwoptex软件:http://www.zwopple.com/zwoptex/ 然后打开选择 create ne ...

  6. 学习之路三十一:Varchar和NVarchar的理解

    前段时间在测试的时候发现了一个问题,看过Log之后发现在插入数据到数据库的时候发生异常了! 原因是由于插入的字符串太长,项目中的用到的类型是NVARCHAR,下面就是对它们的理解: 1.VARCHAR ...

  7. MongoDB学习之路(三)

    数据库 一个MongoDB可以建立多个数据库. MongoDB的默认数据库为"db",该数据库存储在data目录中. MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自 ...

  8. Object-c学习之路三(@class与#import的区别)

    //@class只是为了声明B是一个类  当两个类相互包含的时候#import是做不到的 //一般在.h文件中用@class声明一个类成员 在..m文件中具体用到时才用#import应用 //二者区别 ...

  9. mysql学习之路三(转)

    创建MYSQL索引 mysql> create procedure p_test() -> begin -> declare counter int; -> set count ...

  10. Hive学习之路(二):Hive表操作详讲

    操作内容简介 一.操作前的准备 二.Hive表操作详讲 1. 创建数据库 2. 查看所有数据库/表 3. 在Hive上直接操作HDFS 4. 在Hive上直接执行终端命令 5. 创建数据表/查看表的信 ...

最新文章

  1. 一个return引发的血案 - 自己动手实现allocator
  2. 云网管—云上构建网络自动化体系
  3. 【OpenCV 例程200篇】96. 谐波平均滤波器
  4. mysql php 变量赋值,在MySQL UPDATE(PHP / MySQL)中使用变量
  5. 进入职场,为什么都需要了解办公软件,了解它对我们有什么作用?
  6. C++ 中的Singleton 类的实现
  7. jbod ugood 磁盘驱动状态_LSI Storcli 工具使用
  8. 4K视频在线看,网速跟不上怎么办?
  9. 数据挖掘与数据分析好书推荐
  10. 图片延迟加载(lazyload)的实现原理
  11. RSA、DSA算法原理与举例
  12. C#中的简单工厂设计模式示例
  13. Java 实现JSON字符串、JSON对象和Java对象的相互转换(fastjson)
  14. 计算机毕业设计之java+springboot基于vue的4S店车辆管理系统
  15. echarts的用法
  16. 【期末复习】现代管理科学基础
  17. PXC pxc_strict_mode
  18. 《暗黑》同名小说——再也回不去(连载1)
  19. 笔记:蛋白质结构预测在线工具
  20. twitter下载网络教程_糟糕的主意:喜p Twitter广告网络

热门文章

  1. 6.1无符号数和有符号数
  2. Wear OS 简介
  3. UI设计线型渐变图标设计
  4. python字符串常用函数
  5. 人保财险5.88亿入股银河证券
  6. 【RabbitMQ-9】动态上线下线Consumer
  7. Sentinel源码解析之滑动窗口
  8. 【BZOJ4184】shallot 线性基
  9. 鸿蒙比苹果流畅的手机,比苹果iOS14更流畅,华为鸿蒙系统一鸣惊人,17款机型优先升级...
  10. android 空调遥控器——遥控器基本版(功能全部实现)