【科研模型100例-68】多孔结构合集(上)
多孔结构是材料科学研究中非常重要的一类形状。根据IUPAC定义,将孔径小于2 nm的称为微孔;孔径大于50 nm的称为大孔;孔径在2-50 nm之间的称为介孔或中孔。常见的孔材料包括分子筛、过滤膜、介孔微球、泡沫金属骨架等。在这些材料中,孔的类型可分为有序和无序两类,分别对应不同的创建方法。
本篇讲解的主要方法有布尔法、样条挤压法、多边形编辑法以及体积建模法。通过对各种不同方法的学习,希望能够帮助大家加深对C4D软件的认识。在遇到复杂形状时能有自己的建模思路。下面结合具体的案例,详细讲解每种方法的应用。
一、布尔法
按最原始的理解,孔的产生就是在物体A身上挖去一部分B。B的形状可以是球形,也可以是圆柱形或其他样式。使用到的工具叫布尔生成器,例如在一个立方体表面挖出一个半球形的孔,只需要将立方体和球体对象同时作为布尔生成器的子层级,并将布尔“类型”改为“A减B”即可。按照子层级的排列顺序,A在上方(此处为立方体),B在下方(此处为球体)。软件会自动判断A和B的空间位置关系并加以计算。
布尔计算容易让人产生的误解是:三维软件中的模型如同现实里的雕塑一样,也是实心的。产生这种观点是因为不了解模型对象的构造本质。在三维软件中,主要有两类几何对象,分别是曲线或曲面对象,以及网格对象。前者也称为NURBS对象,后者也称为多边形对象。构成几何对象的基本元素只有点、线、面,也就是说软件中存储的都是编号、坐标、连接方式、法线之类的信息。多边形对象可以看做是由多个面组成的封闭对象,至于对象的内部空间,是没有额外的存储信息的。下图是将立方体的一个面删除后的结果,可以清楚看到内部的多边形面。注意,网格线可在光影着色(线条)的显示模式下观察到(快捷键【N~B】)。
在使用布尔操作时有两点需要注意:其一、用于布尔计算的模型应当是完整的或封闭的模型;其二、如果A或B是由多个独立的对象组成的整体,那么这些独立对象之间最好没有空间上的穿插。第一个问题有时候尚能得到想要的结果,但第二个问题往往会造成错误的计算。例如对象A仍为单个的立方体,对象B换成两个球体,且两个球体之间有部分交叉,布尔计算(A减B)后的结果如下图所示。由于布尔生成器的操作对象只有A和B,如果A或B对象是由多个对象组成的,可以用连接生成器进行合并。
对于这种有交叉的情形,建议分步骤进行布尔计算。这样操作的好处是计算的结果可控,但缺陷也很明显,就是布尔生成器需要做层级嵌套,当模型量较大时操作会变得繁琐。所以在使用布尔法建模的时候,应提前对布尔的操作对象做一些优化处理,避免这类不可控的错误产生。
比较典型的例子就是在模型表面克隆球体,克隆“模式”为对象模式,“分布”方式为表面。但是默认的表面克隆数量多了之后很难避免模型相互穿插的现象,这样就会导致局部的布尔计算会出现错误。
常用的解决办法是给克隆对象添加推散效果器,调节推散距离使得克隆对象之间彼此分开一定距离。如果实际的孔洞分布就是多种孔交叉的情形,仍然可以采取分步布尔的操作。只需保证每一步布尔操作中的克隆对象是彼此推散的即可。例如下图中,红色的孔是第一次布尔得到的,蓝色的孔是第二次布尔得到的。两次克隆对象的随机种子数和数量可单独调节。
布尔计算还有一个最主要的特征是会继承原有的点、边、面的信息,例如用立方体和一个六面体类型的球体做布尔差集(A减B)运算,原有的立方体和球体的网格边/面就会成为布尔对象的构成元素。此外,默认布尔生成器的【对象】属性中勾选了“隐藏新的边”选项,如果取消勾选,会看到有很多新的边线出现。这些线的出现是遵循网格模型由三角面和四边面构成的原则,对边数超过4的多边形(N-gon)进行重新划分的结果。一般可默认隐藏显示。
某些情形下,为了让布尔之后的模型转角更加圆滑,需要添加倒角变形器处理。这时需要勾选布尔生成器对象属性中的“创建单个对象”,否则新出现的转角边是断开的,无法进行倒角操作。
总的来说,布尔法适合创建一些规则形状的孔结构,但出于自身算法的原因,不适合处理复杂结构的运算。否则易因算力不足出现软件卡死的现象。
二、样条挤压法
如果说布尔法创建孔结构属于“减材制造”法,那样条挤压法无疑应属于“增材制造”。其实质是用二维的样条图形经过挤压得到有序的孔道结构。根据样条拓扑结构的不同可分为三种情况:对于非封闭样条,挤压结果为曲面;对于封闭样条,挤压结果为封闭几何体;对于多个封闭区域且呈包含关系的样条,挤压则会出现镂空效果。
对于由多样条组成的图形,最直接的挤压方式就是先使用连接生成器将所有的图形合并,然后整体挤压。但是该方法只适合呈包含关系的样条图形,如果样条之间有交叉,则无法挤压得到孔道结构。例如下图中的矩形和克隆的圆环阵列,部分圆环完全位于矩形内部,还有一部分圆环和矩形相交。在实际挤压过程中,该图形被分为两组,一组是矩形和内部的圆环,另一组是与矩形相交的圆环。前者挤压得到柱状孔洞,后者挤压直接得到的是圆柱体。
另外一种更加可控的方法是使用样条布尔生成器,即先对样条图形进行计算,通常模式选择差集(A减B),然后再挤出。样条布尔的操作和布尔对象类似,唯一要注意的是“轴向”应与图形所在的平面一致。样条布尔的操作对象一般都位于同一平面内。如果有像克隆这样的多图形组合的样条对象,可以加连接生成器后再进行样条布尔计算,这样计算结果会更加稳定(属于软件自身问题,和创建思路无关)。
在挤压对象的【封盖】和【选集】属性中,可以设置封盖的倒角外形及尺寸,挤压后侧面的壳、起点/终点的封盖和倒角均可单独设置选集,如S表示壳(shell),C表示封盖(cap),R表示倒角(round)。添加材质时只需在材质标签中输入对应的多边形选集名称就可以分别设置材质。
样条挤压法的局限性在于挤压的方向只能是直线方向,对于非直线型的孔道,则可以用扫描生成器来制作。和单纯的挤压相比,扫描生成器在挤压的同时还提供了截面图形沿着曲线改变方向的能力。此外,在扫描生成器的对象属性中,还可以修改终点缩放百分比和结束旋转的角度值,得到锥化或螺旋扭曲的效果。
除了图形克隆得到的规则排列的孔道截面外,有些孔道的大小和形状具有不规则性的特点,如木质素通道结构。这类结构的创建重点即截面图形的生成,基本的绘制思路有以下两种:(1)往视图中导入参考图片,参照图片中的孔轮廓绘制样条线;(2)将平面重构为大小不一的多边形面,提取每个多边形的轮廓边并设置成平滑曲线。
这里提供一种平面重构多边形的思路——破碎。默认的破碎(Voronoi)生成器中,点的来源(见【来源】属性)是通过自带的点生成器得到的,但这样产生的破碎形状不是非常均匀。注:voronoi是利用连接相邻两点的线段的垂直平分线进行分割的一种方式。
为了得到较为均匀的点的分布,可以手动创建一些空白对象,作为破碎的点来源。将这些空白对象放到破碎【来源】属性的“来源”列表中,就可以得到如图所示的破碎结果。并且移动任意空白对象,都可以实时改变最终的破碎结构。破碎时在【对象】属性中设置“偏移碎片”的值,可以让碎片之间产生间隙。
接下来将破碎对象转为可编辑多边形对象,再提取轮廓边就可以按照上述挤压或扫描的方式来建模。不要忘了最外圈要添加一圈外轮廓(此处可为矩形),整体连接后挤压才会得到孔道结构。但转为可编辑多边形会将之前的操作信息一并塌陷掉,为了整个过程的连续性,这里也可以直接给破碎的碎片进行挤出。使用的是布料曲面生成器,如果希望最后得到的孔道是圆滑的,可以在添加布料曲面生成器之前执行细分曲面操作。
最后,外侧用一个矩形挤压出长方体,布尔计算(A减B)就能得到最终的结果。尝试移动任一初始空白对象(相当于控制点)的位置,观察孔结构的变化。
三、多边形编辑法
多边形编辑法在创建规则孔结构时,特别是在多孔表面的构造中应用非常广泛。由于孔的方向通常是基于表面法线的方向,所以该方法很少受到曲面形状的限制。常见的波浪形曲面、球面、随机起伏表面都可以使用多边形编辑法来“造孔”。
一般用于创建孔的多边形建模操作有两类,一类是面内部挤压,一类是点倒角。以平面结构为例,首先需要将其转为可编辑多边形对象(快捷键【C】)。然后对所有的面进行内部挤压(快捷键【I】),注意挤压时应取消“保持群组”选项,使得每个多边形面得以单独挤压。挤压的“偏移”值决定了孔的大小,挤压完成后删除选中的面即可。之后添加布料曲面对象得到一定的厚度,如下图所示。
如果需要得到圆形的孔洞,通常需要配合细分曲面对象添加平滑效果。当初始孔洞为正四棱柱形或正六棱柱形时,可得到效果较好的圆形孔洞,构建方法也相对简单。
不过,由于非节点式的多边形建模步骤通常是“破坏性”的,虽然可以进行重头再编辑,但修改起来有诸多不便。这里建议大家使用程序化的编辑方式,有节点式和非节点式两种。
(1)非节点式
主要使用的是倒角变形器和运动图形中的多边形FX对象。默认的点模式倒角得到的是非开口的结果,如下左图所示。添加了多边形FX对象后,在其【变换】属性中将“缩放.Z”的值减小(如0.98),然后再倒角即可得到开口的孔洞,如下右图所示。该方法可以直接用于参数化的几何体对象,而无需先转为可编辑多边形对象。比如这里原平面对象的分段数仍是可以修改的。
倒角的“深度”值设为100%,增加“细分”数可以得到圆形的开孔,一般设为2~3即可。同样,“偏移”值控制开孔的大小。
接下来用布料曲面给整体添加厚度,由于之前的多边形FX对象使得边处于断开状态(倒角出现开孔的原因),需要再次添加连接生成器将断开的边重新焊接。连接后也可以用细分曲面对象使得孔更加圆滑。注意这里的对象层级关系,如下图所示。
由于所有的步骤都是利用软件中集成好的工具,只需要改变初始对象(如改成球体或宝石体),适当调节模型分段数、倒角的偏移和细分值等,就可以得到不同的结果。如下图所示的多孔球壳和多孔立方体壳等。
(2)节点式
C4D的节点式建模(Scene Nodes)是R23版本以后才有的功能,功能尚不完善,仅作了解即可。典型的场景节点编辑如下图所示,操作类似于C4D已有的节点材质编辑和XPresso编辑器。节点有输入端和输出端,可以互相连接的端口数据类型必须匹配。例如几何类型的端口只能与几何类型的端口相连。几何类型的节点要在场景中显示必须通过几何算子节点作为桥梁。
节点操作的优势在于每一步都是程序化可控的,包括多边形建模步骤在内。例如内部挤压的功能就可以由“插入”节点来实现。
通过设置选集就可以区分原有的面和新插入的面,从而轻松筛选出需要保留的部分。这里可以用“新创建的”(Newly Created)节点来区分原有的多边形和新产生的多边形。
将“插入”节点改为“倒角”节点,同样可以配合“新创建的”节点和“删除”节点,删除倒角产生的新面,得到多孔的造型。注意这里用到了“新创建的”节点根据新旧模型变化识别得到的多边形选集,将其输入到“删除”节点的选集端口,即可删除选集中的多边形。
后续依次添加“细分”和“挤出”节点,得到介孔球壳的结构。具体可见参考文件。
当然,以上结构也可以通过布尔法或非节点式的多边形建模法得到,但在参数调节的便捷性方面,节点式建模显然更具优势。
如果表面的孔比较密集,且表面的厚度足够薄,还可以考虑用贴图的方法来获得孔的效果。例如一个起伏的薄膜,表面分布有蜂窝状排列的圆孔。
只需要创建一个噪波置换的平面,添加标准材质,在材质编辑器的Alpha通道中为其添加“平铺”纹理即可(表面:平铺)。
在平铺纹理的着色器属性中,图案选择圆形2或圆形3,将“填塞颜色”改为白色,“平铺颜色”均改为黑色。由于Alpha通道调节的是透明显示的程度,白色表示100%显示,黑色表示完全不显示。渲染后黑色对应的区域就呈现出孔的效果。
将“斜角宽度”设为0.1%(可使孔边缘显示更加清晰硬朗),然后调节“全局缩放”的值,即可渲染得到如图所示的多孔薄膜效果。
除了蜂窝排列的圆点外,使用平铺纹理还可以得到三角形、六边形、随机Voronoi、鱼鳞等多种不同的图案。例如六边形的平铺纹理就可以用来表示大面积的石墨烯结构。该方法的局限性在于只适用于薄膜、布料等厚度较小的物体,而无法得到体积孔的效果。
体积孔可分为规则孔和不规则孔两类,规则孔同样可以利用多边形建模法来创建,典型的如分子筛结构。以A型分子筛的创建为例,创建一个八面体类型的宝石体对象,并添加倒角变形器。倒角的“构成模式”选择点,“偏移模式”选择按比例。然后设置“偏移”值为33.333%(可直接输入100/3,软件会自动计算),得到如图所示的截角八面体。
添加网格模式的克隆,克隆“数量”可设为2×2×2。注意这里的“尺寸”设置,应保证两个截角八面体相对面的距离刚好等于其边长。原八面体的半径为100 cm,计算后可直接在“尺寸”的三个数值框中均输入“(4+sqrt(2)*100/3)”(sqrt是平方根的意思),约180.47cm。得到结果如下——
多边形建模只需要将相对的面进行桥接即可。在对象窗口右键点击克隆对象,选择“连接对象”选项可将其合并为一个可编辑多边形对象。然后切换到多边形模式下,选择所有相对的四边形面,如图所示。按快捷键【B】进行桥接,只需要按住鼠标从一个面拖拽至另一个面即可。桥接时会出现白色的连接线提示,确认无误后松开鼠标。
配合视图的旋转完成所有相对面的桥接,个别操作有误可按快捷键【Ctrl+Z】撤销。最终结果如下——
以上操作是出于创建一体化模型的考虑。如果只是得到上述造型,对于多边形的构造没有要求,也可以用对象克隆的方式来制作。即在立方体的顶点处克隆截角八面体,在立方体的棱上克隆四棱柱(桥接部分)。立方体的边长即之前计算的180.47 cm,只要改变立方体的阵列周期数,就可以得到多个重复周期的分子筛结构。
今天就到这里,更多多孔结构的创建方法,我们下期再见~
【往期绘图教程汇总】
思斐迩(Sphere)——沟通科学与艺术的桥梁。
杭州思斐迩科技有限公司长期专注于科学可视化领域,专业提供科研图像设计和科研动画制作等服务。公司拥有一支专业的硕博团队,涵盖生物、化学、材料、美术设计等,具有深厚的科学和艺术底蕴。自2016年以来已为全球上百家高校和科研机构提供设计服务,包括中科院、MIT、Stanford、ETH Zurich、EPFL、清华、北大、Cornell等,蜚声海内外。公司秉持以图像诠释思想,用技术创作艺术的宗旨,作品被Science、Nature、Cell、JACS、Angew等期刊选用,并受邀为其制作动画。为了更好地服务科研工作者,公司还长期开设科研绘图培训课。更有国内最大的科研作图教学公众号“3D科研绘图”和答疑社群,为大家提供详细的教程和答疑咨询。曾为浙江大学、复旦大学、武汉大学、同济大学、上海科技大学、中科院大连化物所等单位提供专业作图讲座和培训,线上线下总受众数超十万人。