您的位置:首页 > Web前端 > Node.js

第082封“情书”:暴裂无声Built-In Nodes vs. VEX- Voronoi-Morph<Entagma>Houdini 2019

2019-08-07 22:59 225 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/sinat_33115291/article/details/98794217

▉ 有时候我性子很烈,不顾后果,虽然次数不多。— 每天翻译一篇教程,这就是我写给houdini的情书。【首发于同名公众号:“致houdini的情书”】

█ “暴君”

前言不搭后语

大部分情况,他都很平和沉默不语,不主动挑事,遇事能忍则忍,好像逆来顺受。

你以为他是沉默的羔羊,但他可能是披着羊皮的狼。

他不会无缘无故的发火,但他的怒火会像地震在毫无征兆的情况下爆发。

请谨记:莫欺老实人。

本节内容两种方式:节点&vex代码实现规则与不规则六变形的过渡变形。

本节要实现效果.....



今天是42岁第055周三
82这是写给Houdini的第082封“情书”


我是geo流程图


我是vex代码

//-- 1 首先求得add点的信息vector npos = point(1,"P",0);//-- 2 grid点与add点的距离float d = distance(v@P,npos);


//-- 3 最大小距离 max=2float max = chf("Max_Dist"); float min = chf("Min_Dist");


//-- 4 映射距离在1~0之间d = fit(d,min,max,1.0,0.0);//-- 5 增加坡度控制映射范围d = chramp("falloff",d);


//-- 最后· 写pscale属性f@pscale = d;

首先
制作步骤

            ○ 小节提要

本节将学习:普通grid变形细胞结构。

01)使用节点实现。

02)使用vex代码实现。

03)设置动画&渲染。

接下来
正式制作            软件:houdini17.5


01节点实现grid变形细胞结构


○ 节点 ○



○ 具体操作 ○

小目标)准备分解多边形“断裂点

这里的点决定“断裂”后的样子

01)grid1:长宽=10*10;分辨率=40*40。

02)grid2:分辨率 2*2。
03)voronoifracture1:泰森多边形法断裂节点。

小目标1 网格转六边形 

解决方案)○ 隔行选择点。○ 移动选择点。○ 显示断裂调整移动值


执行)

04)❖ 🔗grouprange1 ❖:    a)命名:move    b)组的类型:point    c)选择范围:每80个点选择40个

05)❖ 🔗transform ❖:    a)选择move组
    b)x轴移动=0.2

03)显示🔗voronoifracture调节<05>的点移动位置得到“六边形”。


小目标2 六边形产生变形 

解决方案)

○ 🔗pointjitter可以让点随机方向炸毛

执行)

06)❖ 🔗 pointjitter ❖ :降低强度a)降低强度Scale=0.45;b)只要xz轴变化 y=0

知识点)关于Use PScale:

如果有个pscale属性 ,可以驱动Scale值   

伏笔)创建pscale属性

执行2b)  07)🔗attributecreate1 :  a)创建pscale  b)调整Value值,观察pointjitter效果


小目标2a 过渡pscale 

解决方案)add增加点控制pscale属性过渡

执行2c)  09)❖ add ❖:增加一个源点点10)复制<07>❖ attribcreate2 ❖:属性value=107) 属性值=0
11)❖ attribtransfer1 ❖: a)调整过渡半径范围=1.5


显示❖ 🔗 voronoifracture  ❖:

助攻)

视觉化“pscale属性”

12)❖ visualize1❖ 





小目标2b 平滑pscale属性 


解决方案)模糊pscale属性


13)❖ 🔗 attributeblur1❖ 增加迭代值





最终)得到非常平滑的变形过渡






02 VEX实现grid变细胞结构


○ 节点 ○

○ 具体操作 ○13)❖ 🔗pointwrangle1❖ 

//-- 1 首先求得add点的信息vector npos = point(1,"P",0);//-- 2 grid点与add点的距离float d = distance(v@P,npos);


//-- 3 最大小距离 max=2float max = chf("Max_Dist"); float min = chf("Min_Dist");


//-- 4 映射距离在0~1之间d = fit(d,min,max,0.0,1.0);//-- 5 增加坡度控制映射范围d = chramp("falloff",d);


//-- 最后· 写pscale属性f@pscale = d;


○ 视觉化pointwrangle ○

小问题)属性过渡方向反了

解决方案)改变映射范围1.0~0.0




03 设置动画&随机色


○ dopnet内部节点 ○

○ 效果图 ○


教程翻译自entagma的网络教程下一节:: 电子邮箱:oneinchtime@126.com

公众号: 微信号

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