查看原文
其他

【HSN_012】任意多面体的刺状骨架生成

独孤嘌呤 3D科研绘图 2022-10-26

今天我们来学习如下所示的刺状多面体骨架的创建方法,使用的软件是Houdini 18.0。


创建的思路比较简单,先将原多面体的点沿法线方向往外延伸得到线,再以整体线框为框架生成网格化模型。


我们从一个“platonic solids”(柏拉图多面体)节点开始做起,这是一个多面体节点,跟C4D中的宝石体对象类似。如将其“solid type”改为dodecahedron,即由12个正五边形组成的正十二面体。


为了后面方便替换,后面连接一个“null”(空白)节点,在节点面板按快捷键【C】可以设置节点的颜色。选择节点后点击相应色块即可,再次按【C】可隐藏色板。“null”节点一般用于记录或显示重要节点的位置,没有其他额外的作用。之后如果需要替换初始的多面体,直接将其连接到“null”节点输入端即可。


由于“platonic solids”节点默认没有点法线信息,用“normal”节点为其添加点法线,“add normals to”选择points,表示将法线添加给点对象。在Geometry Spreadsheet窗口可以看到多余N[x]、N[y]和N[z]的信息。


添加点法线后点击视图右侧工具栏中的“display normals”按钮可以在视图中看到法线,如下图所示——


接下来就是怎样让多面体的顶点沿着法线方向移动,我们先用一个“add”节点将这些点单独提取出来,勾选属性中的“Delete Geometry But Keep the Points”选项。


现在我们有了点的坐标属性P,和法线属性N,P+N就是让点沿着法线方向移动1个单位。依此类推,P+2N,P+3N……就是移动2个、3个……单位的距离。这里使用的节点叫做“point VOP”,双击进入节点内部如下所示,有一个“geometryvopglobal”节点和一个“geometryvopoutput”节点。可以看到端口有P、Cd、N等一大串属性,也可叫做全局变量。该节点的作用是利用现有的全局变量进行某种转换,得到新的数值。诸如弯曲、扭转等变形实质上就是点坐标的变换,用“point VOP”也可以做到。它可以创建软件中默认没有的变换功能。


本例中的变换比较简单,只需要P+s*N即可。P和N分别是位置和法线,s是系数。使用到的节点是数学计算的“add”和“multiply”,点击查看节点信息可以看到都属于Vop节点。


为了让系数可以在外部调节,在“multiply”节点的input2端口按鼠标中键,选择“Promote Parameter”选项。

然后可以在端口左侧出现一个圆角矩形的标记,点击后在属性窗口可以设置端口数据的名称、类型和取值范围等。和笔记010中设置参数的界面类似。这里我们可以把系数的名称设为“scale”,标记设为“Scale”。


按【U】退回到上级节点,可以看到多出一个“Scale”控制参数,调节其数值就可以实现点沿着法线方向的移动。


然后想办法让移动前和移动后的点连接成线。这里我们可以先给每个点一个独特的标记,让点在移动后可以通过标记识别移动前的自己。用到的是“enumerate”节点,将“group type”改为points,这里实际上就是添加了一个叫“index”的属性,给点进行编号。


将移动前后的点“merge”后,在Geometry Spreadsheet窗口可以看到,index属性中的编号从0开始都是成对出现的,表示的就是移动前后的点。


有了这个成对的识别标记后,连线就很简单了,让相同index的点连接成线即可。还是用“add”节点,在“Polygons”中选择“By Group”,“Add”方式“By Attribute”,即按照属性来添加,“Attribute Name”一栏输入“index”即可。


哆嗦了这么多,我们终于做完了第一步。现在用一个“merge”节点将初始多面体和新连接的线合并。


细心的同学会发现“merge”节点旁多了个感叹号,虽然影响不大,但我还是想解释下。还是那句话,出现Warning是正常的,我们需要学会的是怎样分析并解决。查看“merge”节点的信息可知,warning是因为属性的不匹配造成的,因为初始多面体和后面连线带有的属性名称和数量不匹配,包括index和N属性。


具体到Geometry Spreadsheet窗口查看,可以看到原多面体是没有“index”属性的,“merge”之后为了适配,都默认加上了一个-1的值。其实这个-1在这里是完全没有必要的,只是为了数据的统一而已。


如果不想有这种状况发生,解决的办法也很简单。因为index和N属性在我们连完线之后就不需要了,可以用“Attribute delete”节点将其删除。也就是在“add”节点后加上“Attribute delete”节点,节点属性的“Point Attributes”栏输入“N index”选项,这两个属性就会被删除掉。“merge”的warning也随之消失了。


后面的处理相对简单自由一些,这里我用的是“polywire”节点,让线变成柱状。“Smooth point”设为0,“Divisions”设为6,让每边都是六棱柱。


接着用的是一套VDB节点,将其转为整体的多边形模型,在之前的笔记中已经讲过,这里不再细述。


最后我用了一个“Attribute Blur”的节点,翻译叫做属性模糊。这个节点有点意思,它可以让属性变得平滑,比如默认的“Attributes”是P,即点坐标,模糊后得到的就是模型平滑的效果。增加“Blurring Iterations”(迭代次数)可以调节平滑的程度。如果平滑的属性是Cd或N,那么就是对颜色或法线进行平滑。


如果觉得“刺”不够长,调节之前在“point Vop”节点中设置的“Scale”参数即可。


改变初始多面体的类型,就能直接生成最后的刺状骨架了。


今天的笔记到此结束,我觉得两个比较值得学习的节点是“point Vop”和“Attribute Blur”。感谢各位的阅读,下回再见~


【往期绘图教程汇总】

 C4D科研绘图系列教程

 C4D科研模型100例

 Grasshopper科研绘图系列

 Diamond系列教程

 Houdini学习笔记系列

 3D科研绘图往期教程精选 

 PPT绘图系列

 AI绘图系列


思斐迩(Sphere)——沟通科学与艺术的桥梁。

杭州思斐迩科技有限公司长期专注于科学可视化领域,专业提供科研图像设计和科研动画制作等服务。公司拥有一支专业的硕博团队,涵盖生物、化学、材料、美术设计等,具有深厚的科学和艺术底蕴。自2016年以来已为全球上百家高校和科研机构提供设计服务,包括中科院、MIT、Stanford、ETH Zurich、EPFL、清华、北大、Cornell等,蜚声海内外。公司秉持以图像诠释思想,用技术创作艺术的宗旨,作品被Science、Nature、Cell、JACS、Angew等期刊选用,并受邀为其制作动画。为了更好地服务科研工作者,公司还长期开设科研绘图培训课。更有国内最大的科研作图教学公众号“3D科研绘图”和答疑社群,为大家提供详细的教程和答疑咨询。曾为浙江大学、复旦大学、武汉大学、同济大学、上海科技大学、中科院大连化物所等单位提供专业作图讲座和培训,线上线下总受众数超十万人。

▼学术期刊封面设计请点击下方图片

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存