sketchup学习心得

一:序言
设计师运用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 是两回事,虽然渲染同样也是着运算的表现,但是渲染运算比着运算做得更多。明暗着法多用于三维场景的显示视窗(亦即Sk
etchUp 工作区显示的画面),能显示对模型着的几何面组织、环境光照、阴影、透明、表面纹理以及三点透视视景。用於操作设计的过程中,让处理三维模型的设计者能清楚的分辨模型上各个表面间的前后远近关系和场景的具象形态。说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 要求的是快速有效的成像,运用明暗着法放弃光迹追踪,虽然无法达到渲染的影像那种细腻动人,但是经由硬体加速处理能完全能达成操作设计中即时反馈的要求。反而当前大多数渲染器并不使用显示卡的GPU做渲染运算(仅有少数能支援CUDA 的渲染器才能运用显示卡GPU 做渲染运算),整个高强度渲染运算过程都在电脑的中央处理器CPU上完成,当然花费的时间相对也是可观的。
然而并非所有的显示卡都能符合SketchUp 利用OpenGL 呼叫GPU 运算的要求,有些游戏级显示卡对OpenGL 的支援程度不佳,其驱动程式无法呼叫完整的OpenGL 函式库,开启SketchUp 的硬体加速时容易出现花屏或画面扭曲现象,甚至於蓝屏死机,以至於使用者不得不关闭硬件加速功能。SketchUp 在不启用硬体加速功能的状态下还是可以运行的,作业系统自带了一个通用的显示卡驱动模组,在不开启显示卡硬体加速功能时,SketchUp 会运用这个驱动模组去模拟加速功能,但是原先分流到显示卡GPU 的第二阶段运算又回复到主机板上的CPU 进行,占用了CPU 和主记忆体资源,必然会使得SketchUp 的整个显示运算速度大为降低,同时因为无法设定反锯齿运算等级,使得显示的影像品质跟着降低。所以为了能有效率的利用SketchUp操作三维设计工作,给电脑配备一块合用的显示卡是必需的。

本文发布于:2024-09-24 16:26:51,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/71460.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:渲染   运算   模型   显示   显示卡   演算
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议