犀牛入门基础教程让您在短时间内熟悉犀牛软件
犀牛建模入门
2010寒假Rhinoceros课程全记录
Ⅰ
前言 | 1 | |
第一章 | 我的建模观 | 2 |
为什么选犀牛 | 3 | |
3D软件分类 | 5 | |
Polygon与Nurbs | 6 | |
第二章 | Rhino界面和基础操作 | 9 |
界面构成 | 9 | |
如何使用工具面板 | 11 | |
自定义工具集 | 13 | |
Rhino视窗 | 14 | |
视窗基本操作 | 14 | |
在底部显示视图标签 | 15 | |
视窗显示模式 | 16 | |
工作平面 | 18 | |
观看物体 | 20 | |
物体基本操作 | 20 | |
选择物体 | 20 | |
建模辅助设置 | 22 | |
第三章 | 绘制2D物体 | 24 |
Rhino中的对象介绍 | 24 | |
点物体 | 24 | |
线物体 | 25 | |
面物体 | 26 | |
网格 | 28 | |
点物体的绘制 | 29 | |
曲线绘制 | 31 | |
Rhino直线绘制 | 31 | |
Rhino曲线绘制 | 35 | |
其他封闭几何体 | 37 | |
第四章 2D编辑和NURBS深入理解 41
对nurbs曲线的深入理解 52
何谓nurbs 52
有理”和“无理” 52
均匀”和“非均匀” 60
曲线的“阶” 63
第五章 曲面构建 65
构建曲面 65
创建方形平面 68
绘制简单曲面 69
拉伸曲面 72
放样 75
扫琼 80
旋转命令 83
边界曲面、闭合线曲面、镶面的区别 84
第六章 曲面编辑 87
点的编辑 87
分割和修剪 94
曲线作为分割边界 94
曲面作为分割边界 95
还原分割和修剪 97
链接曲面 97
延伸曲面 97
曲面倒角 99
偏移工具 101
混接曲面 102
合并曲面 105
衔接曲面 106
几何学上的G0、G1和G2连续 109
第七章 Rhino实体和网格 112
基本几何体创建 112
实体工具 118
布尔运算 118
抽面工具 122
实体倒角 123
MESH对象 124
第八章 高级工具集 129
从物件建立曲线 129
曲线投影到曲面 130
从曲面提取边界线 133
从曲面提取轮廓线 133
从曲面提取UV线 133
生成相交线 133
生成等分线 134
生成剖面线 135
物件变动工具 136
处理物件空间位置的工具 136
特殊位置工具 143
套用 UV、沿曲面流动、沿曲线流动 143
定位至曲面 151
定位曲线至曲面边缘和定位垂直曲线 152
特殊变形工具 154
NURBS曲面理解 158
第九章 Rhino辅助工具 162
图层控制 162
物件属性 164
2D工具 166
标注工具 167
Make 2D 168
ArchCut插件工具应用 171
第十章 渲染 175
渲染相关知识 175
渲染分类 175
渲染特性 176
我们需要的静帧渲染 185
Rhino中的渲染 186
渲染前的准备 186
Rhino中的几种渲染器介绍 190
附表一 Rhino插件介绍 195
附表二 本次网络课程的课程表 196
前言
四年级上学期的时候,我周围一些同学提到希望能向我学习一些我在软 件运用上的经验,碍于当时专业课程的繁重和一些自身事情,对于这种请求 我多数情况下只是给与了零散和狭隘的知识或是拒绝了。我通常是告诉他们 “**软件或者**软件的**功能应该可以解决你的问题”,我发现这样做根本 不能帮助我的朋友们解决他们在软件方面的困惑,反而古怪繁复的软件名词 让他们更为摸不着头脑。恰好四年级的这个寒假没有其他打算,遂决定利用 这个机会总结和给大家分享一下我在软件运用方面获得的诸多经验,也算是 对自己的一个总结。
我选择了进行网络文字犀牛教学,将建模思维融入其中的方式,但最终 毕竟还是做成了一个普通无奇的犀牛入门教程。承蒙院学生会学习部的宣 传,很多学院的同学加入到了群里,从 NCF 网站群里也来了很多朋友。从教 程的构思到完成前前后后大约付出一个月时间,我最后整理课件的时候发现 自己竟然完成了接近四万字和四百多张图片,遂决定成册。
我很想将此书献给提醒我计算机运用和手绘都要注重的老师们,但小小 一本手册实在不敢写这类词句,因此我要在此感谢他们,我在前面的时间中 投入太多时间到自己的兴趣,而忽视了“手绘”这一作为一个建筑师最基本 尊严的素质,我会在后面的时间慢慢加以弥补。同时我要感谢陈辉学长代为 写序,感谢 NCF 网站群的朋友、shaper3d 网站参数化群的朋友、NCF 论坛、 等网站和网站的网友在此次教程中给与诸多帮助和便利、感谢 上海交大的东来-西往同学在制作这本电子书的过程给我诸多帮助。
希望本书能给你以帮助。
1 前言
第一章
我的建模观
这是本次犀牛课程的第一节课,但本课不会涉及任何关于犀牛建模的知 识,而且图片较少文字较多。但我个人认为今天所讲这个部分是我个人对于 建模知识储备中最为精华的部分----对建模观念的认识。
朋友们现在都很多困惑,我常常被问到这样的问题“我感觉自己在建模 上比别人落后,你认为学哪个建模软件比较容易做城市设计用什么软件建 模较好,高层呢。3D MAX 和 MAYA 哪个更适合建筑你认为 CATIA、PRO/E 能 用来进行建筑设计建模吗,它们是纯参数化的。
本课的这些知识,正是试图用我的个人经验为大家解决这些问题。而且 这部分知识也是我不会受周围人的言语左右,知道自己如何去选择需要软件 的基础,是我现在敢在课程设计中尝试一个全新软件的基础。真正的高手掌 握的是一种建模观念,好的建模思维对于所有的建模软件都是受用的,建模 到了越高的水平,就越不会受软件的限制。
本次课程会较多涉及个人对于建模和 rhino 使用的理解,而不是单纯的 建模技巧罗列,因此我选择使用文字作为载体进行讲解。本节课你会遇到较 多的专业名词,先不要深究这些名词的含义,只需要理解我给它们解释的含 义即可,建筑师不需要与那些古怪的计算机底层知识打交道,但也最好不要 被别人忽悠。这些知识是由欠入深,您肯定看得懂,而且之后您会有自己的 看法,应该不会被那些本来掌握软件就是是而非的人忽悠了。真正的高手在 我们这个阶段怕是还没有出现。
我前面说了这次教程不涉及价值观的改造,但有一点在此提醒下:这次 教程只是犀牛建模入门教程,我个人水平也很有限。我希望大家放弃速成高
3 第一章
对 RHINO 建模技巧有一定的掌握,而且肯定能用于帮助自己课程设计,但是 若是想真正精通建模,后面还有慢慢的路要走。下面的内容开始之前先推荐
一篇文章-----Teach Yourself Programming in Ten Years。
为什么选犀牛
先简要叙述下我的个人经历。 初中的时候我还不会语言,有一天,在电子科大的表哥打来电话告诉我
他正在在编程,我当时心想“编程啊,那可是多么牛 B 的事情。”,然后下去 读这方面书,听说了 C、Perl、Python、VB,觉得一个比一个牛 B。后来上高
中,我有幸遇到一位黑客同学,跟他学计算机语言,上课一起拿草稿纸写代
码,下课再拿去运行。三年下来,我虽然只学会了少数几言,但得益于那位 同学的点拨,我对计算机建立了良好的理解。再高级的程序也不过是极力去 模仿人类自己的思维逻辑,然后转换为计算机能够理解的机器语言,再由 CPU
翻译成 0 和 1。计算机只认识 0 和 1,人才是完成程序的主体。
高中时候,我爸一个在西南交大学建筑学的学生来我家在电脑上展示了 他的设计模型,在场之人都称赞他很牛 B,但那时的我已经不那么想了,当代 社会分工如此之细,没有多少行业需要特殊智力才能企及,我们会觉得他很 牛 B 那不过是因为我们和他知识结构不对称而已。
和大家一样接触 3D 软件也是在大学以后才开始,大二的幼儿园设计课 程,某天一位在墨尔本大学留学的同学放假时跑来给我们看了他们在墨尔本 大学建筑大学一年级的数字设计课程的成果。当然我也拷了一份:
图 B: 墨尔本大学建筑学院一年级的数字设计课程作品,吴量提供图片。
设计竟然可以这样做,而且个人在审美上也有这样的喜好,但就计算机 而言,大一一年我本来已经差不多完全放弃了我在高中的兴趣,现在又被这 哥们提起来了,当时问了他这是什么软件做的,他说:“Rhino”,这是我第一 次听说犀牛。
但犀牛适合辅助建筑设计么很遗憾,至少在当下国内设计行业的成熟 市场化流程中还看不到哪些单位用 Rhino 辅助设计的,除了像哈迪德广州歌 剧院这样的大项目她老人家点名要用到 Rhino 软件。
我后来又去查看了很多国外着名学院,去他们的 course 页面看他们在用 什么软件。(教育网的唯一好处就是访问 edu 域名非常快,不管这个学校在北 极还是在赤道。)整理出了如下一份表格:(这方面我能确定的信息很少,欢 迎补充和更正)。
哥伦比亚大学 | MAYA 必修课 |
香港大学 | Rhino 必修课 |
墨尔本大学 | Rhino 必修课 |
伦敦 AA | 学院 |
MIT | CORE 开放课程上的 MIT 建筑学 数字化课程几个最终作品都是 Rhino 做的 |
淡江大学 | 本科阶段有个设计 Studio 开 始 几 周 学 Rhino 和 Rhinoscript |
哥伦比亚大学 | MAYA 必修课 |
表 :各大学建筑学院软件学习情况。
毫无疑问,Rhino 在学院是非常受欢迎的,当初我也因为对那些异性建筑 形态着实兴趣选择了对 Rhino 下手。但我后来才发现 Rhino 建模非常方便, 入手很快,它的使用习惯和我们熟悉的 AUTOCAD 很类似,而且能帮助你建立
于渲染和最终效果表达。现在的 Rhino 已经有了 VRAY 等诸多渲染器,使用 Rhino 你可以完成从平面、建模和最终输出一套完整的流程。但 Autodesk 太
强大了,Rhino 之后的命运会如何我也说不清,而且现在商业市场上已经很少 有人给 Rhino 写教程赚钱了。个人觉得现在学 Rhino 即是您以后打算转到其 它 3D 平台也是不会亏。
3D 软件分类
三维软件市场发展越来越快,新软件也层出不穷,当我们听到一个从未 听到过的软件名字时,我们该怎么看待,现在你肯定不会不假思索的觉得它 一定是很牛 B 的人才使用了。
不同的软件是开发给不同的用途的,用 CG 标准的建模软件输出模型给制 造业肯定是造不出来的。我们先给软件分个类:我们所熟悉的 Photoshop、 Ai、Coredraw 等是属于 2D(平面)软件。SKETCHUP、AUTOCAD 是属于 3D 软 件。
就 3D 软件而言,我比较认同的分类是将其分为:CG 软件、CAD 软件、 CAID 软件、CAM 软件四种:
CG: 我们暂且定义为作为影视、动画、虚拟表现一类软件(其实它不是这样 定义的,但很不好解释,在我的这个分类中我们可以这样理解。),像我们的 建筑效果图就属于这个范畴。主要软件有:3DMAX、MAYA 等。
CAD:计算机辅助设计 AUTOCAD、ALIAS 等属于这3 类软件。 CAID:计算机辅助工业设计 主要有 Rhino、Solidthinking 等。
CAM:计算机辅助制造 主要有 PRO/E、CATIA 等,这些软件的模块是和机床 切割工具等相连,CAM 中的模型是直接用于产品及产品模具制造的。那个问我 学 PRO/E 建模如何的哥们,我直接反问他你想转行吗。
至于建筑领域比较新的 BIM 软件我倾向于也把其划分到 CAM 软件一类, 主要是它对内部模型的处理方式和 CAM 软件没有本质区别,后面我会讲到。 还有一点,Rhino 原本属于 CAID 软件,仅用于建模的,后来的版本增加了完 整的 layout,section,2D 标注等功能,Rhino 现在也属于 CAD 软件。
5 第一章
3D 领域还有其他分类以及在我上面这种分类模式下也不完善,譬如说还 有些 3D 模型是用计算机代码生成的。但我们接触比较多的也就是上面这些,
当个建筑师一辈子有几回会和 JAVA 什么的扯上关系,所以大家理解到这几点
就行了。
Polygon 与 Nurbs
但就模型描述方式来讲,主要有两种:polygon 和 nurbs。 它们有什么区别大家有必要理解,除非你以后不想和模型打交道。我
们先看看用 sketchup 和 Rhino 如何才能描述一个球:
图 :使用 SKETCHUP 建立球体。
我们用插件建立一个球,发现这个球是由很多三角面构成的,它实质上 是多面体而不是球。当表面划分越细时,它看起来越像一个球。
在犀牛中我们建立一个球体,出现了一个光滑没有瑕疵的圆,若我们打 开它的控制线,发现居然只有 3 个圆圈。
前者就是 polygon,polygon 就是由很多平面(主要是三角面)组成曲 面,以这种方式细分接近我们需要的曲面效果。Nurbs 天生就可以描述一个曲 面,至于为什么它能这样,这不是我们一开始就弄得懂的,就如我们在学习 语言时我们会遇到“面向对象”的概念,我们初学建筑学时会遇到“空间” 的概念,一开始我们无论如何也是搞不懂,需要在以后的学习中慢慢理解, 我后面会有专门对 nurbs 的理解章节,但那也是我目前的理解。
Nurbs 用于计算机领域是 1985 年才出现。波音公司召集了一大批科学家 只为了解决一个看似很简单的问题:如何用计算机描述一个圆。后来将数学 领域的 Nurbs 技术用过来才完美解决这个问题,后来我们在生活中才有了丰 富多彩的工业产品。
发散一下思维,我们使用的 Photoshop 中的钢笔工具就是 Nurbs 曲线, 想一下它是怎么“画”一根曲线的。
图 :Photoshop 中的钢笔工具。
我们前面提到的四类软件中, CG 软件是偏重于 polygon 建模的(MAYA、
3DMAX 也有 NURBS 功能,但仅作为附加功能),其他三类软件都是以 nurbs 为 基础的,Rhino 是第一个天生 NURBS 建模软件。CAID 和 CAM 软件的区别在于 实体核心和曲面核心,实体、曲面是指对模型内部数据的处理方式,实体核
心模型的每个面是有厚度的,曲面核心模型的面没有厚度。CAM 软件直接用于
工业制造,而客观世界的物体都是实体。前面提到的 BIM 类软件是以实体构 件为单位构建完整模型的,所以我将其划分到 CAM 类。
现在这个知识或许对我们有一些帮助了。我们某天在哥大网站上发现了 这样一张分析图:
图 :建筑模型,潘浩提供图片。
这是拿什么建模的呢,若这哥们若不是喜欢像我一样在 sketchup 里面建 了模型又导入到 rhino 里面欣赏欣赏的话,那么我们基本可以确定他应该是 用 MAYA 建模的了。
目前从 nurbs 导成 polygon 有非常完善的技术,但相反却很困难,所以 你希望在 sketchup 里面建好模型再到 rhino 里面修改是很难实现了。我有一 些经验关于两个软件之间的配合(后面章节会讲到),但不包括模型的互相编 辑。
渲染器都只认识 polygon 模型的,不认识 nurbs 模型。因此任何模型在 渲染时都需要处理成 polygon 模型。这样我们就需要把建模和渲染当成两个 事情来对待,不要受渲染器局限去选择你的建模工具,后者更为重要。我一 个兄弟在和我看电影时看到做得很逼真的航天飞船、变形金刚画面时总会打 趣地问我这是拿什么软件做的,光从渲染结果是很难判断模型如何制作的, 因为两者是两个独立生产线上的产品,况且现在这些软件技术都作为商业机 密很少被公开过。
最后一小部分,nurbs 在犀牛里叫做“曲面”(英文名 surface), polygon 在犀牛里面叫做“网格”(Mesh)。我这个教程中提到的“曲面”都是 指广义上的“曲面”,也就是任何一个完整的面,不管它的所有顶点是否在同 一个平面上,它都叫“曲面”,而不是形态学上的侠义“曲面”。
第一章 8
第二章
Rhino 界面
界面构成
打开您的 ,其默认的界面布局如下(标准工具栏上某些按钮您 可能没有,那是插件):
3
有过 3D 软件基础的话,Rhino 的这些功能区我们根据名字可以很快掌握 它们的作用,我简单介绍下:
菜单栏:您可以在此找到绝大部分的犀牛命令。
图 :犀牛菜单命令。
命令行和命令历史窗口:不同于 Autocad,它是位于软件界面上方,(个 人感觉更符合视觉习惯),同样类似于 Autocad,有很多命令参数您需要在命 令行窗口进行 选择。(Rhino 的命令参数分为鼠标选择和参数输入两种,后 面会遇到。)。
建模区:默认是 4 个视图窗口,双击某个视图标题它将放大,再双击一次它 将还原。关于视窗在后面会具体讲解。 状态栏:提供坐标、长度、当前图层和辅助选项等信息。
类似于我们习惯的 sketchup、autocad,Rhino 具有非常友好操作界面, 而且除了菜单栏,其他窗口都是可以被拉出来随意置放或者浮动的,对于界 面的定制一切可根据您的喜好来,譬如我们可以将界面摆成这样:(图 )
图 :自定义犀牛界面。
如何使用工具面板
Rhino 工具面板上有两类按钮:
如上图右边这种按钮右下角有小三角形,表示这个工具有一系列相关工 具集,我们鼠标左键或右键长按这个按钮可以将工具集浮动出来。
图 :长按按钮浮动工具集。
另外,左键单击和右键单击对于某些图标来说,其作用是不一样的,当 我们鼠标停在某个工具按钮上时,可以看到左键和右键的含义。要注意区
分。
图 :左键与右键按钮区别。
Rhino 默认工具面板只展示了一部分工具,您可以在工具栏空白处点击右 键打开隐藏的工具面板。
图 :打开 Rhino 隐藏面板。
自定义工具
在菜单栏选择:工具---工具列配置 。
3
图
如图选择新增工具列,我们可以得到一个空白工具列。
把按住 ctrl,鼠标光标指向工具按钮,我们就可以把这个工具拖进我们 的新工具集,这样我们就可以创建自己最常用的工具集,如图 :
图
Rhino 界面提供了最大可能性的定制,这都是为了方便用户按照自己习惯 配置自己的建模环境,我建议您在开始学习时还是按照 Rhino 默认的界面布 局和工具集配置来进行,它们都是被分类好的,而且此次教程也是以默认布 局和工具集为基础。
Rhino 视窗
Rhino 视窗是 Rhino 的主要建模区,是我们平时建模与之打交道最为频繁 的区域。
视窗基本操作
Rhino 默认四个视窗布局,分别顶视图(Top)、透视图(Perspective)、 正视图(Front)、右视图(Right)。
我们单击某个视图标签时,视图标签将高亮显示,表示这个绘图区被激 活。我们双击视图标签时,该视图将放大,再双击一次,返回四视图模式。
另外任何情况下左键单击标准工具栏上的,我们可以返回四视图模式。
在视图标签上点击右键,我们可以对这个视图进行最大限度的配置,设 置显示模式,视图模式,工作平面等,大家可以尝试改一下看视图内发生何 种改变。
图 :右键视图标签进行视图设置。
底部显示视图标签
我们在建模时常常会将透视区放到最大,但会经常在几个视图区进行转 换,连续进行双击的办法会不会太麻烦。我们可以将视图标签置于底部,方 便在几个视图之间进行切换。
打开标准工具栏上的视窗图标集(关于视窗的所有命令都在此),点击如
图
我们在命令行选择“显示“标签,如图 :
图
工作视窗下部就会增加一栏视窗标签,这样我们就可很方便的在各个视 图之间进行切换。
图 :建模区底部增加视窗标签。
视窗显示模式
现在,打开我们的 文件。
Rhino 提供了几种在建模时的显示模式:如图所示,其中前三种最为常 用。
图 :显示模式选择项。
Shade selected objects only 表示只对选择部分进行作色,其他部分线 框显示。Penguin 是在安装 Penguin 插件之后才有。
请尝试一下在选择这几种显示模式下模型视觉上发生的变化。
图 :Rhino 的几种显示模式。
线框模式:是所有 3D 软件都具有的显示模式,最为常用,占用系统资源最 小,但一旦场景复杂时表现力较差。
渲染模式:不显示线和点,可以场景预览灯光效果。
工作平面
每个工作视窗内都带有一个工作平面,您看到的场景格线就是工作平 面,任何在视窗内直接绘制的点和线都将处于该视窗的工作平面内,如图
:
图
如图 ,您可以在此对工作平面进行设置,但一般情况下我们不会更 改默认的工作平面,所以具体就不多讲了。只提醒一点:工作视窗的改变您 不能通过 ctrl+z 还原,需要使用图上命令 shift+home 还原。您可以试着对 比一下 CAD 的用户坐标系统。
图
工作平面中的格线也和场景单位有关,您可以在菜单栏的“工具”-- “选项”中设置场景单位和格线密度、大小。
图 :场景单位和格线设置。
Rhino 视窗还有很多自定义功能,如增加视窗,设置背景图像,这些功能 比较少用,在此就不多叙述了,还请大家下来对这些功能进行一一摸索。
观看物体
在标准工具栏内提供了完整的观看工具集。但这些工具只能使用一次, 非常麻烦,我们应该记住观看物体的快捷键。
图 :观看物体工具集。
旋转视图:鼠标右键。
平移:shift+ 鼠标右键、ctrl+alt+鼠标右键、键盘的↑↓←→件。 缩放:划动鼠标滚轮、Pagedown 和 Pageup、ctrl+鼠标右键、alt+鼠标右 键。
模型充满视图:ctrl+shift+e(和 sketchup 一样)。
另外比较常用的是窗选(zoom),但貌似没有特殊快捷键。 上面很多操作有好几种可能的方法,大家只需记住第一种最常用的即
可,很容易掌握,但记住别与我们的其他软件搞混了,譬如在 sketchup 中最
快捷键列表我传到了今天的课内文件包中。
图 :鼠标中键弹出对话框。
物体基本操作
选择物体
选择物体是建模的基本,虽然选择物体不是难事,但一旦模型复杂,如 何选择自己想要的物体,这是 Rhino 入门中面临的另一个操作问题。
①单一选择、增选、减选:
我们判别选择哪个物体。)
图 :选择 Rhino 物体。
按住 shift 我们可以增选,按住 ctrl 我们可以减选。
② 选择命令集
Rhino 提供了一个考虑到各种情况的选择命令集,位于标准工具栏上。
图 :选择工具集。
比较常用的按钮有:
反选(Invert):反向选择场景中物体。(但隐藏和锁定物体不被选择, 后面相同)
以图层选取:选择某图层上所有物体。
重曲面和网格。
:分别是选取当前场景中所有点物体、曲线、曲面、多
我的个人经验是当场景十分复杂时,这些选取操作配合可见性工具集
图 :可见性工具集。
将您需要的物体选择出来,隐藏和锁定工具集非常容易理解,这里就不 多讲了。
③ 物体属性 物体属性按钮位于标准工具栏上(Properties),物体属性按钮在犀
牛中如此常用以致于它被加入到了中键弹出的工具集内。
在物体属性栏您可以设置物件的材质、图层、材质、纹理映射等信息。
建模辅助设置
这一小节主要是针对状态栏内的一些设置讲解。类似于 AUTOCAD,Rhino
状态栏内给我们一系列帮助建模确定位置的选项。
图 :状态栏选项。
锁定格点、正交、物件琐点功能和效果和 AUTOCAD 十分类似,这儿只简 要叙述下:
锁定格点:锁定到格线上的顶点上。 正交:不必多解释,右键设置中您可以设置正交捕捉角度。
物件琐点:点击打开子工具栏可以看到 Rhino 有如下琐点方式。
图 :Rhino 中的辅助建模琐点方式。
平面模式:平面模式是一个相对概念,相对于之前的操作点的作用在于:当 您输入第一个操作点时,打开平面模式,再输入第二个操作点。第二个点将 保持与第一个点在平行于工作平面的同一平面内。
例如我们在透视图内输入第一个点为(1,1,1),输入第二个点时,若不打 开平面模式,其 Z 坐标默认为 0,打开平面模式,其 Z 坐标将默认为 1。
记录构建历史:上节课提到过 CAM 软件,CAM 软件都是纯参数化软件,参数化 的核心概念之一就是:模型的全程历史都可以被记录。Rhino 无法达到全程记 录的功能,但可以对部分命令和操作记录其历史,对于前面的更新,被记录 历史的步骤也会发生相应更新。
小节:今天的课程可能比较单调,但不可忽视,行成良好的操作习惯是 您以后进行良好建模的基础。
第三章
绘制2D物体
Rhino中的对象介绍
Rhino 中的对象包括点、点云、直线、曲线、闭合线、曲面、多重曲面、 实体、网格等。
我们可以将上面的对象分为四类,同一类对象的本质其实是一样的: 点物体(点、点云)
线物体(直线、曲线、闭合线)
曲面(曲面、多重曲面、实体) 网格
点物体
Rhino 关于点的命令位于主工具栏最上面一个图标。几乎所有的 3D 格式 支持点物体,譬如在 Autocad 中的点导入到犀牛中仍是做为点物体而存在。 在我们熟悉的 sketchup 中,点则是以辅助点而存在。
图 :Rhino 点物体工具集。
Rhino 中还存在另一种类型的“点”,曲线和曲面控制点,它不是这里所 指的点物体,而是属于 nurbs 曲线和曲面的属性,要注意区分。我们后面开 专题讲解。
线物体
Rhino 中的线物体分为直线(polyline)、曲线(curve)、封闭线(圆、 椭圆、多边形、文字)。
其命令的位置如图。
图 :Rhino 线物体相关命令位置。
直线(polyline):对比一下 Autocad 中的 PL 线,稍微不同的是,Rhino 中的
polyline 可以塑造空间折线。但 Autocad 中的不能。
曲线(curve):Rhino 中造型的最主要元素之一。它和直线在本质上都属于
nurbs 曲线,只是某些属性不同。
封闭线:封闭的 nurbs 曲线,封闭曲线和开放曲线在性质上有些不同,后面 我们遇到再说。
面物体
面物体可分为曲面(surface)、多重曲面(polysurface)(polysurface
曲面(surface):特指单个 nurbs 曲面,是 Rhino 中造型的最基本要素。
多重曲面(polysurface):指被链接,而且又不形成封闭空间的一组曲 面。Rhino 中的曲面如果至少有一条边相接,则它们可以被链接。
实体(solid):封闭的单个曲面(如球体)或者形成封闭空间的多重曲面可 称为实体。
图 :各种 Rhino 面物体举例。
当几个物体重合在一起时,我们尝试选择某个物体,Rhino 不会给出“实 体”的判别,只有“曲面”和“多重曲面”两种选项,因此实体的本质就是 以上两种物体。
网格
Rhino 中的网格(mesh)就是 polygon 对象,与它相关的命令在 Rhino 工 具栏如下位置:
图 :网络工具集位置。
网格对象也可以被链接,链接后的网格叫做“多重网格”,网格在 Rhino 中只是辅助的建模元素,它只提供了少数几种几何造型,要得到复杂的网格 需要从曲面转换而来。
图标即是曲面和网格的转换按钮(左键从曲面转换到网格,右键从 网格转换到曲面)。
点物体的绘制
在 3D 软件中,点的使用通常只是为了实现一些辅助功能,例如帮助您在 建模时确定位置,而且不能被渲染,一般的教程都会忽略这个部分。事实 上,我个人在使用 Rhino 建模时很难会用到点,因为 Rhino 在物件琐点的功 能上提供了全部我所需要的确定位置的功能。
点在 Rhino 中表现为一个小方格,而且大小无论怎样始终不变,点不会 属于任何其他物体的一部分。
图 :Rhino 中的点。
关于点的命令如下(图表 ):
图表 :点命令和相关用法。
29 第三章
时间不允许我一个一个详细讲解,对这些命令有疑问的请稍后提出,关 于点命令中需要注意的有以下几点。
1 绘制点时输入坐标有鼠标取值和键盘输入坐标取值两种方式。 鼠标取值: A:鼠标直接在屏幕上取值,得到的点将在工作平面上。
B:按住 CTRL 可进行两次取值,第一次取值 XY 坐标,第二次取 值 Z 坐标。
键盘取值:格式为:x,y,z(英文输入法的逗号隔开)
事实上请记住 CTRL 键的妙用,很多命令配合 CTRL 都可以在垂直于工作 平面上的坐标取值。例如移动,直接鼠标拖动等。
图 :使用 CTRL 键进行垂直工作平面取值。
2 最近点(ClosestPt):其实质是 0 距离点,即在所选物体上创建一个据鼠 标点击位置最近的点。物件琐点中的最近点也是如此涵义。
3 :左键表示建立曲线起点上的点,右键表示建立曲线终点上的点。曲 线的起点终点现在不必深究,它涉及到曲线内部的 kont 点编号,下节课对 nurbs 曲线的深入理解我们会讲。我们可以理解成在建立这根曲线时的顺序
4 点云(PointCloud):将多个点合并成一个对象,这样可以使模型变小。 Rhino 中的点云用于 3D 逆向工程非常有用,例如使用 3D 扫描仪器输入到 Rhino 中会以点云形式存在,RHINO 可以将点云转换为模型,最近有公司刚开 发出了一款名为 RhinoResurf 的插件可以很好的把点云转换为 Nurbs 模型。
曲线绘制
Rhino 可以绘制任何形状的线条。直线、多义线、圆弧、圆、椭圆、和自 由曲线。
Rhino 直线绘制
Rhino 中的直线命令如下:
图表 :直线绘制命令及用法。
光直线 Rhino 就提供了多达 17 个命令,常用的也就那么两三个,但考虑 到建模时可能遇到各种情况,这些命令的确可以帮助我们节省时间,简单说
四点绘制直线(FourPoint):前两点确定方向,后两点画直线。下面的 等分直线命令类似。
求两条直线垂线(2Curves):两条直线可能有多个垂线,所得垂线是据 鼠标点击最近处,求曲线切线也是如此。
您可以使用求两圆切线试一下。
图 :求两圆切线。
在 网 格 上 绘 制 多 义 线 ( PolylineOnMesh ) : 这 很 方 便 我 们 对 导 入 的
polygon 模型进行加工。
图 :在 MESH 面上直接绘制曲线。
我们现在使用这些命令来搭建一个小房子框架(今天有类似练习但更为 复杂的作业)
1 在顶视图视窗使用多义线(polyline)绘制工具绘制 6m*4m 的矩形
图
2 切换到透视图,打开物件琐点—端点,捕捉矩形顶点使用绘制工作平 面垂线(Vertical)工具绘制垂线。
图
3 连接这几个顶点,再用类似方法绘制出门和窗,一个房子框架就完成 了。
图
Rhino 曲线绘制
Rhino 曲线相关命令如下:
图表 :曲线绘制命令及用法。
说明:
①绘制 CP 曲线(Curve):CP 点是影响曲线造型的点,这种曲线建立方式 是 nurbs 曲线的最常用命令。
②绘制 EP 曲线(interpCrv):直接绘制曲线的内插点,是影响 nurbs 造 型的主要因素。
③控制杆曲线(HandleCurve):其造型方式和我们 Photoshop 上的钢笔 工具一样,很好理解。
这三个工具应该是我们曲线造型的最主要工具。我们发现使用绘制 CV 曲 线命令非常难以控制,而使用 EP 却能很好控制曲线走向。他们有什么内在区
别,为何我说 CV 曲线是 nurbs 曲线造型的最常用命令,我们明天会深入分析
nurbs 曲线的内在特征。
④在曲面上绘制 EP 曲线(InterpcrvOnSrf):在曲面上绘制内插点曲 线,得到的曲线是处于曲面上的曲线,这个工具也非常常用。
图 :在曲面上直接绘制曲线。
⑤:绘制圆锥曲线、抛物线、双曲线:这几个命令绘制的都是数学意义上 的二次曲线。也请大家今天下去简单回忆一下高中数学学到的常见曲线方 程,曲率,和曲线“阶”的知识,明天上课会遇到这些知识。简单回忆下, 不必深究。
⑥ :绘制螺旋线,前者螺旋首尾等半径。后者螺旋首尾可半径不等。
第三章 36
图 :螺旋线命令绘制的螺旋体(配合 PIPE 命令)。
关于曲线的命令就讲到此。对曲线的应用时 rhino 建模的核心之一,请 大家在今天的练习和以后的使用中逐渐体会。
其他封闭几何形体
关于圆的命令如下:
图表 :圆的绘制命令及用法。
命令说明:
①:这个命令就是在曲线上所 选点的法线平面的圆。
图 :建立曲线上点法线平面圆。
第三章 38
② :这个命令有多种参数配合生成一个三 阶圆。
图 :三阶圆建立设置参数。
三阶圆
图
圆怎么可能是三阶的呢,它实际上不是一个数学意义上的圆,明天的第 二小节我们就从它开刀来深入理解 nurbs。
其它几何体命令
图表 :其他曲线的绘制命令及用法。
命令使用很简单,就不多讲了。
另外 RHINO 支持文字输入,可以转换为三种对象:曲线、曲面、实 体,非常简单,也不多讲了。
图 :Rhino 建立的曲线文字。
第三章 40
第四章
2D编辑
上节课我们知道了建立曲线的命令,使用这些命令我们可以建立任何形 状的曲线,数学意义上的或者单纯视觉造型意义上的。
事实上,在犀牛中,很多时候的曲线造型不是第一次通过曲线工具生成 的。很多时候是通过各种曲线编辑工具调整和修改出来。
今天我们来学习各种曲线编辑工具的运用,同时今天的重点在第二小节 对于 nurbs 曲线的理解,理解到了 nurbs 曲线的内在原理,任何造型对您来 说都将不成问题了。
曲线编辑
曲线的分割和修剪
分割和修剪工具位于主工具栏的如下(图 )位置。分割和修建工具不 仅适用于曲线,而且适用于曲面。
图 :分割和修建命令位置。
分割和修剪对于曲线和曲面产生的意义是不一样的: 被分割和修剪的曲面其实质是被“隐藏”。
但被分割和修剪的曲线其实质是被“抹掉”。
理解到这点可以帮助您在日后建模中避免许多错误。 例如我们把一个曲面用一条直线分成两部分(图 ):
注意!
图
我们再分别重建这两个曲面。在重建时取消重新修剪。
图
图
现在可以理解到了吧,被分割的曲面实质上是被复制一份出来,然后隐 藏掉另外那一部分。
您现在不必进行这些操作,关于曲面部分我们还没讲,但对于分割和修 剪工具的实际意义您可以提前理解到这一点。
我们来看如何分割曲线:
我 们 只 想 保 留 图 圆 内 部 的 曲 线 部 分 , 我 们 点 击 修 剪 工 具
(Split),然后选取分割用物体,也就是两根曲线
图 :选取分割用的两根曲线。
再选取切割用物件,也就是圆,按 ENTER,这样这根曲线就被分割开来 了。
图
45 第四章
修剪工具 (Trim)用法我就不讲一遍了,与分割不同的是,它是先 选取切割用物件,再点击需要被修建的部分,您现在可以尝试一下。
编辑曲线上的点
前面我们简单了解了下曲线上有两种点,控制点(CV 点),编辑点(EP 点)。
工具栏上的这两个工具(图 )可以打开曲线的这些“点”:
图
如图 ,我们看到 CV 点有些处于曲线上,有些处于曲线外。EP 点则都 处于曲线上。
图 :曲线上的 CV 点和 EP 点。
我们只要拖动这些点就可以改变曲线的造型。 另外我们可以给曲线增加一个 CV 点或者 EP 点,相关命令集打开这里可
以看到。
大家现在有了许多教程,这些操作也很简单,我就不多讲了。
图 :点的编辑命令集。
曲线编辑工具
曲线编辑工具相关的命令在工具栏的如下位置(图 ):
图
其中比较常用到的命令有下面这些:
①延伸曲线:和我们一般见到的延伸曲线有些不同, Rhino 的延伸出曲线可以有很多多样性,它能在曲线后画出曲线、直线、圆 弧。
延伸部分是和原曲线结合在一起的,如图 。
图
②结合曲线:昨天我收到两份字母表作业,他们完成的字母表都花了 100 多 根曲线才完成 26 个字母,实际上最简只需要 38 根。
图 :最简字母表曲线。
很多时候我们需要将很多曲线合并成一根曲线,譬如使用拉伸、sweep 等 命令时,我们只能追踪一根曲线。有以下方法
A 端点相接的曲线可以直接使用结合(join)命令衔接
B 衔接曲线(blendcrv):可以结合端点不相接的两根曲线,接合据鼠标 点击位置最佳的两个端点。衔接方法需要自己定义,通常会改变某根曲线的
位置。
图 :衔接曲线及选项。
C 混接曲线(match):混接曲线在两个端点未相接的曲线中间生成第三 根曲线与它们都相切。再配合 join 可以获得一根曲线,注意它和衔接得到的 效果是不一样的。
图 :使用混接曲线命令生成第三根曲线。
③ 曲线倒角:前者是导圆角,后者导斜角,在命令行里设置参数。 这个命令我们在 AUTOCAD 里太熟悉太常用。不同的是,Rhino 中的导圆角只能
针对两根曲线,不能针对一根曲线(AUTOCAD 有些情况下就可以)。而且 Rhino 中的倒角可以组合曲线,使用任何一个命令时,您都该注意它的参数。
图 :曲线倒角命令参数。
④偏移曲线(Offset):Rhino 中的偏移工具非常直观,譬如它可以动态 的给您显示最终效果。
图 :偏移曲线动态显示。
使用 offset 时,输入 T 参数,就可以手动控制偏移量,而且它会自动修 剪多余部分。
⑤ 曲 线 工 具 中 还 有 其 他 一 些 比 较 常 用 的 工 具 , 例 如 截 断 曲 线
(DeleteSubCrv)、重建曲线(Rebuild)、简化曲线等,它们的使用 方法非常简单。这里就不多讲了。
小节一下:在上面这些命令中,混接(blend)和衔接(match)在曲面 您也会遇到,是 Rhino 中非常重要的两个概念,这需要您在使用中注意理
解。
毫不夸张的说:到了后期复杂建模时,关于两者如何使用的博弈直接关 系到您模型的好坏。
对nurbs曲线的深入理解
好了,到了今天的重点小节,本节比较难而且比较理论,请做好笔记以 便复习。
何谓 nurbs
Nurbs 的中文全名叫:非均匀有理 B 样条曲线。
前面提到过 Photo 中的钢笔工具就是 B 样条曲线,B 样条曲线属于 nurbs
曲线。
不要奇怪上面那句话,B 样条曲线实际上是非均匀有理 B 样条曲线的子 集 “非均匀”和“有理”是附加在原始 B 样条曲线上的两个扩展属性,而不 是对其限定。
那么什么是非均匀有理反之则是均匀无理。Rhino 实际上可以表示“非 均匀”“均匀”和“有理”“无理”搭配的任意一种组合的曲线。例如“均匀 有理”“非均匀无理”…..
Rhino 中的 NURBS 有四个控制属性 CV(控制点),EP(内插点),knot
(节),degree(阶 。
有理”和“无理”
从昨天看到的那个奇怪的三阶圆开始:
看图 ,左边的圆是用第一圆建立工具得到的,右边的圆是昨天看到 的三阶圆。我们打开它们的 CV 控制点,发现它们的 CV 点分布明显有区别。
图 :正常圆与三阶圆。
昨天我说了右边这个圆是一个假圆,我们如何来证明:
我们先打开 rhino 的分析工具集。我们高中学过圆的任意一点曲率半径 都等于其半径。
53 第四章
图 :打开分析工具集。
我们选取分析工具中的这个工具: (曲率半径),我们在左边和右边 那个圆上分别试一下,发现左边那个每个点上曲率半径始终不变,右边那个
圆曲率半径发生改变。如图 。
图 :检测圆上曲率半径。
我们还可以使用另一个工具更加一目了然。(开启曲率图形),这个 工具的含义表示:通过白色曲线距离原始曲线的距离差来标示曲率变化。
左边这个曲率图形无论放到多大,它都是一根光滑的曲线,右边则在某 些位置发生了突变。
图 :放大曲率图形。
因此,右边这个圆它只是一个近似圆,而不是真正的圆。 我们再来深入检查一下这两个圆的区别。
我们保持两个圆的 CV 点开启。(图 )
55 第四章
图
我们使用这个工具来检查,每个点的“权重”值,权重是何物,先不要管。
图 :检测点权重工具。
第一个圆:
57 第四章
第一个圆,圆外的 CV 点权重为 ,圆上的 CV 点权重为 ,别 管这个数是啥意思,我们和它八竿子打不着关系。
我们再来检查第二个圆:
图 :第二个圆上的 CV 点权重。
我们发现每个点的权重都是
我们再在命令行输入 what 命令检查一下右边那个个圆的属性
控制点:非有理,那么“有理”这个定义是相对于 CV 点而言。我们再用
这个工具更改第二个圆某个点的权值。
图 :更改第二个圆上点的权值。
再次 what 检查其属性。
这个“圆”变成了有理曲线!!
OK,我可以下定义了:
对于 NURBS 而言,CV 点权重不同的曲线就是有理曲线,CV 点权重相同的 曲线就是无理曲线。
现在我们回头来看看什么是“权重”:
很好理解 “权重”就像 CV 点对曲线的引力,当 CV 点的权重越大时,那 它对曲线的吸引能力也越大,通过这个属性来改变曲线的形状。(CV 点权重的 作用实质是在 Knot 节点上,我们后面会讲到。)
图 :权重犹如 CV 点对曲线的吸引能力。
有理性实际上是对无理的一种扩展,通过附加 CV 点的权重值,让 nurbs
曲线有更丰富的造型能力。
均匀”和“非均匀”
再来看何谓非均匀。如图 ,我们使用建立曲线的第一个命令和第二个 命令分别建立一根曲线。
图
用 what 命令看看他们的属性: 第一根曲线:
第四章 60
第二根曲线:
图
第一根曲线是均匀的,而第二根曲线是非均匀的。 这里先要提到前面的一个概念,Knot,knot 中文翻译为“节”,是个数据
而不是点。Knot 赋值于 Knot 点之间。下文我们就简称 Knot 为节点。
注意节点并不是 EP(内插)点,在 Rhino 中我们无法打开节点进行拖 动,但可以捕捉到它的位置,而且 Rhino 可以增加和减少节点。
图 :打开节点捕捉和显示 EP 点,发现他们并不重合。
我们使用分割工具的 P 参数捕捉两条曲线节点,将他们分割。
图 :捕捉节点分割曲线。
我们的第一根曲线和第二根曲线都由三节构成,我们分别使用 what 命令 检查每根小曲线。
上面的曲线:
图 A/B/C:上面曲线每小段的属性。
下面的曲线:
大家看看红色框里面的曲线定义域,knot 赋值的实际含义就是节点之间 的定义域赋值。
Kont 不是一个数,比如说 0 到 1 就是它的值。 上面的曲线有四个节点,分成三段,每个节点之间的 kont 赋值是均匀
的,因此它是均匀曲线,下面的直线 knot 赋值是不均匀的,因此它是不均匀
曲线。
OK,我又下定义了:
在 nurbs 中,一条曲线在其定义域内,knot 赋值是均匀的,那么这根曲 线是均匀直线;kont 赋值若是不均匀的,那么这根曲线是不均匀曲线。
再次提醒下前面提到的一点,CV 点的权重是影响节点的位置从而影响曲 线的造型,现在您能理解了吧。
同理,不均匀是对均匀的一种扩展,可以看做它的父集。
曲线的“阶”
前面提到了 nurbs 曲线有四种属性“CV”、“EP”、“knot”和“degree” 前三种都讲了,我们来看看什么是曲线的 degree。
Degree 很好理解,它就是曲线方程的指数。我们在 Rhino 中建立圆、抛 物线、双曲线等,我们在中学几何学过它们的函数方程,例如圆是 r2=x2+y
2。那么圆曲线就是二阶的。
如图 我们可以通过重建曲线命令得到该曲线的“阶”。
一般来说 “阶”越高,那么得到的曲线就越光滑。如图 ,黑线、紫 线和红线分别是 CV 点分布相同的一阶、三阶、五阶曲线。
图
我们使用的 Rhino 默认建立的 CV 和 EP 曲线都是是三阶的。对于建筑学 的造型我们完全不需要更改,工业建模譬如汽车 A 级曲面建模它要求曲面的 连续性,使用的曲线要达到五阶、七阶甚至更高。
Rhino 现在的版本最高支持 11 阶,据说 Rhino 核心支持 42 阶,解 42 次 方程那是什么概念,恐怕要到个人计算机 256 核时代才敢发放出来。 刚才我们讲了 CV 权重和 knot 赋值的属性,早期的 3D 建模程序没有这两个 值,描述一个 N+1 CV 点的曲线需要 N 阶。
据此推算那么描述一个有 30 个 CV 点的曲线,需要将曲线的“阶”调到
29,解 29 次方程,早期的计算机根本没法解决。
而 nurbs 技术由于 CV 权重和 knot 赋值的存在,低阶曲线也可以进行任 何丰富的造型,我建议您在一般情况下就使用 3 阶曲线,通过扩展 CV 点来进 行细致造型。
Rhino 的确是一个非常好的建模工具,只要您理解到了它。 今天的课就讲到这里,我上传了一些 nurbs 资料到今天的课内附件中,
有英文论文,还有关于 nurbs 算法的,有兴趣就看,没兴趣就不纠结了。今
天的课比较理论,对您建模也不见得马上又很大的帮助,若是没有很好理 解,您可以记下今天的内容,以后再慢慢理解。
第五章
曲面构建
上到第五次课,我们终于开始接触 Rhino 真正的建模部分了。一般的 建模教程可能一开始就会让你接触基本几何体造型,但 Rhino 是 Nurbs 核心 的建模工具。昨天的课我们理解到了曲线的构成原理,现在再来理解 Nurbs 曲面就很容易了,Nurbs 曲面实际上就是两个方向上的曲线组合。具体秘密我 们后面再看,磨刀不误砍柴工,今天我们来学习 Rhino 中曲面相关的命令。
构建曲面
Rhino 中构建曲面的命令集在主工具栏的如下位置(图 ):
图 :曲面构建工具集。
Rhino 拥有几乎所有您能想到的曲面构建方法,还有些是我迄今发现唯有 Rhino 独有的,例如产生帘布曲面,沿路径旋转成曲面等等。这些命令的主要 功能如下:
图表 :曲面工具集及功能。
Rhino 是以曲面为核心的 3D 造型软件,上面列出来的这些命令几乎都很 重要,而且都很强大,您以前需要在 SKETCHUP 中很多复杂操作才能做出来的 形态在 Rhino 中往往一两步就可以完成。
但从 Sketchup 这种以 polygon 为核心的建模软件转换到 Rhino 这种以 Nurbs 为核心的建模软件您可能还是需要一个建模思维上的转换,请在我讲解 这些工具的应用和自己下来练习时逐渐体会这一点。
我今天要讲到的曲面建立命令主要有以下这些:
67 第五章
绘制平面 绘制简单曲面 拉伸出曲面
放样
扫琼 旋转 镶面、边界曲面、闭合线曲面的区别
创建方形平面
尽管这个命令很简单,但作为建筑学建模它恐怕是最常用的。 相关命令及主要功能如下:
图表 :创建方形平面工具集及功能。
这些命令非常简单,注意创建这类平面时我们可以选择参数 D,创建出的 这类平面可以利用 CV 点进行造型。
图 :创建平面选择可塑参数。
我们单击(plane)命令,选择参数 D,可以调节 U 和 V 两个方向上 的节点数。我们可以使用打开 CV 点命令打开曲面的 CV 点阵对平面表面进行 造型(图 ):
绘制简单曲面
①三点或四点创建曲面:点击工具(SrfPt),在建模区选择 3 点或者 4 点可创建一个曲面。(选点方式和建立一个点一样:键盘输入、鼠标一次、鼠 标+CTRL 两次。)
图 :三点或四点建立曲面。
②选择曲线建立曲面(EdgeSrf):选择 2 条、3 条或者 4 条曲线建立一个 曲面。注意这个命令中曲线可以是不封闭的。
69 第五章
图 A/B:封闭和不封闭曲线建立曲面。
③封闭曲线构建曲面 (PlanarSrf):这个功能可以构建由曲线组合形成 的封闭空间,因此我们使用它来开洞很容易。例如下面这个表皮的生成:
图 A/B:使用 PlanarSrf 进行开洞。
patch 却不那么好用,在构造未封闭曲线时还会超出边界:
图 A/B:未封闭曲线进行 PATCH 构建曲面超出边界。
Rhino 中的 PATCH 命令相对简单,而且和上面其他工具貌似有重复之嫌
(其实不是,后面会讲到它们的区别)。但这毫不成为 Rhino 的瑕疵,因为 Rhino 还有很多强大的工具就在后面。
拉伸曲面
当您有了曲线生成曲面的建模思维时,拉伸(Extrude)也许会成为您最 常用的建模功能,拉伸相关的工具集及功能讲解如下:
图表 :拉伸曲面工具集及功能。
①沿工作平面垂线拉伸(ExtrudeCrv):最基本的拉伸方式,如果您有了 平面图,你可以快速的利用这个工具把平面给立起来。
图 :拉伸方形曲线。
②沿曲线拉伸 (ExtrudeCrvAlongCrv):沿着一条曲线的路径拉升所选曲 线。
图 :沿曲线拉伸方形曲线。
③拉出到一个点(ExtrudeCrvToPoint):。将曲线拉伸到一个点,例如我 们用此命令快速建立一个金字塔(图 A/B):
图
④拉出成锥状(ExtrudeCrvTapered):这个命令的特色在于它的参数, 你可以调节拔模角度为负数那么它可以是一个倒锥状(不能为 0),而且可以 更改 O 参数为圆角。
图 :拉出锥状。
图 :沿锥状拉出,拔模角度为负数。
放样
放样(LOFT)的功能是穿过一系列连续的曲线形成曲面,这是一个 很牛的工具。我记得在上学期高层开始的时候,王琦老师第一次讲大课时说 道:犀牛中有一个命令,可以一下子把圆形和方形连接起来,他说的这个工 具就是 LOFT。
我们先来尝试这个例子:我们先建立一个圆形和方形闭合曲线(图
)。
在点击 LOFT 之后,Rhino 会让我们选择上下连接的基准点。若是偏一下 我们还可以得到扭曲的效果。
图 :LOFT 命令改变放样基准点。
放样的弹出选项里有很多选项,利用预览键,您可以看到这些选项会在 模型中发生何种变化。
图 :放样选项。
第五章 76
简要介绍一下 :
松弛模式:这个模式允许曲面离开原始曲线,以生成比较平滑的曲面。 紧绷模式:LOFT 曲面将更加紧贴原始曲线。 平直区段模式:可以在相邻两条曲线之间产生直的过渡。 可展开的模式:建立的曲面在某个方向上完全是直的,这个命令一般脱离需 要很少用到。
重建点:重建上下两根曲线的 CV 点数
有了 LOFT 这个工具我们可以做一些有趣的东西了。以前可能您想破脑袋 也想不出要是在 sketchup 中如何建立梦露大厦这样的形态。
图 :梦露大厦,下载自 GOOGLE IMAGE。
我们仔细看看它实际上就是一个基准平面不断旋转得到。 OK,我们现在 Rhino 中建立一系列垂直方向上的椭圆(25 层)。使用
(Rotate)旋转工具把每层依次旋转 10°。如图 :
图
点 LOFT 工具,然后依次从下往上选取每个截面。(也可依次从下往上, 放样的顺序就是鼠标点击对象的顺序)。
再点击回车,这样梦露大厦的表皮就完成了。我们再简单的建出每层, 这个大厦就初见雏形了。使用参数化工具这类形态有更快捷的做法,但参数 化工具是代替的大量的重复操作,对它们的使用仍然是建立在对单个工具的 理解之上的。
图 :最后效果。
有人会问中间的结构栅格如何生成那要用到后面的工具,我们遇到再 说。
扫琼
扫琼工具有两个,单轨扫琼和双轨扫琼,它们也非常强大。我们来看看 其用法:
①单轨扫琼(sweep1):其实它也是一种放样形式。让一根曲线扫过另一 根曲线形成曲面。
有人会问那它和沿曲线拉伸出曲面有何区别请看下面一个例子:
图
如图 ,第一个是使用单轨扫琼得到的模型,第二个使用曲线拉伸。 现在您可以理解到了,单轨扫琼这个命令可以让断面曲线“绕路径曲线
旋转”,其实质是断面曲线与路径曲线切线的角度保持不变。
而沿曲线拉伸,被拉伸曲线不会发生自旋转。请大家理解到这两根命令 的差别。
另外,单轨扫琼不仅仅这么简单。它还支持类似 LOFT 的很多断面扫过一 根路径曲线。如图 :
图 :需要扫琼的曲线和截面。
点击 sweep1 命令,先选取路径,我们再依次选取从上到下的三个截面。 这玩意就神奇的生成了(图 )。
②双轨扫琼 (SWEEP2):sweep2 命令提供了两个扫琼路径可以生产更加复 杂的曲面。
我们来建立一个异型高层建筑。
建立如图 所示曲线,两个垂直方向上的曲线即是我们的扫琼路径。
图
点击 sweep2 命令,先选择扫琼路径,再依次从下往上选择三根断面曲 线。得到图 的模型。
旋转命令
旋转命令(Revolve):您可以使用旋转命令很容易得到数学意义上 的旋转对称几何体。例如像福斯特瑞士再保险大厦这种子弹形态,用这个命 令可以很快生成。
建立图 断面曲线,点击旋转命令,再确定旋转轴。
图
您可以手动控制角度,或者在命令行输入旋转角度,我们填入 360°:这 个“子弹”就建好了(图 )。
83 第五章
图
边界曲面、闭合线曲面、镶面的区别
我们来看看这三个很近似的命令,我们该怎么用它们 我这里有三根形成封闭的曲线(图 ),每根曲线上有 20 个 CV 点
图
我们分别使用边界曲面,闭合线曲面、镶面来建立平面。
图 :使用三种命令分别建立曲面。
图 :镶面弹出选项面板。
我们看到三个命令建立出来的曲面其 ISO 分布明显不一样,镶面时会给 出一个选项,我们再分别按它们原来的 UV 点个数个阶数重建曲面,并且取消 修剪,得到下图 :
现在可以理解到了:使用边界曲面命令我们得到的是完整的曲面,而后 面两个命令都是被修建的曲面。修剪曲面和完整曲面在属性和功能上是有差
别的。下节课我们会讲到。
后面两个命令有什么区别呢:
如图 ,我们让曲线不在同一个平面上。这时发现封闭线曲面命令无 效。镶面可以,但仍然是修剪的曲面。
图 好了我们总结一下以上几个命令:
边界曲面:构建完整曲面,但 UV 分布和复杂度由原始曲线决定。 闭合线曲面:曲线必须封闭而且处于同一平面,这个命令通常用来开 洞,类似于它的图标。
镶面:若曲线组封闭,得到被修建曲面,若曲线组未封闭,得到未修剪 曲面。曲面 UV 分布和复杂度可以手动控制。
关于构建曲面的命令就讲到此。后面还有两个命令产生帘布和图像灰阶 曲面我就不讲了。但图像灰阶曲面在参数化工具 grasshopper 中比较常用,
第六章
曲面编辑
昨天讲了 Rhino 的曲面生成功能,Rhino 真正强大的部分是在它对曲面的 修改功能。可以说任何模型都不是靠一次性生成的,一个复杂完整性的场景 模型是对初始造型的不断修改和细化出来的。
Rhino 提供了很多编辑、修改曲面的功能,我平时爱好玩各种各样的软 件,就对曲面的修改来说,Rhino 是我见过的三维软件中最为强大的,它几乎 涵盖了其它 NURBS 软件的所有功能。下面我们就来学习 Rhino 中的这一部分 精髓。
点的编辑
前面已经讲过曲线上的属性点。对于曲面而言,在 Rhino 中您只能打开 CV 点进行控制,这种类似用手捏橡皮泥的建模手法可以给我们提供很多灵 感,譬如在设计初期的造型推敲。
我们来看看 Rhino LEVEL1 培训教程上的一个例子:用 Rhino 建一个鸭 子。
我们先建立两个基本型,分别作为鸭子的躯体和头部。
图 :建立鸭子基本型。
我们打开这两个球体的 CV 点,发现 CV 点权重不同,它们是有理的,曲 线上的理论在这里仍然适用,这样的曲面在变形时也不好控制,我们重建球 体,先把它变做假球。
选中两个球体,点击 重建曲面,重建选项如图 :
图
重建之后,这两个球体的结构线发生变化,CV 点分布也变得均匀。
好,现在我们逐步来拖动曲面 CV 点进行变形。
图
先锁定头,变化身体。保持正交打开我们能更容易控制,在 2D 投影视图 内进行,然后框选 CV 点,这可以保证我们进行对称的变化。
图
身体差不多了,我们来调整头的形状。
图 A/B:拉动“点”进行造型。
好,时间关系,我就不把它做得很像了,我们现在把鸭子的嘴剪切出 来,转到侧视图,建立如图曲线。
图
我们使用spilit,分割命令,在侧视图内进行分割,分割方法和曲 线分割类似。这样鸭子的嘴唇就被分离出来。
我们再次使用分割和 blend 命令建立鸭子的颈项,再使用椭圆球体建立 鸭子的眼睛,这样一个鸭子模型就差不多完成了。
图 A/B:再完善造型完成鸭子模型。
您一定很很惊奇这种建模方式,关于控制点的运用在 Rhino 中也是一个 很值得探讨的问题,CV 点直接和 NURBS 的底层属性相连,因此您也需要在理 解到 NURBS 之后才能将控制点运用的境界提高一个层次,Rhino 中还有很多关 于控制点的命令,我就不多叙述了,您下来自己尝试一下,说不定又更多惊
分割和修剪
刚才那个鸭子的例子中我们已经接触了一下分割。现在我们来看看曲线 的分割和修剪。(和讲解曲线分割修剪一样,两个命令我只讲其中一个)
曲线作为分割边界
曲线作为曲面的分割边界,曲线不需要在曲面上,但记住这一点:曲线 对曲面的分割是以工作平面投影线为分割基础的。
来看这个例子:
图 :要分割的球体和曲线。
我们在 TOP 视图下选择曲线对曲面进行分割,如图 :
我们在 RIGHT 视图下对曲面进行分割,如图 :
图
看了这个例子,您应该很明白曲线对曲面进行分割是何样一种运作原理 了。
曲面作为分割边界
若是曲面和曲面进行分割,曲面之间必须相交,并且相交部分能够将被 分割曲面“割开”,否则,您也不能进行分割。
举个例子,如图 :
图 :曲面作为分割物的条件。
图 :分割效果。
还原分割和修剪
前面已经讲过,曲面分割和修剪的实质是隐藏,在任何时候您都可以使 用取消分割(untrim)(右键)来恢复被分割和修剪的对象。执行此命令 之后选择被修剪对象的边缘即可。
关于修剪,它和分割实质是一样的,我就不多讲了
链接曲面
链接曲面使用链接(join)命令。链接命令可以把拥有公共边界或 者“边界相距很近”的曲面对象结合成一个对象。被链接的曲面组叫做“多 重曲面”。很多人就认为这个命令其实就是一种编组的命令。
其实不然,我们知道 Rhino 在渲染时会将 NURBS 转换为 polygon, polygon 对象不可能像 nurbs 一样具有天生描述曲面的功能。所以在曲面转化 为多边形的过程中,两个相邻本来紧贴的曲面可能出现“漏光”的情况。若 是这两个曲面被结合成了多重曲面,那么 Rhino 在转换时会将它处理成一个 对象。不会出现“漏光”情况。
所以我建议您在渲染之前尽量链接模型中能够链接的面。 这个命令的反命令为“炸开”(Explode)。
延伸曲面
下面讲到的这几个命令都在曲面工具集里,图 :
图
①延伸曲面(ExtendSrf):延伸曲面和延伸曲线不同,它不能将曲面延 伸至某个对象。
用法:点击这个命令后选择需要延伸的曲面边缘,延伸类型有直线延伸 和平滑延伸两种。
图 :延伸曲面参数。
然后在命令行输入延伸长度或者鼠标点击选择长度。
图 :鼠标指定延伸曲面长度。
曲面倒角
曲面倒角:和曲线倒角一样,分倒圆角和倒斜角两种。 我们后面还会遇到一个倒角命令:实体倒角。实体倒角在建模时
往往比曲面倒角更为好用,这个点到为止,我们看看曲面倒角的用法。
曲面倒角只能针对两个曲面的倒角。倒角的位置是由鼠标确定的,我们 来看下面这个例子:
我们建立一组这样的曲面,我们使用倒角命令分别用鼠标点击字母标示 的位置,看看有什么样的结果:
图 A/B:曲面倒角实例。
OK,倒角结果一目了然。您还注意一下倒角的命令参数,您可以选择是 否修剪和是否延伸等参数。
倒角不仅适用于开放曲面之间,它还适用于闭合曲面之间,例如球体:
偏移工具
偏移工具(offsetsrf):我们以后将经常用到这个功能,例如 将墙面生成厚度。
偏移工具可以针对大量曲面同时进行,如图 我建立了每层平面生成 楼板层:
图
使用这个命令之后出现的白色箭头是偏移方向,偏移方向是按照曲面的 法线进行的,您可以点击曲面翻转偏移方向。
图 :偏移参数。
选择参数 s 可以使生成结果为实体,如图 。
图 :最后偏移效果。
混接曲面
混接曲面(blendsrf):非常强大,它可以在两个曲面产生一个过渡 曲面。我们看到的汽车等工业产品模型,它的整个身体怎么可能只是一块面 呢很多时候这些模型都是由若干曲面组合起来的。其思维大多数是先建立 关键曲面,再把这些曲面连起来。混接曲面在其中用得最多。
我们来看它的用法:
我建立了如图 两个曲面,我们我们现在来试试混接命令。
图
如图 点击混接命令,先鼠标选择边界 A 处,点空格,再选择边界 B 处,点击空格。
103 第六章
图
弹出的选项我们可以控制滑竿来调节原始曲面在转折处对混接曲面的影 响力度。这个我们也可以手动拉动曲线 CV 点控制。
图 :弹出混接选项。
最终生成如图 混接曲面:
我们再次依次点击 AC 处边界点(图 ),连接边界发生了变化。
图
混接曲面命令在两个曲面之间生成混合表面时,需要统一闭合边结合点 的方向,这不能由程序自动判断,而是通过判断据鼠标点击位置最近的边界 点。我们第一次混接是正常的,第二次封闭边结合点的位置虽然相同,但方 向相反,所以混合曲面发生了翻转现象。我第一次用它时也出现错误而纳闷 儿了一会儿。
合并曲面
合并曲面(mergesfr):可以用于合并两个曲面,这个功能不太好 用,因为它的限定条件太多了:
能够被合并的两个曲面必要条件必须是: 未修剪的
至少有一边“完全重合”
图
平滑可以确定相交处是否平滑,公差允许相交处存在很小的边界差距。 我们看看不同参数下的效果:
图 :合并曲面平滑与不平滑参数。
尽管如此,这个命令还是有很多满足了以上两个条件的曲面不能被合并 为一个曲面,那和曲面的内在性质有关,我们后面遇到再讲。
衔接曲面
衔接曲面(matchsfr):不能把两个曲面合并在一起,但它能让两个 曲面边界“完全重合”我们在合并曲面失效时,可以使用衔接曲面先把两个 曲面的边界重合在一起。
点击衔接曲面命令,会让我们两次选择曲面边缘。衔接曲面会给出一系 列选项。
图 :衔接曲面弹出选项。
位置(又称 G0 连续):可理解为第一个曲面继承第二个曲面的位置。
图 :位置连续。
相切(又称 G1 连续):可理解为第一个曲面与第二个曲面相切。
图 :相切连续
曲率(又称 G2 连续):可理解为第一个曲面继承第二个曲面的曲率(此 时两者结合最为平滑但产生较大的位置差)。
图 :曲率连续。
互相衔接:第一个曲面和第二个曲面互相继承对方发生 G0、G1 和 G2 连 续。
维持另一端:维持第一个曲面选取边界所在位置。 另外注意结构线方向和混接命令类似,衔接时一定要点击同一侧,否则
会犯类似错误:
图 :错误的衔接。
几何学上的 G0、G1 和 G2 连续
刚才提到了 G0 连续(位置)、G1 连续(相切)、G2 连续(曲率)。 您会在使用 Rhino 时经常遇到这几个选项,我这里讲一讲这几种连续方
式的概念:
G0 连续:当两个表面相接,若我们提取出它们的剖面线,这两根线其中 一根端点与另一根端点直接相连,我们就叫做这两个表面处于 GO 连续状态。
109 第六章
图 :GO 连续。
G1 连续:两个曲面截面曲线彼此连接在一起,而且处于彼此相切的状态
(准确叙述是曲线的一阶导数连续)。那么我们认为这两个曲面处于 G1 连续
(可以理解为每根曲线各增加一个 CV 点让他们彼此相切,因此叫 G1。)
图 :G1 连续。
G2 连续:两个曲面截面曲线彼此连接在一起,而且这两根曲线的曲率处 于连续状态,这时我们可以称这两个面处于 G2 连续状态。(可以理解为两根 曲线各增加了两个 CV 点让它们的曲率连续,因此叫做 G2。)
图 :G2 连续。
第六章 110
很多时候我们做出来的模型在本来希望平滑相接的地方但看起来有明显 的转折痕迹,那就是因为面的连续性不够的问题,那我们就需要调整面的连
续性。
一般来说,您可以肉眼看出 G0 连续,但无法通过肉眼判断 G1 和 G2 连 续。我们可以使用 Rhino 的曲面斑马线(Zebra)命令判断曲面处于何种连 续性状态。
图 :斑马线工具检查曲面的连续状态。
我们建筑学建模时达到 G1 连续就够了,很多工程上的模型譬如汽车、航 天等需要模型达到 G2 连续。
111 第六章
第七章
Rhino实体和网格
传统的 3D 软件第一部分必然是以介绍基本几何体为入门。比如 3DMAX、 AUTOCAD 等软件的建模教程。并非基本几何体如今已不适用,这类造型应该说 仍然是在建筑设计或者工业设计中使用量最大的设计元素。但是如今建模概 念已经完全改变,MAYA 中现在最为流行的是由基本型不断细分拉伸变形得到 需要形体,最近流行的 Zbursh 则是一种“雕刻”建模的方式,这些的建模手 段比起最原始的将对象分解成若干基本几何形体再加以组装的“建模观”要 高效得多,而在犀牛中,“曲面(surface)”这一概念是模型的核心要素。 Rhino 中大多数情况下建立的曲面都是建立在曲线的基础之上。通过放样,扫 琼,PATCH 等方式得到曲面,实体部分则是辅助之。
当然,在 Rhino 中提供了完整的实体建模工具,我们来看看。
基本几何体创建
前面已经讲过实体在 Rhino 中的实质,它并不是有真正厚度的对象,而 是由闭合的单个或者多个曲面构成。关于它的理解就不多叙述。
Rhino 中的基本几何体包括:立方体、球体、圆柱体、椭球体、圆管、圆 锥、抛物面椎体、圆环等。如图:
第七章 112
图 :Rhino 中的基本几何体。
关于命令的使用,由于比较简单,我只简单叙述下,见图表 :
113 第七章
图表 :Rhino 实体命令及功能。
以上命令中最后两个 ,拉伸曲线出实体(ExtrudeCrv)和拉伸曲面出 实体(ExtrudeSrf)简单介绍下。
前面介绍了曲线的拉伸,这个命令可以直接将曲线拉伸出实体,也就是 说它应该可以自动将上下两个面封住,是这样的吗来做个试验:
这里有两组封闭的曲线,其中左边的曲线不在同一平面上,右边的曲线 在同一平面上,我们使用拉伸曲线出实体看看效果怎样
图
我们看到左边的曲面并没有封面,而右边形成了一个实体。
图
第七章 114
因此拉伸曲线出实体(ExtrudeCrv)这个命令对于开放或者不在同一平 面上的曲线不能将其表明封闭得到实体,对于它们的作用同拉伸曲线命令一
模一样。
我们再将刚才那两组曲线封面,看看第二个命令,如图 ,左边是修剪 了的曲面,右边是未修剪的曲面。
图
按默认参数将两个曲面挤出实体,结果如下:
图 :挤出曲面实体。
另外拉伸曲面成实体工具子菜单内还有一系列工具,凸缘、肋柱等我几 乎没有实际用过,而且感觉完全有其它的常用工具可以代替它们,您可以查 看 Rhino 的帮助看看它们的使用方法。
附:插件pipecurve的运用
有些时候,为了造型需要,我们需要大量的曲线成管,但 PIPE 工具一次 只能进行一根曲线的成管,pipecurve 是由我封装的一个插件,我将它放进了 今 天 的 课 程 文 件 中 ( 下 载 地 址 : ,您可以使用这个插件对多个曲线对象进行成管,使用方法如下:
在 Rhino 选项中载入插件,载入之后,这个插件就会在菜单栏生成新的 菜单,普通插件的安装方法一般都是这样。
图 :安装 pipecurve 插件。
选择若干你想要成管的曲线:
图 :选择需要 PIPE 的曲线。
点击空格之后,在命令行再输入成管半径,若干根曲线可以一起成管
(注意这个工具不能自定义截面大小变化。)
图 :最终效果。
实体工具
实体工具集中主要是有三类工具:布尔运算工具、抽面工具、倒角工具。 Rhino 工具实在太多,而且分得很细,您只需要记住每一类型的工具位置就 好,700 多个工具我们不可能全部用上,而且此次课程也只会接触到常用的一 些工具,因此 Rhino 更深的奥秘还需要您下来探索。
实体工具集功能及主要使用方法如下:
图表 :实体工具集和功能。
布尔运算
本来我想把布尔运算单独拿来讲一讲的,但是细想才觉得所谓布尔运算 其实非常容易理解。布尔运算本来是对二维对象的逻辑判断,引申到三维对 象的处理。那样的话我们可以借用直观的图像结果,更容易理解。
布尔运算包括三种形式并集、交集、差集(包括 A-B 和 B-A)。分别对应 犀 牛 的 ( BooleanUnion )、 ( BooleanIntersection )、
(BooleanDifference)
我们来对图 的这个方块和球体进行布尔运算。
图
求并集的结果:
图
炸开可以发现它们中间重合的部分被删去了:
图
对它们求差集(方块减去球体):
图 :求差集结果。
对它们求交集:
图
工具自动建立实体(CreateSolid):其实质就是求若干曲面形成的封 闭实体,而且这个实体有且只能存在一个。否则就将无法建立实体,这个功 能我一般很少用。
抽面工具
:加盖和抽盖工具是一对逆工具,前者(cap)作用是将平面盖封 面,后者(ExtractSrf)是抽离某个面,它可以针对所有的多重曲面。
注意 cap 仅能将平面洞封盖:
图 :加盖条件。
ExtractSrf 不仅能针对实体抽面,它可以抽离任何多重曲面中的某些 面。
图 :多重曲面抽面。
第七章 122
实体倒角
实体倒角的好处在于,它可以对多个对象的公用边进行倒角。而前面提 到的曲面倒角只能针对两个曲面进行倒角。
前者(FilletEdge)是导圆角,后者(ChamferEdge)是导斜角 倒角时还可以对每个角边进行控制。
图 :倒角控制角边半径。
实体倒角工具不仅仅只对实体对象有效,它还对所有多重曲面对象有 效:
譬如图 我们这个建筑的一角:
图
mesh对象
在讲此节之前,我想再和大家谈一谈关于 nurbs 建模和 polygon 建模以 及现在 3D 软件界趋势。
在 nurbs 还不流行的时候,polygon 建模是一统天下的,但那时候的建模 手段并没有现在这样多样。那时候对建模对象的理解还是以分解对象为主, 将对象分解成若干几何体对象再一一创建,就像我们在画室学人体石膏时老 师讲的那样。
后来 nurbs 技术出现,nurbs 因其优秀和丰富的造型能力逐渐在建模领域
第七章 124
占了上风,无论是在 CG 领域还是工程领域。3DSMAX 等一批经典软件也纷纷再 它的下一个版本中加入 nurbs 技术。
之后的软件发展,可以从 CG 领域和辅助工业设计领域两个方面来看: CG:推动这类软件发展的,可以说主要是影视特效和动画消费带来的动
力,但随着 MAYA 等一批强大软件出现,polygon 模型逐渐成为了之后建模界
的主流。我们现在在电视上看到特效镜头几乎都是靠 polygon 方式建模的, 现在在影视方面有一套非常高效的建模流程,MAYA+zbursh 建模再加一套后期
处理软件做出了《指环王》、《最终幻想》等牛 B 电影。
为何 CG 领域抛弃 nurbs 选择 polygon,其主要原因不是因为前者建模不 如后者,在 CG 领域最重要的不是建模,而是紧随之后的贴图和渲染。Nurbs 由于其本身缺陷,在法线贴图 UV 展开等技术方面不如 POLYGON+细分表面贴图 来得高效。
但在工程领域,PRO/E/,CATIA 等一批软件代表了发展的主流。工业设计 中制造出产品是关键,而不是仅仅观看效果。Nurbs 技术是基于数学表达的, 因此 nurbs 模型是可以直接用于制造的,而 Polygon 模型若想转换为产品必 须将其 nurbs 化,或者数学化。因此,即使 Polygon 在工业建模上有应用, 也只是用于设计前期领域,也就是概念模型领域。
但现在随着生产高效化的要求,很多情况下不允许进行二次建模,因此 众多的工业设计软件都自带了强大的建模功能,但都是以 nurbs 为主的。
再看我们的建筑领域建模,子烟早在 2000 年发表在 ABBS 上的文章《末 代建筑师——看下一个一千年》就说到 “建筑在艺术和技术上具有双重滞后 性”。仅从建筑模型这一块来看,事实却是是这样。仅就国内来看(国外我也 不知道),现在建筑业的建模在市场上是用以 3DSMAX 和 sketchup 这种以 polygon 建模为主的建模工具,3DSMAX 现在在建模市场上是个中庸的产品, 恐怕还只有建筑从业者还在用,模型无法直接输出成图纸用于施工,渲染插 件也极其有限,最终效果图往往需要在 PS 等软件中进行大量的后期处理。
但最近出现的 BIM 软件,这类软件将模型和技术图纸统一化了。这类软 件属于以 nurbs 为核心的 CAM 软件,个人认为建筑设计的最终目的在于建 造,因此 BIM 这种比目前正在使用的软件流程更为高效和节省成本,应该成 为以后发展方向。
废话说完,我们来看看 Rhino 中网格(mesh)对象。
网格(mesh)就是 polygon,它相关的工具集很少,位于 Rhino 主工具栏
图
网格工具及其有限,而且使用方法也很简单,这里就不多讲了,但是要 随时提醒自己,这类工具只能针对网格对象不能针对曲面对象,所以不要搞 混了,最好将网格对象和曲面对象分层用不同颜色表示。
虽然 Rhino 中有齐全的功能,但您可能有时候更习惯 max 中的渲染器, 您更中意使用 SKETCHUP 建模,Rhino 仅是作为辅助,有时候我还需要将面导 入 ECOTECT 中进行分析,您在将模型导入到这类软件中之前需要将全部曲面 转换为网格。
我们来看看 surface 转换为 mesh 的选择参数:
这个界面是简易设置界面,它的作用一目了然,调节滑竿来调节多边形 的网络密度。网格面较少时模型粗糙,不精确,但面少,文件和占用资源小
(sketchup 处理的面个数及其有限)。网格面较多时模型精确,但产生面很 多,文件大,场景大的话很可能导进您的 SKETCHUP 中直接导致卡死。
我们点击高级控制,看看手动设置参数:
图 :MESH 转换高级控制界面。
若是用于渲染的模型,请记住:一定要勾上“精细网格”,而且一定不要 勾上“不对齐接缝顶点”。
如果不勾上精细网格的话,模型会比较粗糙,勾上不对齐接缝顶点的 话,会导致结合得很好的边界特别是没有 join 的边界在转化时裂开。 来看看每项代表含义:
①密度:以一个方程式控制网格边缘与原来的曲面之间的距离,数值介于 0 与 1 之间,越大的数值建立的网格面越多。
②最大角度:比如说这个参数如果是 30,就表示模型曲面度变形的跨度对应 的曲面,如果其扭曲角度超过 30 度,那么对应这个部位的 polygon 就要细化 一次。
据预览效果再往下调。
③最大长宽比:如果此参数为 1,就表示 polygon 上单个三角或者四角面的长 边和短边之比将接近于 1:1。0 表示这个参数不起作用,默认为 0。
④最小边缘长度,最大边缘长度:这两个参数用来限制三角面或者四角面的 边长的范围。
边缘到曲面的最大距离:这个参数表示面差的距离,也就是转化得来的 POLYGON 曲面到 NURBS 曲面的最大距离。
起始四角网格的最大数目:网格转换开始时,每一个曲面的四角网格面 数。也就是说,每一个曲面转换的网格面至少会是这个设定值的数目。
这项值一般不会调它,没有实际意义。
第八章
高级工具集
学到如今,在 Rhino4 面板上,我们发现只有少数的命令没有用过了,这 一类工具主要是辅助以建模用,通常称作高级工具,今天的课程也比较简 单,就是理解这些剩下的工具的用法,而且不存在难点。
从物件建立曲线
从物件建立曲线主要包括曲线在曲面上的投影,以及从曲面上提取曲 线。从某种意义上说,建模不是一个绝对按照既定顺序执行的流程,绝非一 定先建立曲线,再通过曲线生成曲面。这个过程随时是可逆的,建模应该是 在不断调整中进行的。
从物价建立曲线的相关命令位于主工具栏的如图 位置:
图
常用的主要有如下命令: 曲线投影到曲面
从曲面提取边界线 从曲面提取轮廓线
从曲面提取 UV 线
生成相交线 生成等分线 生成剖面线
我们来看看它们的用法:
曲线投影到曲面
我们如何将曲线投影到一个曲面上,以便进行进一步操作,比如修剪,
①正投影
命令按钮为:(project),正投影的用法类似修剪(trim)。先选择 曲线,然后空格,再选择需要投影到的曲面再次空格。
正投影是指投影到工作平面。
图 :投影举例。
②推拉投影
命令按钮为:(Pull):它的功能不仅是能将曲线投影到曲面上,而 且会将曲线按照曲面的曲度进行扩散,将曲线拉向曲面上最接近的点。
131 第八章
这个命令不太好控制,因为其数学原理不太容易直观想象,将曲线上的 点拉至曲面上距离改点最近的点,我们一般很难得知曲线拉向曲面会出现何 种效果。
图 :锥状投影举例。
但当曲线几乎围绕在圆柱面时,可以取得较佳的效果,此时若使用投影 命令,通常会得到错误的投影曲线。
如例:左边是使用正投影得到的圆锥体上的投影曲线,右边使用推拉投 影在圆锥体得到的投影曲线。
图 :锥状投影应用于锥状体周围。
从曲面提取边界线
命令(DupEdge):其作用是提取某个曲面上的某个边界曲线复制出 来,以便用于其它用途。它实质上是一个建立曲线的命令。 用法非常简单,执行命令后,选择曲面的一个或者多个边界,再空格即可。
从曲面提取轮廓线
命令(DupBorder):与上一个命令类似,不同之处在于,它是复制 所选曲面的所有边界,而且组合成一根曲线。
从曲面提取 UV 线
命令(ExtractIsoCurve):可提取曲面的 ISO 结构线,也就是曲面 的 UV 线,关于曲面的 UV 及其它特征,我们在明天的课程将讲解到。
选择参数 T 我们可以切换 UV 线,注意我们能够提取的不仅仅是曲面上显 示出来的 UV 线,每个曲面上都是有无数的 UV 线可供提取。
图 :提取曲面 UV 线。
生成相交线
命令很简但很适用,执行命令后,依次选择两个或两个以上的曲面,然 后再空格即可。
图 :生成相交线举例。
生成等分线
命令(Contour):可用于生成曲面和多重曲面生的等分曲线。 我们来使用这个命令分割一个球体: 在执行命令后,选择需要等分物体,确定等分基点和方向,再输入等分
间距然后空格,即可生成等分线。
图
我们再配合分割命令很容易就可把这个球体分割开来。
图
生成剖面线
命令(section):用于生成曲面和多重曲面上的截面曲线。 命令用法是点击命令后选择需生成剖面线曲面,再使用两点确定的方向
穿过所选物件生成剖面。
物件变动工具
Rhino 物件变动工具集不仅包含了处理与物体空间位置有关的相关工具, 例如阵列、缩放、旋转、镜像、移动复制等,这个工具集还包含了对物体本 身形体的变换。例如弯曲、扭曲物体等,我们来看看这部分工具的使用。
物件变动工具集位于主工具栏的如图 位置:
图
处理物件空间位置的工具
这部分主要的工具有以下命令: 移动、旋转和缩放
阵列
移动、旋转和缩放
移动、选择和缩放工具是所有 3D 以及 2D 软件中的最基本变换工具。
①移动:其实移动工具一直处于激活状态,当您选择物体时左键不松开物 体,就可以直接拖动物体。Rhino 中也提供了相关命令:
命令(MOVE):此命令也可直接输入 M,是少数几个单字母命令之 一。MOVE 命令可以根据锁定点进行精确移动,通过练习您可以快速掌握这个 命令的用法。
命令(SOFTMOVE):在一个指定半径内以衰减的方式影响物价的移 动。
图 :SOFTMOVE。
在群体移动时是以每个对象相对中心点进行衰减,因此会影响原来的群 体相对位置关系。
图 :SOFTMOVE 应用于多个物体。
②旋转:旋转命令分为 2D 旋转和 3D 旋转之分。命令左键为 2D 旋转
(Rotate)、右键为 3D 旋转(Rotate3D)
2D 旋转是指在工作平面上绕着点旋转物体。
图 :2D 旋转。
3D 旋转是绕着一条轴旋转,因此旋转平面可以不在工作平面内。
图 :3D 旋转。
执行此命令之后,先通过两点确定一条选择轴,然后确定旋转点进行旋 转。和 2D 旋转一样,可以在命令行输入角度参数控制旋转的角度,输入 C 启 动拷贝模式。
③缩放:Rhino 中的缩放分为 1D、2D、3D 缩放,分别代表在一个方向、两个 方向和三个方向上进行缩放。
单轴缩放(Scale1D):沿着一根轴线进行缩放。执行这个命令,再 通过两点确定缩放轴,如图是对一个球体在 Z 轴上进行缩放。
139 第八章
图
平面缩放 (Scale2D):沿二维方向缩放物体,如图沿 XY 轴平面缩放 球体:
图
注意平面缩放只能沿工作平面进行,不能自定义缩放平面,除非您自定 义工作平面。
三维缩放(scale):则是真正意义的缩放命令,物体在缩放时将保 持各个方向上的比例,不会发生变形。
复制
在 Rhino 中可以通过以下几种方式进行复制:
A 选择一个物体并进行拖动后,按住 ALT 即可复制出来一个物体进行移动, 这是最为简单的复制方法。
B 选择物体之后,按住 ctrl+c 再按 ctrl+v,物体将重合复制一次。 C 在旋转,缩放、移动物体时,选择 C 参数可复制物体。
D COPY 命令进行复制。
镜像
镜像命令为(mirror),讲到镜像命令,很多同学发现 Sketcup 中没 有镜像命令,是不是只能通过插件实现SU 中最简单的镜像命令是在进行缩 放变形时沿绿色轴或者红色轴缩放成-1。
阵列
这是 CAD 上很常用的一个命令,我们想一次性复制很多物体,而且是有 规律的复制,使用复制命令那太麻烦了,因此出现了阵列命令。 阵列可分为矩形阵列、环形阵列、沿着曲线阵列、沿着曲面阵列、沿着曲面 上的曲线阵列等。
矩形阵列:命令为(Array ,使用该命令步骤如下: 选择阵列物体,然后分别输入 X、Y、Z 方向上的阵列数目,再分别输入
X、Y、Z 方向上的阵列间距。
图 A/B:矩形整列举例。
环形阵列(ArrayPolar):其用法为: 选择阵列物体,确定环形阵列中心点(物体和中心点的距离即是阵列的
半径)、输入阵列个数,确定阵列角度(默认为 360°)。
图 A/B:环形整列举例。
另外 Rhino 还支持沿曲线阵列
图 A/B:沿曲线整列。
沿曲面阵列
沿曲面上的曲线阵列:
图 A/B:沿曲面上的曲线整列。
其他几种阵列方式就不一一介绍了,因为这几种命令也不太常用,请大家 自己下来尝试,它们的用法也非常简单。
特殊位置工具
Rhino 中有一类特殊处理空间位置关系的命令,非常强大,好的创意能让 你使用这些工具做出很多不可思议的造型,下面我们来看看这些在 SU、 AUTOCAD 中闻所未闻的特殊位置工具。
套 用 UV 曲 线 ( ApplyCrv )、 沿 曲 面 流 动
(FlowAlongSrf)、沿曲线流动(Flow)。
这三个工具放在一起讲是因为我认为它们对物件的变动使用了相同原 理,可以作为一类工具进行理解,因此我只详细讲解其中一个。
这个命令在 Rhino 中是分类于从物件建立曲线中的,但我认为它实质是 处理物体位置的工具,也就是它的右键功能。
我们在 Rhino 中建立一个球体,并使用曲面上绘制曲线工具在球体上画 一段曲线:
图
我们使用建立 UV 曲线命令,发现我们得到了一个矩形线框和其中一条曲 线,矩形线框就是球体的平面展开图,曲线也就是球体上曲线到展开图的映 射曲线。
图
事实上无论这个曲面是多么怪,是否开放,它的 UV 展开图都是一个矩 形。
第八章 144
图 :曲面展开 UV 始终为矩形。
那么我们只要在这个 UV 展开图内画上有规律的曲线,那么通过后一个工 具它就可以被映射到曲面上。如图 :
很多时候我们要在曲面上去手动画出这类有规律的曲线是很困难的。
关于这个工具的使用,我们下面来看个案例。 我们在第五课的时候使用旋转命令福斯特的再保险大厦体量,有同学问
到那么像它那样的结构栅格该怎样建模呢
图 :瑞士再保险大厦,图片来自 GOOGLE IMAGE。
我们在 Rhino 中建立这个子弹型的体量,再展开它的 UV 图,发现这玩意 展开 UV 图恰似一个正方形。而且其圆形底边恰好在正方形的一条边上。
图
第八章 146
我们分析一下再保险大厦上的结构线,可以认为结构线若是像我们一样 展开成平面的话,基本上可以认为是和底边成 45°夹角的,于是我们在正方
形 UV 展开图内画上类似如图栅格:
图
我们将其套用到曲面上,就得到了再保险大厦上的栅格。
使用我上上次课发给大家的群体成管工具对栅格曲线进行成管,太胖了 我们变瘦些,再简单渲染下:
图 :最终完成效果。
这个过程完成只需要 15 分钟,若是不会这个命令或者使用 sketchup 来, 不知要花多少时间。
我们再仔细看一下,建筑上的栅格其实是分布不均匀的,我们打开曲面 的 CV 控制点,栅格的分布不均其实是 CV 点的分布不均所致
图 :曲面上 CV 点分布不均。
CV 点分布较密的地方套用得到的栅格也较密,CV 点分布较稀的地方套用 得到的栅格也较稀。因此这个工具是有缺陷的,如果您想得到完美的结构栅 格,那么曲面 CV 点分布也必需完全均匀(那几乎是不可能的)。
那符合结构逻辑的这类栅格该怎么做呢,很多犀牛建筑爱好者也讨论了 很久类似问题,但到现在为止我也没发现最佳的解决方案,若是有每层的话 可以连接每层平面的圆等分点可以较好得到模型,使用参数化工具比较好解 决,但手工这样做太麻烦。《AlgorithmicModelling》这本电子书中有个瑞士 再保险大厦的案例它是按照数学方法生成的,有兴趣的话您可以去找来看 看。
沿曲面流动、 沿曲线流动:这两个工具与 UV 曲线套用实质上 都是一类工具,都是参照曲面对原始曲面的映射。
沿曲面流动:参照曲面对原始曲面的映射,参照曲面可以是任意曲面
(UV 套用中的参照其实是 UV 展开图),映射对象可以是任何对象(UV 套用中 的映射对象只能是曲线)
如下面这个例子,是一位朋友使用这个功能建立的高层表皮。
图 :高层设计效果图,linlan 提供图片。
沿曲线流动:更好理解,参照曲线对原始曲线的映射,映射对象可以是 任何对象。这个工具也可当成一个沿曲线变形的工具。
图 :沿曲线流动。
定位至曲面
(OrientOnSrf):这个功能可以将物件定位到曲面上。例如前几次 课的那个鸭子眼睛的摆放:
图
选择眼睛,点击这个命令之后,选择定位的两个参考点
图
空格确定之后选择需要定位到的曲面,程序会自动捕捉曲面的法线方向垂 直于刚才所选参考点确定的参考位置:
图
定位曲线至曲面边缘和定位垂直曲线
这两个特殊定位命令比较简单。
定位至曲面边缘 (OrientCrvToEdge):将曲线的一端定位至某个曲 面的边缘。
图 :定位至曲面边缘。
定位垂直曲线(OrientOncrv):将物件垂直定位到某曲线上。
特殊变形工具
Rhino 物件变动工具集中还有一类工具不是处理与物体空间位置相关的工 具,而是对物体本身进行变形,下面介绍这些工具中比较常用的。
① 扭转(Twist):对物体进行扭曲变形,有了这个工具我们可以很方 便的做螺丝的螺纹等一类造型。
例如这个例子。
图 :要扭转的形体。
在点击扭转命令之后,选择要扭转的物体,然后我们先选取柱形顶部的 中点作为扭转的起点,再选取柱形的底部中点作为扭转的终点。
然后引导光标转动对物体进行扭转(也可在命令行输入旋转度数),我们 转 4 圈大约 1440°。
图
② 弯曲锥状化和倾斜: :这三个工具分别可对物体进行弯曲变 形(bend)、锥化变形(taper)、倾斜变形物体(Shear)
弯曲效果:
图
锥状化效果:
倾斜效果:
图
③ 沿着曲线变形:前面提到的那个工具也可以理解为一个沿着曲线变形 的工具。
④ 平滑 (smooth):用于平滑物体,使曲面在 X、Y、Z 方向上的扭曲变形 都同时减轻,如图 右为平滑之后的曲面。
图
在 Rhino 变动工具中还有其他一些功能,涡旋、球形对变、延展等,由 于这些功能不算太常用,这里就不详讲了,有问题的可以下来再问。
NURBS曲面理解
我们在第四课讲解了 NURBS 曲线的数学原理,若是明白了 NURBS 曲线再 来理解 NURBS 曲面那就很容易了。我们在前面讲解很多工具时也断断续续的 谈到了 NURBS 曲面的某些属性,在我们现在学完了几乎所有常用的曲面构成 工具之后,现在来对 NURBS 曲面的原理做一个总结。
NURBS 曲面实际上就是两个方向上的 NURBS 曲线的组成。 一个完整的 NURBS 曲面通常具有以下三个要素:
① UV:一个 NURBS 曲面是由两个走向的结构线构成的,U 线和 V 线。
图 :曲面的 UV 线。
曲面的 U 线和 V 线分别具有各种的曲线阶属性。曲面就是靠 U 线和 V 线 上的点密度才确定该曲面的造型精细度。
图 :重建曲面选项。
159 第八章
U 线和 V 线是相对的,不存在例如偏向 X 轴方向为 U 线,偏向 Y 方向为 V
线一说。我们可以使用方向分析工具(DIR)的 S 参数来调换曲面的 UV
线。
我们也可以使用抽离结构线工具(ExtractIsoCurve)来提取曲面的 UV 线。
② 曲面的边界:一个完整的 NURBS 曲面至少有两条边。当 NURBS 曲面只有两 条边时,那这个 NURBS 曲面一定是完全闭合的曲面。例如球体,椭球体等。
我们可以执行showedge 命令打开曲面的边界:
图 :showedge 命令打开各种曲面边界。
我们可以看到,完全封闭的曲面(球体、椭球)有两条完全重合的边 界,半闭合曲面(圆锥)有三条边界、开放曲面有四条边界。
③曲面法线方向和 UV 方向:曲面的法线和 UV 方向是执行很多命令的关键, 例如偏移、拉伸、贴图等。
对任意曲面执刚才提到的 dir 命令,可以查看曲面的法线和 UV 方向。 如图 ,白色箭头代表曲面的法线方向,红色箭头代表 U 线方向,绿
色箭头代表 V 线方向。DIR 这个命令还可以反转法线和 UV 方向,以及反转 UV
结构线。
图 :曲面法线和 UV 方向。
161 第八章
第九章
Rhino辅助工具
Rhino 的建模能力着实强大,建模这一部分前面已经介绍得差不多了,你 们现在可以说基本上对 Rhino 已经入门,可以去尝试看更复杂的教程,不断 追求更高才能获得进步。
但 Rhino 在后期表现,例如贴图、渲染,动画等方面,比起现在其它一 些主流软件来说,的确不算强,后面的课程我们会介绍一些 Rhino 的相关辅 助和插件、渲染等功能。
今天的课程比较简单
图层控制
图层不只是 CAD 软件才拥有的功能,在 3D 软件当中使用图层也可以更好 地管理场景。尤其是当场景非常复杂的时候,对模型进行分类分层是非常必 要的,不仅是方便的问题。一开始学习时就能对图层的正确使用可以帮助您 建立良好的建模习惯,让您的模型具有强的可读性,有利于您和他人的配 合。所以我的建议是:永远使用图层。
点击标准工具栏上的按钮,我们可以打开图层工具。
图层工具按钮还可以打开一个工具集,但这些功能我们平时几乎是用不到 的。
第九章 162
图 图层工具集。
Rhino 的图层面板如下,锁定、显示和改变图层颜色都是我们在 AUTOCAD 使用惯了的,这里就不详述了。
图 :Rhino 的图层面板。
双击图层名称我们可以更改图层名字。
图 :更改物体图层
我们若希望更改物体图层,我们选择物体之后,右键某个图层,就可以 将其复制或更改到所选图层。
图层面板上的前三个按钮分别是新建图层、新建子图层和删除 图层。
图层面板中的这两个三角箭头可以对图层进行排序。是将子 图层移到最近一个父图层。
这两个工具分别为图层过滤器和图层选取器。一般不常用,除非 当您的场景有大量的图层以致于难以管理时可以使用这两个工具。
物件属性
物件属性工具位于标准工具栏上的按钮。在默认渲染器和没有特殊 插件的情况下,物件属性工具面板包含物件、材质和纹理映射三个子面板。
图 :物件属性工具面板
第九章 164
每个面板相对应功能如下:
图 :物件面板相对应功能
图 :材质面板相对应功能
纹理映射面板下是对材质纹理映射的相关设置。何谓纹理映射,我们后 面的课再讲。
2D工具
这部分工具有些 CAD 化了,因为 Rhino 本身也是一个 CAD 工具,具有完 整的 CAD 功能,我们完全可以使用 Rhino 来画出我们的平面和剖面图纸。但 我们肯定更习惯使用 AUTOCAD,在 Rhino 模型需要导入到 AUTOCAD 等工具中 时,我们也需要使用到这部分工具。
标注工具
标注工具位于菜单栏的尺寸标注菜单中,我们也可以右键工具栏空白处 打开尺寸标注工具集。
图 :尺寸标注工具栏
尺寸标注工具中的主要命令: 直线尺寸标注工具(dim):标注任意两点间在工作平面上投影的水平和
垂直距离。
水平标注工具:标注任意两点间在工作平面上投影的水平距离。 垂直标注工具:标注任意两点间在工作平面上投影的垂直距离。 直线尺寸标注工具=水平标注工具+垂直标注工具
对齐尺寸标注工具(DimAligned):标注任意两点间在工作平面上投影的 直线距离。 旋转尺寸标注工具(DimRotated):该指令可以倾斜的标注,首先用鼠标
或者参数确定倾斜角度,然后以这个角度来进行标注。
角度标注工具(DimAngle):标注任意两条直线在工作平面上投影的夹 角。 半径标注工具(DimRadius):标注曲线或圆、椭圆等在工作平面上投影
的半径。
直径标注工具(DimDiameter):标注曲线曲线或圆、椭圆等在工作平面 上投影的直径。
167 第九章
文字工具 (Text):输入文字。它和 textobject 命令区别在于,text 命 令产生的文字不是物体,不具有可编辑的三维属性。
文字编辑工具(PropertiesPage):该指令用于修改文字工具产生的文
字。可以进行内容、字体、大小等修改。
纵坐标标注工具(DimOrdinate):可理解为标高工具。 标注引线工具(Leader):产生引述说明箭头和引述内容。 剖面线(Hatch):可理解为进行填充的工具。
Make2D
我们往往需要把模型的 2D 视图或者剖面图导入到 AUTOCAD 中进行再加 工,我们直接在视图下导出模型成 DXF 或者 DWG 其实质会是完整的带有 3D 信 息模型,模型很大不说,而且结构线也会导出,若是场景一大起来,我们处 理这些费线会很花时间
。
图 :我们需要 MAKE2D 的模型。
我们直接导入到 CAD 中会出现很多与我们模型无关的结构线,
图 :该模型导入到 CAD。
使用 CAD 三维观察器,其实质是三维模型信息。
图 :其实质是三维信息。
169 第九章
因此我们在导出 2D 图形前,往往要使用 MAKE2D 工具将模型转换为 2D 图
形。
图 :MAKE2D 工具面板。
其选项非常简单,我们使用默认的就行,现在导出的四视图将不存在结 构线信息,这时再导入到 AUTOCAD 中就会容易处理得多。
ArchCut 插件工具应用
Rhino 自带的 section 工具只能生成剖面线,前面已经介绍过,若是我们 想制作剖透视一类图形,使用自带剖面工具就很困难了。这里要介绍一款优 秀的剖面插件 ArchCut。
插件正确加载后会在菜单栏生成 ArchCut 菜单。
图 :加载后菜单栏。
现在介绍一下其比较常用的功能。 Creat:建立剖面线,其参数如下:
图
其中第一项 DIR 是选择剖线方向,最后一项 HATCH 是选择是否填充剖 面,其它就可以使用默认设置。
171 第九章
图
打开 DIR 参数。X、Y 是指 X 方向和 Y 方向的剖线,Pick 可以自定义剖线 方向。然后选择被剖物体,确定剖面位置和剖面方向。
图
生成剖面之后,模型中会生成剖截面线,并且会建立锁定图层 SEC_**。
图 :建立锁定图层。
我们使用 View 命令,选择剖面,可以在当前视图下隐藏被剖去部分(非 常类似于 SKETCHUP 中的剖面)。注意只能是在当前视图下,若是要其它视图 需要再 VIEW 一次。
图 :使用 VIEW 命令。
2D layout 可以将剖面线生成 2D 到 TOP 视图
图 :top 视图。
173 第九章
图 :该剖面的四视图。
第十章
渲染
渲染是我们完成建模表达的最后一道工序,但也是最为重要的一道工 序。我们所耗费的所有精力就靠这一步来决定成败。渲染是一个独立而又专 业的课题,现在你们所听说过的任何渲染器都值得用整整一部几十万字的教 程来讲解,而且对于渲染我也不太得要领。本课会讲解一些基本理论知识以 解你们的疑惑以及 Rhino 中渲染的步骤和 Rhino 中目前存在的几种渲染器。
渲染相关知识
渲染分类
渲染的应用领域有:视频游戏、电影、产品表现(包含建筑表现)、模拟 仿真等。针对各个领域的应用特点,各种不同的渲染工具被开发出来,有的 是集成到建模和动画工具包中,有的则作为独立的软件。
从外部使用来看,我们一般把渲染分为预渲染和实时渲染。
175 第十章
预渲染用于电影制作、工业表现等,其含义根据字面意思来就是图像被 预先渲染好再加以呈现出来;实时渲染常用于三维视频游戏,通常依靠三维 硬件加速器图形卡(显卡)来实现每秒几十帧的高效渲染。
实时渲染基于一套预先设置好的着色方案,通常称为“引擎”,来对场景 进行纹理、阴影表达和灯光处理。但这一切都是被预先配置好的,目前的硬
件速度远远不够支持实时的反馈场景中的反射,折射等光线跟踪效果。
渲染特性
无论何种渲染器,从内部来看,它们都是一套处理以下特性的算法程 序,渲染器的好坏,则取决于对这些特性的算法是否高效,为何有些开源不 花钱的渲染器没有流行起来(POV-RAY 等),就是因为它们太慢了。
渲染的特性有:(下面没有解释的是要详讲的) 浓淡处理
纹理映射
凹凸映射 距离模糊:光通过大气造成的远处景像的模糊。 阴影:光被阻挡形成的暗区。
阴影柔和:光衍射情况下造成的阴影模糊。
反射:光滑面对光的反射。 透明:固体允许光穿过。 半透明:光线通过固体高度散射。
折射:透明和半透明过程中的光线弯曲。
间接照明:被反射的光照亮全局,非光源直接照亮。 焦散:间接照明的一种形式,光滑物体反射的光线或者通过透明物体生成的 聚焦光线在其它物体上形成照亮区域,例如水波纹光。
景深:镜头中焦距点前后的物体出现模糊。
运动模糊:物体或者相机运动造成的模糊。 真实感渲染:营造真实氛围的三维渲染。 非真实感渲染:艺术风格渲染场景。
浓淡处理:指物体面相对光源角度和光源距离出现表面颜色(色相、亮度 等)的差别。
一般的建模软件的着色模式都具备表面浓淡处理的能力,例如我们在 Sketchup 中建立立方体隐去边线可以看出表面由于相对于光源角度不同而有 所区分。
图 :SKETCHUP 中的浓淡处理。
但是从理论上讲,太阳光平行照射于各个表面上,它们的亮度应该是等 值的。因此浓淡处理只是一种非光线跟踪的照明技术。它根据多边形的表面 法线与光源之间的角度、各自的颜色以及光源强度对每个多边形进行浓淡处 理。实时渲染本质上就是使用这种技术。例如 OpenGL 和Directx 。
纹理映射:纹理映射就是我们所指的材质贴图。我们应该正确处理贴图与模 型细节的关系。有些同学喜欢建立细致入微的模型,例如建筑表面的瓷砖也 使用模型方式建立出来。
有人觉得随着硬件的发展,材质贴图的方式变得越来越不需要,而是代 之直接建模的方式。事实上,目前的趋势是:正在越来越多的使用更大和更 多的纹理图像于模型场景当中。贴图技术日新月异,变化速度远远大于建模 技术。
177 第十章
材质包含材料纹理和质感两方面,我们平时所惯常使用的贴图方式就是 把材质直接赋予到模型上,这种方式称为投影坐标贴图,这种方式我们可以 较好的表现材质的质感,然而在材料纹理特别是物体边界的地方难以达到较
好的过渡和融合效果。
投影坐标贴图:这种贴图最标准的就是平面投影贴图,使用平面投影的 方式将物体沿 X、Y、Z 轴直接投影到物体上,继而又发展了圆柱、球体、立
方体等方式贴图,但若表面形状与这些形状不一致,那么得到的贴图就会发 生变形。当然,这种贴图方式更为困难的是对接缝处的处理,要想产生复杂
表面的无缝连接是一件很困难的事,但是很遗憾,Rhino 目前只支持这种贴图 方式。
复杂纹理和复杂面的贴图现在普遍使用的是另一种贴图技术—UV 贴图。 UV 贴图:UV 贴图是现在影视 CG 等最前沿领域的最主流贴图方式,这里的 UV 和我们学到的 NURBS 曲面的 UV 稍有不同,它是纹理贴图坐标,这个坐标负责 将图片上的点精确对应到 3D 模型之中。
UV 贴图需要将模型进行展开 UV,再将图片映射至 UV 展开图中,我举例 说明。图片来自 GOOGLE IMAGE。
下面是一个人物 3D 模型,这种模型都是 polygon 建模方式,其高模少说 也得有上万个面,我们还得一个一个面选取贴图么
图 :人物模型。
第十章 178
在 MAYA 等一类建模器中我们可以将模型转换为低级模型,把模型的 UV 展开。就会得到下图:
图 :展开模型的 UV。
然后我们再在这张 UV 展开图上进行材质赋予,当然这种赋予通常也需要
2D 软件的配合才能达到无缝连接。
图 :UV 贴图。
凹凸映射:真实感的场景中墙壁是不可能光滑平顺的,凹凸映射就是为了表 现材质表面的凹凸扰动而产生的一种贴图技术。
如图我们使用 vray 默认材质渲染一个方体:
图 :无贴凹凸图立方体渲染。
我们使用棋盘格作为凹凸通道
图
得到的渲染结果:
图
目前的凹凸映射有三种主要技术:BMEP 技术、法线贴图、置换贴图: BMEP 技术:通常译为凹凸贴图,通过一张叫做“高度图”(Height map,通常
是一张黑白灰度图)的图像来储存表面每点的高度信息,然后交由一个算法 对高度偏差进行处理。
图 :BMEP 贴图,图片来自维基百科。
法线贴图:法线贴图控制纹理的是一张叫做 normal map 的法线图像,它是一 种比 BMEP 更优秀的算法,凹凸贴图每个点只记录一个高度信息,而 normal
map 每个点记录了三个方向的扰动,因此法线贴图所表现的光影感要更加真 实。我们看到的 normal map 也不再是黑白图,而是彩色图。
图 :法线贴图,图片来自维基百科。
置换贴图:置换贴图是发展于法线贴图之前的一种技术,但置换贴图所表现 的凹凸感更为真实,它是直接将高度信息(也只有一个方向)对应于模型 中,在渲染的时候对模型表面进行凹凸变形处理,因此它最后得到的光影感 更为真实。但置换贴图的缺点在于,这种直接对模型的处理方式会徒然增加 模型上很多面,会使渲染过程变得很慢,因此目前在 CG 领域用得最为广泛的 是法线贴图。
这里是 三种贴图方式的案例图片。
图 :无凹凸映射。
图 :凹凸贴图。
图 :法线贴图。
图 :置换贴图。
可见三种贴图一种比一种表现的凹凸质感更为真实。但是 Vray ForRhino
和 VrayForSketchup 只支持凹凸贴图和置换贴图,不支持法线贴图。
我们需要的静帧渲染
一般来说,我们的建筑表现需要的是非动画的静帧渲染。那么我们就没 必要去尝试代表当今三维图像描述最高水准的 RenderMan 这类昂贵而又复杂 的渲染器,我们也没有价值上千万的渲染农场(Render Farm)作为渲染平 台,而是几千元的个人计算机,所以应当选择一个自己合适的渲染器, 个人 最喜欢的渲染器是 Vray,但我的渲染水平也只停留在理论阶段而已,对于场 景布光和材质调整也缺乏经验。
我们使用渲染器,其实就是对以上参数的调整。当然不会涉及以上所有 参数,一般来说,渲染器为我们集成了各种条件下的计算参数。因此渲染对 我们来说最重要的是灯光和材质的处理。现在的大部分静帧渲染器(Vray、 火烈鸟、亚特兰蒂斯)都带全局照明的,所以在表现室外场景时,为我们模 拟自然光省去了绝大多数的麻烦,早期的渲染器要想得到室外自然光或阳光 效果是需要很多组灯光不断尝试来达到的。因此个人认为我们应该攻克的难 点在贴图和材质上面。但这两方面都是需要美学基础和经验的,所以提高的 唯一方法就是不断练习。
Rhino 中的渲染
渲染前的准备
① 检查边缘 我们前面提到了,在渲染前为了防止模型“漏光”,一定要将相连的曲面
链接起来。但很多时候,我们仅凭视觉是无法判断曲面的边界是否相连,我 们需要先检查该连接起来的曲面边缘是否外露,我们需要用到曲面分析中的
检查边缘工具(ShowEdges)。
我这里使用帘布工具盒椭球快速建立了一个装鸡蛋的盒子和若干个鸡 蛋:
图 :模型。
在盒子边缘部分我用到了实体倒角、混接曲面等多个命令,看似曲面边 缘已经完美结合,但我们使用这个工具检查一下:
图 :检查边缘。
我们发现有些边缘是外露的,为何会出现外露边缘,在 Rhino 中使用衔 接、倒角等命令时都会影响到整个面的 CV 点分布,因此就可能出现外漏边 界。
我们可以使用合并外漏边缘(JoinEdge)这个命令将两个差距很小 的外漏边缘连接起来。
图 :合并外露边缘。
但是注意,JoinEdge 命令仅仅是在为渲染时使用,它不会更改模型原始 数据,只是让程序对边界处理不一样,治标不治本,因此要想建立优秀的模
型,需要在建模时就加以注意。
② 相机设置 每个视图窗口的实质就是一个相机视觉,一般来说,默认透视图视觉就是
我们的渲染相机视觉,当然我们可以建立新的视图窗口以建立新的相机。我 们在命令行输入 camera 命令可以显示当前窗口相机。
图
我们可以拖动其它三个视图里的摄像机以确定相机位置,这对习惯使用 亚特兰蒂斯渲染器的同学应该有所帮助。
图 :打开透视图的 CAMERA。
我们还可以在视图窗口的属性中设置相机焦距等参数。
图 :设置相机参数。
③ 灯光
Rhino 中有五种类型的灯光:
聚 光 灯 ( spotlight ) 、 点 光 源 ( PointLight ) 、 平 行 光
(DirectionalLight)、区域灯光(RectangularLight)、管状灯
(LinearLight)
些灯光进行场景补光,请参考其它专门讲解渲染的教程。
我在仅使用一个聚光灯情况下我得到的刚才鸡蛋盒的场景:
图 :鸡蛋渲染结果。
④ 材质 材质的赋予一般通过物体属性(Properties)工具。
关于材质,前面已经介绍得比较多,这里就不再赘述了。
Rhino 中的几种渲染器介绍
Rhino 中我已知的目前有 Vray、Flamingo、Penguin、Bongo、Brazil 等 置入式外挂渲染器,另外还有 Maxwell、Hypershot 等导出式渲染器,据说未 来 Finalrender、Mental Ray 等也将支持 Rhino。因此你现在完全不需要将 Rhino 导出到其他渲染环境中进行渲染。
Vray:Vray for Rhino 和 Vray for Sketchup 具有一模一样的功能,也使用 同样的材质格式和文件格式,Vray for Rhino 从目前的表现来看完全不输于
MAX 版本,我个人也最喜欢 Vray 渲染器,目前比较好的教程有 Cafer 所着的
《Vray 你的 Rhino》。我在古建设计时使用了这个渲染器,效果如下:
第十章 190
图 :重庆大学建筑学 06 级 4 年级上学期古典建筑设计,谢博洋、王大川。
Flamingo:火烈鸟渲染器,是 McNeel 公司自己出的渲染器,但目前效果不 算太好,比较难得的是其带有类似于 MAYA 的植物系统
图 :Flamingo 植物系统。
因此不需要进行后期的方式或者真实植物模型这种渲染很慢的方式来表 达植物场景。
但速度在开启间接照明之前和之后完全是两回事,开启之前速度很快, 开启间接照明之后其速度让你崩溃。McNeel 主页上看到正在开发最新版本的 Flamingo 将有很好的表现。我在博物馆和旧建筑改造两个课程设计中使用了 该渲染器。效果如下:
图 :重庆大学建筑学 06 级 3 年级下学期博物馆设计,王大川。
图 :重庆大学建筑学 06 级 3 年级下学期建筑改造,王大川。
Penguin:一款动画渲染器,不适合做最终表现,表现风格有水彩、铅笔抖 动、蜡笔画等、比较类似于 Sketchup 中的风格设置,Penguin 目前的版本只
支持聚光灯。
我在居住区规划的草图阶段使用了该渲染器,效果如下:
图 :重庆大学建筑学 06 级 3 年级上学期居住区规划,二草,王大川。
Bongo:McNeel 自己出的动画渲染器,目前有人正在 Shaper3D 上连载教程, 有兴趣可以去看看。
Brazil、Maxwell:都是老牌的渲染器,这两个渲染器在工业产品表现中使 用得非常多,但由于速度较慢,现在一般不太为建筑设计、室内设计等大场 景模型渲染所用。
Hypershot:值得关注的新锐渲染器,其特点就是即时渲染和速度很快,但 属于独立渲染器,和 Rhino 具有良好的接口,但缺陷在于目前的版本还没有 灯光系统,支持图像环境光(HDR),今天逛其主页发现正在开发最新的 Hypershot 10 版本,MAC 系统版支持灯光系统,Windows 版貌似仍然不支持灯 光。
193 第十章
总而言之这个渲染器速度很快而且很出效果,很简单,上手非常容易, 虽然场景表达真实性不算太好,你若是对渲染图的真实度不算考究,不妨尝
试一下这个渲染器,我在高层设计中使用了该渲染器,效果如下:
图 :重大建筑学 06 级 4 年级上学期,高层设计,金圣现、王大川。
附表一:犀牛中的插件介绍
Vray For Rhino:Vray 犀牛渲染插件。 Maxwell:Maxwell 渲染器,带有与犀牛的接口插件。 Flamingo:火烈鸟,由 McNeel 公司自己出的犀牛渲染插件。 T-Splines:一个自带完整建模体系的犀牛建模工具插件。 Penguin:企鹅,McNeel 出的犀牛动画风格渲染插件。 RhinoCAM:犀牛上的一个 CAM 插件。 Grasshopper:犀牛参数化设计工具。
Monkey:Rhinoscript 编译器,参数化设计工具,Rhino 插件制作工具。 Archcut:犀牛剖面增强插件。
VisualARQ:犀牛建筑建模插件,类似于 SketchUp 上的 1001bit-tool、SUAPP 等。
RhinoArt:犀牛雕刻工具,我试用过,相比 Z-brush 太逊了,建议大家不必
在上面花时间。
Qhull:集成了多种平面和开间 Voronoi 算法的,Voronoi 生成工具,文档里 面有与 Rhinoscript 接口文件。
Hypershot:新锐渲染软件,与犀牛有良好的导入接口。
CurvePiping:虚拟成管插件,渲染时让线成管。 Jewelerscad:犀牛珠宝插件。 RhinoPhoto:犀牛中一个增强的相机插件。
RhinoTerrain:犀牛地形工具。
RhinoParametrics:又一款第三方的犀牛参数化插件。 RhinoNest :犀牛排料外挂程序。
RhinoDirect :犀牛工业 CAM 辅助插件。 PanelingTools:增强的阵列插件。
Rhino Assembly :动态工业模拟插件。
ObjectViewer for Rhino :增强的 Rhino 物件、图层及群组管理插件。 Armadillo:又一款阵列插件(免费)。
LinceoVR:实时渲染器插件。
Rhino 3D PDF:犀牛模型 PDF 输出工具。 Rhinojewel:犀牛珠宝设计插件。 Dynamic Display:动态显示插件。
xShoe4Rhino:犀牛鞋子设计插件。
RhinoGold:珠宝设计插件。
195 第十章
附表二:本次网络课程的课程表
课程 | 内容 | 时间 |
1 概述 | 1 月 25 日 | |
2 犀牛的基本操作 | 犀牛界面介绍 视窗操作 物体基本操作 | 1 月 26 日 |
3 绘制 2D 物体(上) | 犀牛模型中对象介绍 点物体绘制 曲线绘制 | 1 月 27 日 |
4 绘制 2D 物体(下) | 曲线编辑工具 NURBS 深入理解 | 1 月 28 日 |
5 曲面工具(上) | 绘制曲面 曲面编辑(上) | 1 月 29 日 |
6 曲面工具(下) | 曲面编辑(下) | 1 月 30 日 |
7 实体工具和网格 | 犀牛中实体概念 绘制基本几何体 实体工具 网格 | 2 月 2 日 |
8 对物体的操作(上) | 从物件建立曲线 变动工具(上) | 2 月 3 日 |
9 对物体的操作(下) | 变动工具(下) NURBS 曲面理解 | 2 月 5 日 |
10 其他辅助工具 | 图层 物件属性 2D LAYOUT 工具 | 2 月 6 日 |
11 渲染 | 渲染基础知识 渲染准备 几种渲染器介绍 | 2 月 10 日 |
本文来源:https://www.2haoxitong.net/k/doc/1cc4c53a0229bd64783e0912a216147917117eff.html
文档为doc格式