sketchup学习心得
- 格式:pdf
- 大小:479.65 KB
- 文档页数:5
一:序言
设计师运用SketchUp创建设计模型,在工作过程中需要经常变换工作区里的视景,从各种
不同的方位和角度观察和操作。当模型架构得越来越复杂,模型上应用的材质越来越多的
时候,模型档案跟着变得很大,因而SketchUp在Pan (平移视景), Orbit (旋转视景)或Zoom (缩放视景)上花费的时间相对的也变长,影响到SketchUp操作性的流畅。
由於SketchUp是「实时成像」的,任何时候只要工作区的视景(View)发生了某些改变,就
会引发一系列运算以保证每一样物体持续更新,直到改变结束。因此在工作区里看到的场
景物体越多,SketchUp就得操纵越复杂的改变,你的电脑系统就必须做更多的工作。
我们可以利用一些技巧去改善这种状况,让SketchUp在设计操作中能执行的更流畅一些。
在《如何使SketchUp跑得更快》这一系列博文里,我们讲述如何调适电脑的硬体设定以及
改善对SketchUp的操作习惯,从不同的方向来提升运用SketchUp进行建筑设计的工作效率
。
窃以为,如果你只是弄个SketchUp玩玩,或者把它当成展示品表示你也有,那么你也不会
有耐心来看这些博文,请就此飘过。但是如果你对这个风华正茂的新设计工具有所认知,
准备拿它做为建筑设计的主要生产工具,那么从下面一系列博文中你能获得许多有用的讯
息,这些讯息都不存在SketchUp的官方文件里。
二:渲染的概念
在讲述SketchUp的「实时成像」功能之前,我们必须先了解一些跟渲染相关的科普知识。
什麽是『渲染』?渲染(Render)是对三维模型的一种着色演算(Shade)过程,任何所谓的渲染
器(Renderer)本身就只是一种演算程式模组,不同的渲染器可能应用不同的演算法,但是改变不了的是渲染运行的阶段性进程。我们来谈谈渲染的阶段性进程都包含了哪些步骤。
(一) 渲染的阶段性进程
通常渲染器(Renderer)启动渲染演算以后,渲染分为二个阶段进行,首先是处理视景范围里的三维模型,把模型表面细分成网格面。接着才是对这些细小的几何面进行着色处理。
〖第一个阶段〗处理模型 (1)首先会针对视景(View)中能看见的几何物体做运算分析(Build Gepmetry)。
(2)产生用於渲染成像所需要的几何构架,建立成三角形网格面(Build Meshes)。 (3)对这些细小的网格面做顶点(Vertex)计算,产生所有的顶点座标、纹理座标、法线角度等等数据,这些网格面的顶点是着色的根据,通常在几何面上显现的颜色、纹理、亮度是对
三个顶点的演算结果与相邻网格面的平均值。
〖第二个阶段〗着色演算 (1)进行着色(shade)、纹理映射(texture mapping)、凹凸映射(Bump mapping)等等,逐次对这些
细小几何面上进行着色演算。 (2)然后是模拟光线照射的结果,光源可以是环境光、太阳光或你在场景里设置的各种灯光
以及从其他物体反射过来的光线,演算场景里物体上的环境光照和阴影投射明暗程度。逐一计算出各个几何面上接受到从光源投射过来的光线强度、颜色等,以及向场景的漫射、
反射、次表面散射、模糊这些模拟真实世界光线的行为。逐一计算出各个几何面上表现的
演色结果,不同的渲染演算模组会使用不同的演算法,诸如光迹追踪和全局光照等等。 (3)着色以后还要对整个画面上显现的图像做反锯齿(Anti-aliasing)运算,最终才会给出具有
真实感(Photo-realistics)的图像。 (二) 渲染演算是有限次数的模拟运算
渲染演算是运用演算法模拟真实世界中在光线照射下,以及物体间的交互反射时在物体表
面上产生的光照行为,包括反射、折射、透明、漫射…等等。但是利用电脑做运算,只能以一个取样率对入射光线设定有限的光线数目,并且设定一个临界值做有限次数的运算(否
则永远算不完),这个控制演算强度的临界值是可以从参数设定的,因而你可以设置不同的
渲染品质。
(三) 渲染的运算强度很大
在上述二个运算阶段中,当前绝大部份的渲染器并不依靠显示卡上的图形处理器(GPU)进
行演算,而是运用电脑的中央处理器(CPU)做运算。(只有几个当前正发展中的的新渲染器能
支援nVidia的CUDA介面,把第二阶段的渲染工作交由显示卡的GPU处理,很大程度的提
升了渲染运算的速度),因而CPU的运算速度(GHz)直接影响渲染的演算速度。 在渲染过程中产生的大量运算数据则暂存在电脑的主记忆体中,因而主记忆体的多寡会直
接影响你能渲染多复杂的模型,也影响到你能输出多大尺寸(像素值)的图像。不像SketchUp
只能运用单执行绪,渲染器是多执行绪(Multi-threads,多线程)运行的,因此如果你的电脑是
多处理器或多核处理器(Multi-Core),就能大幅度减少渲染所花费的时间。 由於渲染的运算强度很大,尤其在渲染的第二个阶段会运用光迹追踪(Raytracing)、全局照
明(Global Illumination)或其他的复杂演算法处理场景的光照效果,加上最后还得对渲染出
来的影像做反锯齿运算。要把三维的建筑模型渲染成细致拟真的图像,由於建筑模型通常
会具有一定的复杂度,因而这些演算过程都会花费很长的时间,相对简单的小场景可能花费十几分钟,复杂的大场景也许会耗费十几个小时,事实上不可能达到马上看到结果的速
度要求。
三:SketchUp的实时成像
SketchUp 的特质是实时成像,在建构或编辑模型的过程中,当你对场景里的模型做了任何
改变,例如对模型的表面做推拉(Push/Pull)、复制(Copy) 等等,随着游标在场景里拖曳移动,SketchUp 就立即回应出改变后的模样。即使没有对模型的几何构架增删些什麽,仅只
运用旋转视景(Orbit)或者缩放视景(Zoom) 命令调整了观视的角度,但是只要你改变了工作
区里的视景,就会立即引发SketchUp 的渲染引擎(Render Engine) 进行运算,并且实时的
显现出改变完成后的模样,这就是从设计者的角度所需要的实时视觉回馈。
SketchUp 的英文版介面中以Render 来表达成像的操作,几个汉化版甚至官方繁体中文版
里把英文版所谓的Render 直译成「渲染」,我感觉翻译得不恰当,虽然官方从来没有说清
楚SketchUp 实时渲染的内容,不过凡是使用过SketchUp的人都能看得出来,SketchUp 所
谓的实时渲染,其在萤幕上显现的图像跟我们熟悉的Podium, Vary for SketchUp 等渲染器
所渲染出来的图像间有相当程度的差异。SketchUp 里只有阳光没有灯光,物体不会反射、折射,纹理没有凹凸、模糊等等。根据这些差异特征,与其说它是渲染(Render),毋宁说
它更像是着色(Shade)。在电脑图形学里,Render 和Shade 是两码子事,二者的本质是不同
的。
SketchUp 官方号称的渲染(Render),其实不是真正意义上的渲染,更明确的说,应该是一种高级的明暗着色法(Shade)。Render 与Shade 是两回事,虽然渲染同样也是着色运算的表
现,但是渲染运算比着色运算做得更多。明暗着色法多用于三维场景的显示视窗(亦即SketchUp 工作区显示的画面),能显示对模型着色的几何面组织、环境光照、阴影、透明、表
面纹理以及三点透视视景。用於操作设计的过程中,让处理三维模型的设计者能清楚的分
辨模型上各个表面间的前后远近关系和场景的具象形态。说SketchUp 应用的是一种高级的着色法,这是因为它能实时显示高解析度视景和对全画面反锯齿处理的效率表现,的确优
于其他运用这种着色法的应用程式,使得SketchUp 在用做三维设计工具时,其操作效率能
够远远超越许多只能以等角透视显示线架构模型的CAD 软体。
高品质的着色显示是需要借助显示卡来支持的,它能加速三维图像的显示运算速度,并且优化图像的显示效果。但无论怎么优化,它都无法把显示出来的三维图像变成高品质的拟
真Photo-realistics 图像。因为这种Shade 着色法强调的是「实时成像」技术,其实这也正
是SketchUp 脍炙人口的强项,但是电脑硬体有一定的运算速度限制,使得SketchUp 因而
必须放弃去运算显示视景中物体的反射、折射等光迹追踪和辐射光照的效果,避开这些高
强度运算(其实这些就是许多人所认知的渲染效果)的耗时过程,才能达成让SketchUp 在显示上能实时反馈出视景里的任何改变。
对「实时显像」的要求是什麽?一言以蔽之,『只要你改变了当前工作区的视景(View),
就会立刻启动着色运算,即时更新画面的内容,对任何改变做实时的视觉反馈』。
然而即使应用的是Shade 明暗着色法,不是意义上的Render 渲染,启动着色动作以后,电脑同样的要分成二个阶段处理,第一个阶段先对视景里可见的模型物件做几何构架分析(Build Geometry)、建立细分的网格面(Build Meshes) 以及计算出网格上各个细小几何面的
顶点座标、法线角度、纹理座标与亮度值等等。第二个阶段则是对各个细分的几何面进行
着色(Shading)、纹理映射(texture mapping)、阴影投射、全画面反锯齿处理等等运算,一个不少。
着色运算中,细分网格面的多寡直接会影响到运算的次数,因而在模型里如果曲面用得越
多,产生的网格也越细小,即使SketchUp使用的是Quad face (矩形面)不是Triangle face (三
角面),可是对於曲面细分还是毫不含糊的,当然着色运算也跟着细分的网格面增减运算数量。
为了达到实时成像的要求,必须尽可能的缩短显示运算时间,因而SketchUp 借助显示卡上
的图形处理器来分流对运算的需要,称之为『硬体加速』。图形处理器 (Graphic Process Unit, GPU),顾名思义是被设计专门用来进行图形显示运算的工作,SketchUp 利用OpenGL 函式呼叫显示卡的驱动程序去驱动GPU 进行上述第二阶段的着色、纹理映射、阴影、反锯齿等
运算强度比较高的工作。SketchUp 要求的是快速有效的成像,运用明暗着色法放弃光迹追
踪,虽然无法达到渲染的影像那种细腻动人,但是经由硬体加速处理能完全能达成操作设