第066封“情书”:七宗罪Low Poly Transform网格变换<Entagma>Houdini 2018

▉ 在神面前,我是一个污秽的人,不配的人。— 每天翻译一篇教程,这就是我写给houdini的情书。【首发于同名公众号:“致houdini的情书”】

海明威说过“世界很美好,我们要为之奋斗”,我同意后半句

前言不搭后语:  

神啊,我有罪。

请宽恕我。

请宽恕我的懒惰,宽恕我的贪婪,宽恕我的意志薄弱。宽恕我的偏执;宽恕我的冲动,宽恕我的暴躁。宽恕我的狂妄。宽恕我的懦弱。宽恕我曾对别人造成的伤害。宽恕我曾经的背叛。宽恕我的的不忠不孝不仁不义。宽恕我辜负的时光。

而今,

我已知悔改,请求你的原谅。

今天这节内容:

    如何实现高多边形网格与其低多边形表示之间平滑混合

这一节要实现的效果

.....

今天是42岁

040周二

66

这是写给Houdini的第066封“情书”

我是geo流程图

我是pointvop

低模点投射到sdf

创建低模和sphere之间的衰减

创建prim和sourceprimuv

融合“低模”和“平滑低模”

混合法线

首先

制作步骤

            ○

小节提要

在高多边形网格与其低多边形表示之间平滑混合是一种微妙但有用的效果,

本节将学习: 

01)如何使用完全相同的拓扑创建同一对象的高低模两个版本。

02)使用衰减值在两者之间混合。

03)使用重心坐标来插补低多边形衰减值。

04)将其转移到高多边形网格。

05)然后将位置和法线与VOP混合。

模型网站:

1)https://www.myminifactory.com/

接下来

正式制作

使用软件:houdini16.5

01完全相同的拓扑创建同一对象的高低模两个版本

1 准备“高模”&“低模”

○ 节点 ○

1filetransform1transform2

2null命名highpoly

3paint。 

4pointwrangle

5polyreduce1

6null命名lowpoly

○ 具体操作 ○

1)导入模型;缩小。旋转位移;

2)null输出高模。

3)模型脸上涂上红色。

4)设置保留属性=这个颜色的绿色通道的倒数:

@retention= 1-@Cd.y 

5)调用retention;减少很多多边形只是红色部分稍微多一些:

6)null输出低模;

接下来:

1)将“低模”的顶点复制到“高模”得到一个完美的适配。

2)

减少面时,很多顶点产生了位移,移回正确位置

2 偏移“低模”点到对应的“高模”上

 使用原模型的sdf volume;

○ 节点 ○

7 vdbfrompolygons1 //  

8 null输出,命名sdf

9

pointvop重命名reproject_volumetric 

//“槽1”连接“低模”b)“槽2”连接“sdf”内部调用sdf

9-1)volumegradientfile1

9-2)volumesamplefile1

9-3)negate1

9-4)multiply1

9-5)add 

○ 具体操作 ○

7)需要外部的bandbox,因为我们需要使用SDF的梯度来复制这些顶点。 输出null“SDF”

a)vdb在“物体表面”默认定义了三个“体像素”

b)这些顶点有可能偏离,所以是体像素数量不够的提高为30个。

c)内部全部填满。这些设置确保低模在一个大的sdf里面。

d)我们要保证无论哪个“低模的点”都有sdf值,

9)voppoint//    

sdf两个部分:

❖1)sdf的梯度=靠近表面的点矢量方向

2)sdf的采样数值=到表面的距离

9-1,2)建立“梯度”“采样”与P和“槽2”的连接

9-3)接下来需要对梯度取逆向:

问题)梯度从表面指向错误的方向

解决方案需要“指向曲面的向量”对当前梯度取负值

9-4)再将“梯度”乘“采样”

    ❖1)当前得到了指向“高模”的矢量线。

    ❖2)multiply=移动到表面的“偏移”强度 。

9-5)将点位置+这个“偏移”输出P

对齐点的位置后,

a)再保持外形的情况下。

b)细化这个“低模”。

3 细分“低模”顶点

1) 需要更多的点;

○ 节点 ○

10 subdivide1。

11 pointwrangle命名set_creaseweight

12 normal:

13 pointwrangle命名store_vertex_normal

10)subdives细分最好的方案=Opensubdiv Loop; 低模是三角形网格。  


问题)当前产生了平滑变形,没有保持“低模”原型

方案)细分前设置所有皱褶权重creaseweight

11) pointwrangle设置“creaseweight”

    a)设置“皱褶权重=20”;b)选择运行在“顶点”上.

@creaseweight = 20;      

12)锐化一下法线;

需求)存储这些法线,形成与“高模”不同的法线,最后混合这些法线

