rhino怎么用Grasshopper建模窗帘?rhino用Grasshopper建模窗帘的文教程
Rhino是一款很好用的三维建模工具,虽然大小才几十兆,对硬件要求也低;但是它包含了所有的NURBS建模功能,这就是rhino受欢迎的主要原因,大家都爱用它来制作高精度模型给其他3D软件使用。如果你也是从事3D设计的,那你一定要学会使用Rhino这个软件哦,犀牛不仅对电脑要求低,使用也很简单,单靠自学就可以学会使用,的“犀牛(Rhino)工业设计零基础入门建模教程”就是一个非常好的自学教程,很多自学的犀牛的小伙伴看的都是这个教程哦。
rhino用Grasshopper建模窗帘的图文教程
STEP1、基本建模
对于下面这个窗帘的模型,相信很多对于grasshopper掌握比较深入的童鞋都可以很轻松的建出来。
但为了照顾一些刚刚学习GH的小伙伴,让我们先花一点时间来回顾一下建模的主要过程:
首先,我们先绘制两组点,用以生成基础面的上下边缘线,在这里我们的建模逻辑还是遵守大家所习惯的点成线,线成面。
大家可以通过对于graphmap的调节(这里选择的是sin函数),自行控制曲线的形状,可以通过对于domain区间的设置控制窗帘的长度。
然后,我们只需要将上边缘的点沿Z方向抬升~
再把上边缘和下边缘的点成组连线:
数据拍平之后放样就生成了曲面,这样就完成我们的第一步了。
接下来我们就需要在基础面上开洞了。将基础面重参(rebuild调整UV数目,使曲面uv参数分布大致均匀)之后,我们运用lunchbox进行开洞处理:
大家可以注意下这里对于surface的UV细分值已经达到了500*60,并且运算器的计算时间已经达到了550ms,大家应该可以感觉到些许的卡顿了,尚在可以接受的范围内。
但是当完成这一步,进行后续操作的时候,大家就可以感觉到正确的建模逻辑和优化手段对于GH的影响是有多么巨大。
STEP2、不同建模逻辑与优化
我采用大部分童鞋会使用的方法,也就是传统的点成线,线成面的方法。首先用喜闻乐见的area运算器提取每个面的中心(个人非常不推荐这个运算器,具体原因后续会说明)。
大家可以看到,area的运算时间已经达到9.6s了。
然后对于每个面进行不同程度的缩放,这里咱们就使用imagesampler运算器通过图像灰度结合remap运算器来控制缩放值。
接下来,相信百分之九十九的童鞋会做的一步是把原有的面和缩放后的面graft后merge,然后直接loft成面。从建模上来说,这样完全没有问题,标准的线成面步骤。
但是当我们点击运行的时候,我们可以看到loft运算器的运算时间已经达到难以忍受的33.5s,但是更加难以接受的是如果你将这个loft后的面bake到Rhino之中的话,即使是一个简单的缩放命令,都会让你的Rhino卡顿长达几十分钟,更别说附材质和渲染了。也就是说,虽然我们成功在grasshopper中建出了这么一个模型,却完全无法进行后续的使用。那么该肿么办呢?
这就要求我们,必须对原有的程序进行优化了。具体怎么优化呢?主要有两种方式,第一种方式是局部运算器的优化。
在grasshopper中,有很多的运算器都可以实现相同的效果,但是他们之间的速度却有很大差异。比如提取面的中心,很多人会使用area电池进行生成,但是通过evaluatesurface电池同样可以实现相同的效果。
对比之前运用area的9.6s,我们仅仅使用100多ms就实现了中心点(即面的质心)的提取。大大节约了运算量和运算时间,这也是之前我提到不推荐使用area的原因。
第二种方式则是对建模逻辑、方式的优化了。之前也说过,大家都很熟悉点成线,线成面的nurbs建模方式。但是在Grasshopper建模过程中,还有另外一种更为高效的建模方式:那就是通过顶点,运用mesh直接成面。由于在Rhino中mesh包含的信息量远小于nurbs面,因此通过这种建模方式建出的模型,占用更少的计算资源,bake出来后可以非常方便地在Rhino进行后续地修改。
那么就让我们看看,在GH中到底怎么通过mesh建模吧!首先让我们回到缩放后merge那一步。
这个时候,不同于之前的之前loft,我们先通过explode提取每组线的顶点,通过trimtree讲两条要成面线的顶点放到一个组里面,再通过cullduplicate去除重复的点(此处再次强调数据结构的重要性)。
然后就到了我们生成mesh的步骤了,其实在Grasshopper中生成mesh十分简单,我们只需要一个运算器:constructmesh。这个运算器我们需要考虑的主要也就是两个输入端,V输入顶点,F输入顶点链接的顺序。
V端的点就是我们cullduplicate之后的顶点,但是F端的输入值就比较考验小伙伴们对于数据结构的理解了,为了大家方便观察,我通过treebranch将众多顶点中的一组提取出来,再借助pointlist展示一下它的顶点顺序。(treebranch+pointlist对于初学者掌握数据结构帮助非常大,同学们要经常记得使用了。)
这个时候我们可以清楚的看到每个组里面有六个点,编号分别是012345,并且顺序是从外到内逆时针的。我们通过mesh生成大部分面都是四点成面,所以对于这个面我们可以将它拆解为三个mesh部分:面0143、面1254、面2035。
(面0143)
(面1254)
(面2035)
然后将这三个mesh合并为一个mesh。
因为之前cullduplicate之后的数据结构为树形数据,我们只要将treebranch这一步略过,直接连接point即可。
大家可以惊喜的发现,成面的时间变为了1.2s(之前为33.5S),近30倍速度的提升!相信可以让小伙伴们非常直观的了解到GH中mesh的强大。
并且bake出来之后在rhino中大家可以随意转动变化,而不会有卡顿。
最后的渲染就非常的轻松愉快了,加一个无限地面作为基面,加一个矩形灯打光:
给地面一个木板材质,窗帘一个织物材质,都是官方自带材质。
点击渲染,咱们的窗帘就出现了。
“rhino用Grasshopper建模窗帘的图文教程”的内容就分享到这里了,看完这个分享你一定对犀牛有进一步的了解了吧,如果对犀牛的使用还有其他疑问,想更深入的了解rhino软件,可以点击这个链接: