首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

三维设计软件使用者都应该知道的图形图像知识

学习的初级阶段是经验总结,但时间总是有限的,只靠经验不足以让你脱颖而出。学习的理想境界是能做到举一反三,触类旁通,此时,经验变成了知识大爆炸的导火索。但是要做到融会贯通,主要并不是靠智商,更多是要靠知识面。因为作者身份的特殊性,每天都会接触到大量行业用户的各种各样问题,对很多用户基础知识的缺失深有感触,有时还要为他浪费一堆时间只是因为一个基本知识点不懂而捉急。本公众将陆续和大家分享行业用户所需要的各种基础知识,通过关键词和简明解释方式进行讲解,帮助大家快速了解行业相关基础知识。而对相关知识点有兴趣的用户自己可以通过各种渠道继续深入学习和研究。

今天首先和大家分享的有关图形图像的基础知识。身为整天需要和计算机和图形打交道的模具行业工程师,有些基础的图像图形以及图形学知识和关键词必须要有所了解,才能更好设置自己的工作环境和进行图形图像数据的输出输入,在碰到具体的图像图形问题时不至于一筹莫展。

像素

通俗的理解,像素就是显示设备上最小的显示单位。比如对于一个最大分辨率为1929x1080的液晶显示器而言,屏幕上就是由1920x1080个像素组成。屏幕上显示的内容都是依赖这1920x1080个像素点通过显示不同的颜色和亮度来实现整体的效果。每个像素点背后都是由1个或几个发光器件生成,因此虽然像素是个虚拟名称,但在实际的设备上却有真实的形状(正方形)和大小的,你可以把屏幕理解为1920x1080个整齐排列的发光体。这也就是为什么有的24英寸屏幕最大分辨率是1920x1080而有的只是21.5英寸却也是1920x1080的原因,甚至只有5英寸的手机也是。像素点越小,显示的效果自然越细腻,这也可以解释为啥手机虽小,但看图片感觉会比在电脑上更细腻艳丽。

矢量和标量

矢量(Vector),是一种既有大小也有方向的量。在数学上称为向量,在物理上称为矢量。

标量(Scalar),只具有数值大小而没有方向的量。

矢量图形和图像

我们在显示屏上看到的各种图像,看起来方式好像都差不多,但实际上这里有两种不同类型的图像,一种是原始像素点构成的图像,比如相机拍摄的照片,你在QQ上抓的图或者你看到的电影。另一种是数学公式动态生成的矢量图形,比如你在AutoCAD中画的图,Creo中创建的模型和工程图中创建的视图。虽然最终显示的时候都是转化成像素点在屏幕上呈现,但在细节上还是有区别的。

典型的像素图像和矢量图形

举个简单的例子,要在屏幕上显示一个圆,如果是图像文件,假设图像大小是100x100,那么就需要保存100x100=10000个像素点的数据(非绝对,后文详述)。对于这个特定的图像,它组成它的像素点是固定的,因此当图像进行放大后,边缘就会出现锯齿而填充部分则会出现马赛克现象。

图像的马赛克

而对于矢量图形,则只需要保存圆心的位置(x,y)和半径,当然还可能包括线宽和颜色等其他属性。矢量图形在显示时是动态通过数学公式计算得到每个像素的显示位置的,因此不管缩放多大还是多小,在屏幕上的显示结果看起来都一样,不会因为缩放而带来锯齿或马赛克现象。矢量图形被广泛应用于各类CAD/CAM/CAE软件数字模型上。我们每天接触到的各种字体其实也是一种矢量图形,比如在ProE和Creo中可以添加的TTF字体。

图像格式

在数字世界中,存在着各种不同的图像文件格式,这些图像文件格式有着不同的数据存储方式和压缩方式,常用的格式如bmp,jpg,gif,png,tif等,这些格式中,有些可以精确保存原始数据并还原,这称为无损保存。有些格式会造成一些非重要数据的丢失或改变,这称为有损保存。在我们实际工作中,需要根据不同的用户选择合适的图像格式来进行保存。这里我就不讲解每种格式具体的实现,只谈它们具体的表现应用。

?BMP格式,后缀*.bmp,位图文件,每个像素最多可以使用四个字节保存,非压缩无损格式,可以完整保存图像的原始数据,因为是非压缩数据,因此文件的大小会比较大。你如果想最大程度保存抓取的渲染图片质量,可以先存为bmp文件再进行后续的处理操作。

?GIF格式,后缀*.gif,每个像素最多使用一个字节表示,最大颜色深度256(也就是一个gif图像内最多能有256种颜色),压缩格式,因此文件尺寸会比较小。因为最多只能保存256种颜色,因此对于一些有渐变颜色或背景的图像保存为gif后会变成条纹显示的效果,图像质量大打折扣。但另一方面,如果图像的颜色比较少而且区域分明,选择gif格式就可以最大限度保留原来的清晰度和对比度,比如做教程时抓取的软件菜单界面,或者抓取工程图下的视图和尺寸,此时保存为gif就可以避免文本内容出现毛边现象。另外gif还可以保存多帧的图像并生成简单的动画。