13)pointwrangle存储法线;还是运行在vertex顶点上:

执行)v@mynormal = @N;      

4 将细分后的“低模”点投射“高模”

○ 节点 ○

14 reproject_volumetric1project_volumetric1

    a)复制<9>节点

    b)“槽1”连接<13>节点。

15  normal :   

14 复制<9>改变“槽1”为“细分后的低模”这样就把点投射到了“高模”上,在改变一下法线,-----

问题)“细分低模”应该投射成功却没效果

原因)法线方向还没有改变,增加normal

15 增加法线    

问题)多边形在光滑高模上分布不漂亮

原因)我们投射fact面,多边形大小分布不均

解决方案)foreach交互式表面平滑,再复制

5平滑细化投射的低模表面

○ 节点 ○

16)foreach with feedback

17)attribblur1

18)reproject_volumetric2 // 复制<14>

16)feedback的循环节点

需求1)点在表面的移动

解决方案)循环中使用模糊表面,然后再投射

17)属性模糊:它会平滑模糊多边形分布

18)复制投射节点:放入for循环;迭代了10次

模糊迭代=1;沿表面平滑点

循环迭代=20,模糊迭代=5模糊迭代=1(边缘好许多)

此时)有了低模的两个版本:

一个平滑投射后。一个保持低模外形。

相同的点,prim,只是外形不同

02使用衰减值在模型间混合

1低模创建顶点法线&衰减过渡

19)store_vertex_normal1

20)sphere;21)transform:

22)primitivevop命名falloff:

    22-1)importpoint1; 22-2)const13;

    22-3)distance1; 22-4)fit;

23)attribdelete1:

24)bindexport:

需求)混合两个模型

步骤1)循环后低模“创建顶点法线” 

19)给模糊投射低模,增加顶点法线:因为不但要混合模型,也还有法线

需求) 创建球和低模的混合衰减值 

20)使用球;21)移动到模型中央,

22)primvop的“槽2”接球;“槽1”接<06>

22-1,22-2)首先找出球的中心点;使用importpointattribute;一个=0的整数常数,连接ptnum;Opinput2连接file

    22-3)dist距离节点=所有点和中心点的距离,

22-4)fit反向创建衰减值1~0。

d)输出Cd观察效果

观察效果

23)使用“属性删除”,去掉之前Cd移动球便于观察

24)bind export输出falloff

需求)降低过渡的范围;

方案)提高原始渐变范围最小值=0.9

03使用barycentrics坐标来插补"低模"衰减值

1  转换prim为point类

 在将衰减值应用到“细化低模”前,还需两件事

1)转换:将falloff值从prim转成point,因为最终我们需要对“细分版本”的每个单独点的所有点进行价值衰减,然后必须以某种方式将这些值转移到高聚合版本,

2)实现方法:primuv使用参数坐标来进行插值;此法更精确

2barycentric坐标系插值低模

24)attribpromote1:

25) attribinterpolate1 :

26)pointvop命名findbarycentrics

    26-1)xyzdist1  26-2)bind1输出sourceprim 26-3)bind2输出sourceprimuv。

27)color:

24)转换“衰减”从prim到point

插值方案)使用attribinterpolate插值

25) attribinterpolate1在几何体上使用两个属性:sourceprim和 sourceprimuv 可以在每个prim的坐标看到点的坐标。

需求)首先创建 sourceprim和 sourceprimuv

解决方案)pointvop创建属性

26)“槽1”连细化版本<13>store_vertex_normal;

"槽2"连接低模版本投射<9>reproject_volumetric;

现在这两个属性是 attribinterpolate1的内部标准属性。

操作)<25>“槽1”连<26>"槽2“连<24>”

问题)颜色没有衰减。attribinterpolate只对点插值

解决方案)加入color节点

使用rampfrom属性

27)color改变颜色便于观察!

04将其转移到高多边形网格

1 混合两多边形点位置  

28)pointvop命名blendP

28)pointvop“槽1”连看上去的“低模”<27>“槽2”连高模<19>

12) 

05将位置和法线与VOP混合

1 混合两模型点位置  

28)Pointvop

28-1)importpoint1   28-2)mix1;28-3)bind1

28)pointvop

28-1) importpoint1输入“平滑低模”与P位置mix,bind引入falloff进行融合输出P

importpoint1

2 混合法线  

29)attribpromote2

30)pointvop命名blend_normals  

30-1)importvertex1

29)衰减从point转“顶点”

30)“槽2”接<19>

    30-1)输入第二几何流顶点属性 

今天就到这里,收功

教程翻译自entagma的网络教程

下一节::20180730 Importing & Exporting Vectors to_from Houdini + Creating Isocontours

电子邮箱:oneinchtime@126.com

公众号:

微信号

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容