计算机图形学综述(一)

news2024/12/24 21:10:11

        计算机已经成为快速、经济地生成图片的强大工具。实际上已经没有哪个领域不能从使用图形显示中获益,因此也就不奇怪为什么计算机图形学的应用是那么广泛。虽然早期的工程和科学上的应用必须依赖于昂贵而笨重的设备,但是计算机技术的发展已经将交互式计算机图形学变成了一种实用工具。现在,我们可以看到计算机图形学已经频繁地应用于多种领域,如科学、艺术、工程、商务、工业、医药、政府、娱乐、广告、教学、培训和家庭等各方面的应用。我们还可以通过因特网将图像传播到世界各地。在深人了解计算机图形学如何工作以前,我们先简要地了解一下图形学的应用。


1.1图和表


        计算机图形学的一个早期应用是显示简单的数据图,通常在字符打印机上进行绘制。数据绘图现在仍然是最普遍的图形应用之一,但是如今可以很容易地为打印报告或使用 35 mm 片、透明胶片和动感视频的演示而生成能展现高度复杂数据关系的图片。在研究报告、管理总结、消费信息公报和其他类型的出版物中,常常使用图和表来总结财政、统计、数学、科学、工程和经济数据。现在有各种商业图示软件包、工作站设备和服务部门,专门用来将屏幕显示转换成用于演示和存档的电影、幻灯片或投影用的透明胶片。典型的数据绘图有折线图、直方图、饼图、曲面图、等高线图,以及其他给出二维、三维或多维空间中多个参数之间关系的显示图。三维的图和表用来增加显示的信息量,有时仅仅是为了改善效果,表达出引人注目的数据之间的相互关系。彩图1 是一个以曲面方式绘制的三维图例子,展示了一个高度场曲面和它的二维等高线投影。
在项目管理中,经常使用时间图和任务网络分布来制订日程表及管理项目进展


1.2计算机辅助设计


        尽管现在几乎所有的产品都已经使用计算机进行设计,但是计算机图形学的主要应用还是在设计过程中,尤其是在工程和建筑系统中。简称为CAD 的计算机辅助设计(computer-aided design)或简称为CADD的计算机辅助绘图和设计(computer-aided drafting and design)方法现在已频繁地应用于大楼、汽车、飞机、轮船、宇宙飞船、计算机、纺织品、家庭用品和许多其他产品的设计中。在某些设计中,对象首先是以线框轮廓的形式显示出来,从而展现其整个外形及该对象的内部特征。显示线框图可以让设计者很快地看到对设计的外形进行调整的结果,而不用等待对象表面全部生成。彩图2 给出了在设计应用方面的一个线框图例子。
        CAD 应用软件包通常为设计者提供多窗口环境。不同的显示窗口展示对象的局部放大或不同视图。       

        电路及通信网络、供水系统等设施都通过少量图形的反复布局来构建。在设计中使用的图形代表不同的网络或电路部件。而用于机械、电气、电子及逻辑电路的标准图形,则通常由设计软件包提供。在其他一些应用中,设计者可以设计个性化的符号来构建网络或电路。通过依次在布局图中安放部件,并由图形软件包自动提供部件之间的联系来完成对该系统的设计。这使得设计者能够快速测试不同的电路设计方案,从而减少系统需要使用的部件数量或空间。CAD 应用中还经常使用动画。在视频监视器上显示线框式的实时动画,对于测试汽车及系统的性能是很有用的。因为线框图的显示并不需要绘制表面,其每顿的计算可快速完成,从而使屏幕上的运动平稳。线框图显示还可让设计者观察飞行器的内部结构,以及在运动时内部构件的变化情况。
        在对象设计完成或将要完成的时候,应用逼真的光照模型和曲面绘制技术,可以生成最终产品的外形图。在汽车和其他交通工具的广告中也使用特殊的光照效果及背景场景来产生真实感效果的显示。
        制造过程也和设计对象的计算机描述联系起来,因此使用计算机辅助制造技术(computer-aidedmanufacturing,CAM),可以实现产品安装的自动化。例如电路板布局可转换成构造该电路图的各个过程的描述。某些机械零件按照指定如何使用机床来加工表面的描述,即指定机床加工一