?JPG格式,后缀*.jpg,常用的图像格式,压缩率最好的图像格式,在大部分场合下,都可以在基本保证图像质量的情况下得到比较小的图像文件,适合各种颜色丰富,渐变效果多的图像,比如照片,模型的抓图等。但jpg是有损保存格式,保存为jpg会损失原始图像一定的对比度,图像的边界会比原来模糊,特别是在渐变环境下的文本内容,在保存为jpg后产生严重的蒙化效果影响文字的清晰度。

?PNG格式,后缀*.png,复合型的图像文件格式,可以同时保存像素图像和矢量图形,再编辑能力比较好,要在图片上添加各种注释并且方便以后修改的话,可以使用png格式。PNG可以生成简单动画。

?TIFF格式,后缀*.tif,无损格式,可以保存多个图像,还可以保存图像的原始生成信息,建议在模型渲染图输出时选择TIFF格式。

?PDF格式,后缀*.pdf, PDF格式不能说是单一的图像格式,它是一个复合型文档,不过在这里我们顺便了解一下。PDF可以同时保存图像数据和矢量图形数据,甚至3D矢量图形数据。具体到行业上的应用,有些保存了工程图纸的pdf可以通过转换工具转为矢量的DXF或DWG,有些则不行,究其原因就是在创建PDF时是使用了矢量图形直接创建还是通过像素图像来创建决定的。

DPI

DPI是Dots Per Inch的缩写,意思是图像中每英寸长度内的像素点数。dpi的应用和差别最通常的应用在于打印和鼠标的扫描分辨率上。在电脑上,同样分辨率的图片,打印出来却有可能不一样的大小,而且精细程度也会不一样,其中的区别就在于两个图像的DPI值不一样。DPI值越高,表明图像越精细,打印出来的效果越好,举个例子,有两张1000x800的图片,一个dpi是100,一个dpi是400.那么第一个图片打印出来的大小将是10x8英寸而第二个是2.5x2英寸,出来的细腻程度自然不可同日而语。

dpi影响打印质量

具体在creo上的应用,同一个窗口同一个模型,使用dpi值等于100和500另存的图片,表面上看好像相差不大,但如果缩放到正常1:1大小后就会发现在100dpi下的图片就会出现严重的锯齿和模糊现象。而500dpi的图片则还保存恰当的对比度,清晰的边界。因此,对于冲洗或打印照片而言,dpi值至少要设为300以上才能获得较好的质量。

相关的config选项

?drawing_shaded_view_dpi?设置工程图下另存为图像文件时着色视图的dpi值(越高越精细,建议300)

?hi_dpi_enable

?raster_plot_dpi

参数化

从图形层级来说,参数化是矢量化的加强版。矢量化图形每一个图元都是通过数学公式生成的,但是都是独立的,换言之每一根线,每个面都可以脱离其他数据独立生成。而参数化则可能是关联的,后一根线可能是利用前一根线作为参考来生成。

笛卡尔坐标、圆柱坐标和极坐标

笛卡尔坐标系(Cartesian Coordinates)一般是指笛卡尔直角坐标系,是法国数学家、哲学家笛卡尔(我思,故我在)发明的用来描述空间点位置的坐标系统。在ProE/Creo中,你所看到的坐标系就是笛卡尔坐标系

动画帧

我们在电子设备上看到的各种动画和视频,实际都是由一幅幅连续变化的静态图片所组成,只是图片的切换间隔足够小,在人眼的视觉暂留作用下好像就是连续的运动了(人眼的视觉暂留大概0.1秒),这样的连续图片其中的每一张称为帧。要得到比较流畅和连贯的动画,至少要达到10帧/秒,而要想得到更好的效果,自然越大越好以前的电影一般是24帧/秒,普通人已经感觉不到任何停顿的,像前阵子李安导演的《比利。林恩的中场战事》是120帧/秒。在ProE或Creo中,机构模拟生成的动画实际都是通过连续生成不同位置的帧来实现动画效果的,包括分析模拟模块下的分析动画也是如此。

具体应用:

假设在ProE/Creo中默认的动画是10秒,一秒10帧,这样的动画当输出成avi时,如果选择25帧/秒,那么视频会变成只有4秒(100/25)同时速度会比你在模拟的时候快得多。

曲线曲率

Curve Curvature,曲线某点上的曲率就是曲线在该点处半径的倒数。因此曲率越大的地方表明该点的弯曲程度越高。

曲线的曲率

曲线间的C0,C1,C2,C3连接

曲率的连接

高斯曲率

高斯曲率(Gauss curvature),在图形学上可以通过高斯曲率来衡量一个曲面在某一点处弯曲程度。高斯曲率等于该点处的两个主曲率的乘积。

在ProE/Creo中,分析中的着色曲率分析就是高斯曲率分析。同时只有高斯曲率处处为0的曲面才能实现准确展平。

高斯曲率

不同的曲面间的连接质量通过G0/G1/G2/G3...表示

A级曲面

A-Class Surface,A级表面并没有一个公用的标准,不同的公司规定的要求各不相同,但一般都主要从连接曲面间的间隙(比如0.002mm)、切线方向改变(比如0.15度以下)和曲率改变(比如0.005度以下),以及曲面内部曲率变化几个方面作要求。但用一个大概的描述来表达就是非常顺滑连接的高质量表面。因此从这点来说,曲面间的连接一般要求G3以上,个别不太重要的局部地方可以允许G2连接,但并不代表只要所有顺滑连接曲面之间是G3连接了就可以认定外观达到了A级曲面。A级表面的曲面间的曲率变化必须要连续、自然,不能有外观要求外的突变。A级曲面主要用于汽车、航天器外观,近年来很多消费电子类、医疗设备类产品外观也有了A级曲面的要求。

A级曲面从视觉的直观来说,就是曲面表面的高光点集中、边缘均匀模糊,感觉泛着一层柔光

拓扑

拓扑是Topology的音译,是指几何图形或空间在改变形状后依然保持一些不变的性质的结构。对于拓扑结构来说,只考虑物体间的位置关系而不考虑它们的形状和大小。在图形学上,只要图形的构成方式不发生改变,比如构成图形的点、线和面的数目以及它们相互之间的结构关系没有发生改变,那就可以认为都是等价拓扑。

具体在软件上的具体例子,比如Creo的自由式曲面下,如下图三个类似球体、杯子和椅子的造型看起来差别很大,但实际上它们是等价拓扑,如果切换成曲面方式来显示,就可以看到它们都是有由10个面片所组成,虽然这10个面片在不同的图中有不同的形状,但是这些面片的结构关系都是保持不变的(比如原来1号面相邻的是2,4,7,8号面,那么经过变形后依然是这4个面),在拓扑学家们眼里,它们本质上是一个东西,因为拓扑结构并没有发生改变。

具体应用:

在ProE/Creo中,拓扑结构应用还体现在输入数据的处理上,通过比对修旧输入数据的拓扑结构变化,软件就可以实现类似参数化的更新。相关的config选项如下:

?atb_auto_check_on_activate

?atb_auto_check_on_retrieve

?atb_auto_check_on_update

GDI 、Directx和OpenGL

GDI(Graphics Device Interface)图形设备接口,是windows系统和绘图程序的信息交换接口,通过GDI接口,程序员无需关心硬件设备的具体实现,就可以把程序的输出转为硬件设备上的输出。也正因为这个原因,GDI实现的是一般显示设备都能够实现的基本功能。

DirectX(Direct Extension)是有微软创建的通用多媒体编程接口,或者可以说图形库,只能应用于Windows系统。Direct的的意思就是直接操作显示硬件,在一定程度上,可以认为DirectX是GDI的增强版,因此相比GDI接口自然可以获得更好的性能和实现更多的功能。DirectX被广泛用于Windows系统上的电子游戏开发。

OpenGL(Open Graphics Library)开放式图形库,OpenGL规范1992年成立的OpenGL架构评审委员会(ARB)维护,这个委员会的投票成员都是一些行业的巨头组成。它是一个用于渲染2D和3D矢量图形的跨平台(Windows/Unix/MacOS)编程接口(API)。这也是为什么主流的CAD和MCAD软件一般都基于OpenGL进行开发的缘故.对应地,专业显卡自然也提供了基于OpenGL的优化显卡驱动程序了。

虽然三者都是接口(接口相当于执行标准),但微软已经实现了GDI接口,因此不管对什么显卡,都可以在Windows系统下通过GDI接口实现基础的显示功能。

相比GDI,DirectX和OpenGL都只是定义了一套接口规范,并没有具体的实现,因此针对图形加速硬件的驱动程序一般就由显示设备厂商自己实现,这带来的一个好处就是可以最大限度发挥设备本身的性能,比如nvidia会为自己的显卡芯片推出对应的驱动程序,称之为公版驱动。但有些有实力的显卡生产商,虽然用的是nvidia的芯片,但会在公版驱动的基础上根据自己的产品功能定位开发自己产品的专属优化驱动,特别是专业显卡。这就是为啥采用同样的芯片,有些牌子的显卡性能会更出色点,除了制造工艺外,驱动程序也是关键。坏处就是可能会带来兼容上的问题。

因为主要用途不同,所以一般显卡的驱动程序侧重点也不同,directx驱动会比较侧重渲染速度和效率(对于大型游戏而言,速度第一,画面第二)。而opengl驱动会侧重于渲染的质量以及线条消隐处理。

以上就是部分作为经常需要和3D CAD打交道的模具/结构设计工程师应该要了解的基本图形图像知识,文章比较长,希望对大家有所帮助,喜欢的同学点个赞,有问题有意见的欢迎留言评论,更多这方面的知识以后再来分享。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210206A0ASD600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com