个零件时在表面上的路径来制造。而数控机床则按该指定路径来加工零件。建筑设计师使用交互式图形技术来设计平面布局,图1.1 给出了房间、门、窗户楼梯、架子、柜台等的位置及其他建筑特征。面对监视器上显示的大楼平面布局图,电气设计师可以实验布线设计、电源插座和防火警报系统的不同安排。同样也可以使用设备布置软件来优化一个办公室或车间的空间使用。

         彩图3 给出了建筑设计的通真显示例子,这样可以让建筑设计师和他们的客户一起研究学校或工业区的一座或一群大楼的外貌。除了大楼外貌的真实感显示以外,建筑 CAD 软件包还可提供三维的室内布局和光照的功能。
还有许多其他类型的系统和产品也使用了通用 CAD 软件包或专门开发的 CAD 软件进行设计。


1.3 虚拟现实环境


        计算机图形学的一个最新应用是生成虚拟现实环境(virtual-reality environment),在此环境中用户可与三维场景中的对象进行交互。该环境中有专门的硬件设备提供三维观察效果,并允许用户在场景中拾取对象。

        虚拟现实环境中的动画常用来训练大型设备的操作员或分析各种机舱配置和控制安排的有效性例如,用于训练拖拉机驾驶员的虚拟现实环境可能包括一组和头盔结合的拖拉机模拟控制,头盔中显示出前铲斗或反向铲的立体视图,就好像驾驶员坐在真的拖拉机驾驶座上那样。这使设计者可以了解在驾驶员位置可能看不到的前铲斗和反向铲的各种位置,以便在整个设计中更好地考虑它们。有了虚拟现实系统,设计者和其他人可以使用各种方式移动对象并与之进行交互。人们可以通过仿真方式“走人”房间或围绕大楼转圈欣赏特定设计的整体效果,从而测试建筑设计。我们甚至可以借助于一种专门的手套从场景中“抓取”对象、将其放回场景或从一处移到另一处。


1.4数据可视化


        为科学计算、工程和医药数据集或过程生成图形表示,通常称为科学计算可视化(scientifovisualization)。而术语商务可视化(business visualization)则用在与贸易、工业和其他非科学计算领域相关的数据可视化中。
        研究员、分析员和其他有关人员经常要分析大量的信息或研究高度复杂过程的行为。例如计算机上进行的数值模拟可以不断生成包含成千上万数值的数据文件。同样,卫星摄像机等也在快速地积聚大量的数据文件,这要比数据得到解释的速度快得多。扫描大容量数据以确定趋势及相互关系是一个乏味和低效的过程。但是,如果将这些数据转换成可视形式,则趋势和模式就可以立刻呈现出来。一旦我们按这种方法绘出密度值,就可以很容易地看到整个数据模式。数据集的类型有许多种,而高效的可视化方法依赖于数据的特征。一组数据可以包含标量向量、高次张量或这些数据类型的组合。数据集可能分布在二维、三维或更高维的空间区域。前色编码仅仅是数据集可视化的一种方法。另外还有等值线、常数值表面或其他空间区域的绘制以及专门设计用来表达不同数据类型的形态等绘制技术。
        可视技术还用于帮助理解与分析复杂的过程和数学函数。科学家们还正在开发对一般数据进行可视化的方法。
        彩图4 和彩图5 给出了另外一些可视化应用例子。彩图4 给出了雷暴雨的数值模型,彩图5给出了一个科学家在虚拟现实环境中交互观察分子结构的情景。

1.5教学与培训


        计算机生成的物理模型、财政模型和经济模型常用做教学的辅助工具。物理过程、生理功能、人口趋势模型或设备的模型等都可以帮助学员理解系统的操作。有些方面的培训要设计专门的硬件系统。例如,用于船长、飞行员、大型设备操作员和空中交通管制人员实习与培训的模拟系统就是这样一种专用系统。有些模拟器没有显示屏幕一一例如,一个飞行模拟器可能只有用于仪表飞行的控制板一一但是大多数模拟器配有用于模拟外部环境虚拟显示的屏幕。


1.6计算机艺术


        美术和商务艺术也都应用计算机图形学的方法。艺术家使用各种计算机方法,包括专用硬件、商业化的软件包(如 Lumena)、符号数学程序(如 Mathematica)、CAD 软件包、桌面出版软件和动画软件来设计物体的外形及描述物体的运动。
        画笔程序(paint brush program)是艺术家和设计师可在监视器上“绘”画的计算机化工具的一个例子。实际上,绘画是以电子方式画在带有触笔的数据板上,该触笔能模拟不同的笔划、粗细及颜色。

        彩图6中的水彩画使用配有无绳压感触笔的画笔系统生成。触笔将变化的手的压力转换成各种笔划粗细、尺寸和颜色级;另外还有软件允许艺术家创作模拟不同的干燥时间、水分和轨迹的水彩画、粉笔画或油赢拔岸唉»本宝凹宝倍艾缠敝翠挫癌果。
        美术家使用各种计算机技术来生成图像,包括混合地使用三维建模软件包、纹理映射软件绘图软件及 CAD 软件,以及不需美术家干预就能生成“自动美术”的 CAD 软件
        还可以生成“数学"美术。艺术家可混合使用数学函数、分数维过程、软件、喷墨打印机和其他系统来生成各种三维和二维形状及立体感图像。另一个通过数学关系生成电子画的例子是通过改变与作曲中的频率变化和其他参数相关的绘画特征来集成视频和音频。
商务艺术也将这些“绘画”方法用于标牌等商用美术设计、图文组合的页面布局设计及电视广告等领域。和许多其他计算机图形应用一样,商务艺术显示常使用照相式逼真技术来绘制设计图、产品和场景的图片。
        电视商业片中也经常使用计算机动画。电视广告一帧一帧地绘制生成,每顿以独立的图像文件来存储。通过将后继顿中的物体位置相对于前一顿进行微小的移动来实现对动画中运动的模拟。绘制好动画序列中的所有顿以后,将这些顿传送到胶片上或存储到视频缓存中以备重播电影动画需要每分钟顺序播放24 。如果在视频显示器上重播动画,则需每分钟 30 。将一个物体转换为另一个的变形(morphing)技术是许多电视商业中常用的一种图形方法在电视商业中使用该方法可将一个油桶变成一个汽车引擎,将一部汽车变成一只老虎,将一潭水变成一只轮胎,将一个人的脸变成另一个人的脸。


1.7娱乐


        电视产品、动画片和音乐视频等也频繁地使用计算机图形方法。有时将图形场景与演员及实际场景相混合,有的电影则完全由计算机绘制和动画技术生成。
        许多电视剧经常使用计算机图形方法来产生特技效果。有些电视节目也使用动画技术将计算机生成的人、动物或卡通人物与真正的演员在场景中混合,或者将一个演员的脸变换成另外的形状。许多节目使用计算机图形学来生成大楼、地表特征或场景的背景等。
        计算机生成的特技效果、动画、人物素描和场景广泛地应用于当代电影中。许多获奖电影的制作者使用先进的计算机建模和面绘制方法使日常的玩具、灯泡和餐具等成为有生命的“角色”。还有-些电影使用计算机建模、绘制和动画生成完整的拟人化角色。照相级真实感技术为电影中计算机生成的演员提供肌肤色调、真实感的面部特征和皮肤缺陷(如痣、光点、雀斑和粉刺)等。计算机图形方法还可用来仿真真正的演员。使用记录演员脸部特征的数字文件,动画程序可生成包含这个人的计算机复制品的电影片段,或数字化地用一个演员取代另一个演员。音乐录像片中按照多种不同的方式使用图形学。可以将图形对象混合进实景中,图形学和图像处理技术也可用来将一个人或对象变成另一个(变形)。


1.8图像处理


        照片和电视扫描片等现有图片的修改或解释称为图像处理(image processing)。尽管在计算机图形学和图像处理中所使用的技术有所重叠,但两种领域着重于本质上不同的操作。在计算机图形学中,计算机用来生成图形;而图像处理技术用来改善图片质量、分析图像或为机器人应用识别可视图形。然而,图像处理技术经常应用于计算机图形学,计算机图形学方法也频繁应用于图像处理。般而言,照片或其他图片在使用图像处理方法之前先数字化成一个文件。然后使用数字方法重新安排图片的各部分、提高颜色分离度或改善着色质量。这些技术被广泛地应用于商务艺术应用,包括对照片的某部分和其他美术作品进行调色或重新安排。类似的方法还用于分析地球的卫星照片或银河星系的望远镜记录。
        医学上也广泛地将图像处理技术应用于图片增强、层析X 射线造影术和外科手术模拟等方面。层析X射线造影术是一种X 射线照片技术,它能将生理系统的剖面显示出来。计算机控制X射线断层造影术(computed X-ray tomography,CT)、定位发射造影术(position emission tomography,PET)和计算机轴向造影术(computed axial tomography,CAT)等均使用投影方法从数字数据中重建剖面。这些技术也用于在进行外科手术时监视身体的内部功能和显示剖面。其他医学图像技术包括超声波和核子医学扫描仪。超声波扫描仪使用高频声波代替X 射线来产生数字数据。核子医学扫描仪从吸收的放射性核素的放射过程中收集数据并绘制彩色图像。图像处理和计算机图形学在许多医学应用中常常结合在一起,用于对机体功能进行建模和研究、设计人造肢体及计划和练习手术等。最后一种应用称为计算机辅助手术(computer-aidedsurgery)。通过使用图像技术可以获得身体的二维剖面图,然后使用图形方法模拟实际的手术过程,从而观察和管理每一剖面,并实验不同的手术位置。


1.9图形用户界面


        现在的应用软件提供图形用户界面(graphical user interfaceGUI)是非常普遍的。GUI的主要部分是一个允许用户显示多个矩形屏幕区域窗口的窗口管理程序。每一个屏幕显示区域可以进行不同的处理,展示图形或非图形信息,并且显示窗口可以用多种方法激活。可以通过使用鼠标之类的交互式点击设备将屏幕光标定位到某系统的显示窗口区域,并按下鼠标左键来激活该窗口。有的系统还可以通过点击标题条来激活显示窗口。
        界面提供菜单和图标用于选择显示窗口、处理选项或参数值。图标是一个设计成能暗示所选对象的图形符号。图标的优点是它比相应的文本描述占用较少的屏幕空间,如果设计得好,可以很容易地理解。一个显示窗口与相应的图标表示可以相互转换,而菜单中可以包含一组文字描述或图标。


1.10小结


        本章综述了计算机图形学技术应用的许多领域,包括数值图、CAD、虚拟现实、科学计算可视化、教育、艺术、商务、图像处理和 GUI。但是还有许多其他领域没有提到,我们也无法将其他应用领域的例子都放进本书。后面几章将对本章讨论的应用及其他一些应用中使用的设备和方法进行探讨。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/693519.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sharding-jdbc分片功能学习笔记

sharding-jdbc是sharding-sphere下的一个模块,可以理解为增强版的jdbc,用于解决分库分表、读写分离问题,本文基于4.1.1版本进行说明数据分片功能的流程 该版本提供了如下功能 1.数据分片(包括强制路由功能) 2.读写分…

win10系统下安装qt5.12.0软件

一、软件下载 1、Qt开源社区下载 下载地址:https://download.qt.io/archive/qt/5.12/5.12.10/qt-opensource-windows-x86-5.12.10.exe 社区地址: Index of /archive/qt/5.12/5.12.10 2、百度网盘下载 链接:https://pan.baidu.com/s/1Sqi…

举例说明什么是卷积计算

卷积计算是一种数学运算,主要用于信号处理、图像处理等领域。它涉及到两个函数(通常称为信号和核)的互相关运算。在图像处理中,卷积计算通常用于实现图像的平滑、锐化、边缘检测等操作。 以图像处理为例,我们可以用一个…

【面试题24】MySQL如何给一个1000万的表安全的加字段

文章目录 一、前言二、MySQL表添加字段的方案2.1 ALTER TABLE 添加字段2.2 Online Alter Table2.3 Percona Toolkit2.4 给表新增字段2.5 使用触发器添加字段 总结 一、前言 本文已收录于PHP全栈系列专栏:PHP面试专区。 计划将全覆盖PHP开发领域所有的面试题&#xf…

【AIGC】18、MobileSAM | 首个专为移动端设计的更快的 SAM

文章目录 一、背景二、方法2.1 耦合蒸馏2.2 从半蒸馏到解耦蒸馏 三、效果 论文:FASTER SEGMENT ANYTHING: TOWARDS LIGHTWEIGHT SAM FOR MOBILE APPLICATIONS 代码:https://github.com/ChaoningZhang/MobileSAM 出处:韩国庆熙大学 时间&am…

MP4视频格式和mp4v2的移植

目录 1、视频文件 2、MP4 3、MP4学习方法 4、MP4文件格式解析 5、MP4Info工具使用 6、mp4v2移植和播放 6.1、下载mp4v2 6.2、配置并编译 6.3、部署 6.4、编译sample 6.5、准备TF卡 6.6、运行和测试 7、MP4打包源码解析 8.添加网络telnet调试 8.1、为什么添加teln…

java进程注入

本文重点java Instrumentation java Instrumentation指的是可以用独立于应用程序之外的代理(agent)程序来监测和协助运行在JVM上的应用程序。这种监测和协助包括但不限于获取JVM运行时状态,替换和修改类定义等。简单一句话概括下:…

11 通信的基本概念

目录 通信分类概览 串行通讯与并行通讯 全双工、半双工及单工通讯 同步通讯与异步通讯 通讯速率 注意 通信分类概览 串行通讯与并行通讯 串行通讯是指设备之间通过少量数据信号线(一般是 8 根以下),地线以及控制信号线,按数据位形式一位一位地传输…

Windows下创建进程的理解

创建windows进程,需要考虑两个点,即session和权限问题。了解这两点,网络上服务创建界面进程,管理员权限进程创建普通权限进程的代码则很好理解。 1、基础知识 (1) session (2) 权限 CreateProcessAsUser需要传入一个token&#x…

LeetCode 打卡day45--完全背包问题之最小填充次数

一个人的朝圣 — LeetCode打卡第45天 知识总结Leetcode 70. 爬楼梯题目说明代码说明 Leetcode 322. 零钱兑换题目说明代码说明 Leetcode 279. 完全平方数题目说明代码说明 知识总结 今天的问题都可以归结一句话, 在完全背包的问题设置下, 问将该背包填满最少需要放几件物品. L…

java基础(并发编程)-异步模式之生产者/消费者

一、定义要点 与前面的保护性暂停中的GuardedObject不同,不需要产生结果和消费结果的线程一一对应消费队列可以用来平衡生产和消费的线程资源生产者仅负责产生结果数据,不关心数据该如何处理,而消费者专心处理结果数据消息队列是有容量限制的…

代码随想录算法训练营第17期第1天 | 704. 二分查找、27. 移除元素

从头开始,重新再来,但是又不完全一样,之前是擅长的python,现在是C,能坚持下来么? 704. 二分查找 704. 二分查找https://leetcode.cn/problems/binary-search/ 上次写这道题已经是两个月之前,说…

Openresty原理概念篇(七)OpenResty 中用到的 NGINX 知识

一 OpenResty 中用到的 NGINX 知识 Luaj 是一个 Java 的 Lua 解释器,基于 Lua 5.2.x 版本 luaj ① 说明 1) 本文可有可无原因:如果你之前没有接触过nginx或者涉及一点nginx,那么建议阅读2) 由于自己已经对nginx整个脉络体系进行讲解,本文只是机械的摘录,构成…

Java使用RabbitMQ实战,Springboot使用rabbitMQ实战

文章目录 一、Java原生API1、简单实例2、延迟消息3、消费端限流4、消息属性设置5、消息可靠投递 二、Spring-API1、简单实例(1)引入rabbitMQ.xml(2)生产者(3)消费者(4)测试类 三、Sp…

使用VSCODE跑orbslam2踩的坑

我用的是ubuntu22.04,opencv是4.7,使用其他的库感觉就算版本不一样,也能跑。 一、运行build.sh能够产生可执行文件遇到的问题 1.由于opencv版本高带来的问题 这些问题怎么定位出现在哪些文件中,你通过命令行,运行下…

更灵活的CSS3新特性:帮你简化样式管理和优化网站性能

文章目录 I. 前言:介绍CSS3的进化和发展趋势CSS3的历史和版本CSS3的标准化和浏览器支持情况 II. 新的CSS选择器:扩展选择器的功能属性选择器:更多方式选择元素伪类和伪元素:更方便地定义样式 III. 改进的排版和布局:实…

在 EulerOS 系统中设置 Chrony 时间同步服务

以下是在 EulerOS 系统中设置 Chrony 时间同步服务的所有步骤。 1.查看系统版本 [rootservice11 ~]# cat /etc/redhat-release EulerOS release 2.0 (SP5)2.检查是否已安装chrony软件 [rootservice11 ~]# rpm -qa|grep chrony chrony-3.2-2.eulerosv2r7.x86_64如果没有安装…

Openlayers实战教程学习大纲及引导

本系列教程是Openlayers的实战教程,介绍Openlayes的一些基础知识,并重点讲述哪些地方是openlayers项目中常用的,给出具体示例,起到一个很好的引导学习作用。 版本说明 Openlayers的实战教程 分为**图文版** 和 **视频版**&#x…

【经验分享】全志科技官方Ubuntu16.04根文件系统镜像的替换和测试方法

本文主要基于全志A40i开发板——TLA40i-EVM,一款基于全志科技A40i处理器设计的4核ARM Cortex-A7高性能低功耗国产评估板,演示Ubuntu根文件系统镜像的替换和测试方法。 创龙科技TLA40i-EVM评估板接口资源丰富,引出双路网口、双路CAN、双路USB…

7.5_1散列查找(上)

基于一种数据结构: 散列表(Hash Table),又称作哈希表 特点:数据元素的关键字与其存储地址直接相关 其实这个散列表也是基于数组实现的 加入19对13取余 加入再次插入1的话,塞不进去 数据元素不会直接存放到…