精华内容
下载资源
问答
  • TDS稳定性分析的可靠图形标准
  • 基于MATLAB图形界面的电力系统稳定性仿真分析-POWERSYSTEM.rar 程序作者:infinity250 中文论坛会员
  • Loopers是用Rust编写的图形化 ,旨在简化易用性和坚如磐石的稳定性。 它可用作练习工具,作曲辅助或在现场环境中进行循环播放的作品。 当前,它仅作为独立的应用程序在Linux上运行,这使其可以与其他Jack客户端...
  • 什么是计算机图形学?

    千次阅读 2016-06-06 12:49:54
    什么是计算机图形学? 刘利刚 中国科技大学 http://staff.ustc.edu.cn/~lgliu   【注】 由于时常有本科学生来向笔者询问计算机图形学是做什么的,为了使得学生能够快速了解计算机图形学,有利于他们在选择...

    什么是计算机图形学

    刘利刚

    中国科技大学

    http://staff.ustc.edu.cn/~lgliu

     

    【注】 由于时常有本科学生来向笔者询问计算机图形学是做什么的,为了使得学生能够快速了解计算机图形学,有利于他们在选择研究生方向做出适合自己的选择,特撰写此文。本文仅仅为笔者对计算机图形学浅薄的理解,不涉及对概念的定义,是非学术性的。因此,笔者尽量尝试用通俗的语言介绍一下计算机图形学的内容及其应用,以帮助还未接触计算机图形学领域的学生来了解该学科方向。笔者对其中的有些内容的理解也是很有限的,值得进一步的学习和交流。有不当之处,还请读者谅解指正。

     

    一、             什么是计算机图形学?

     

    什么是计算机图形学?计算机图形学(Computer Graphics,简称CG)的内容比较丰富,与很多学科都有交叉,因此笔者认为是无法严格定义的。

    在“Wiki百科”和“百度百科”上,对“计算机图形学”的解释为:计算机图形学是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。虽然通常认为CG是指三维图形的处理,事实上也包括了二维图形及图像的处理。

    狭义地理解,计算机图形学是数字图象处理或计算机视觉的逆过程:计算机图形学是用计算机来画图像的学科,数字图象处理是把外界获得的图象用计算机进行处理的学科,计算机视觉是根据获取的图像来理解和识别其中的物体的三维信息及其他信息。

    注意,这些都是不确切的定义,实际上,计算机图形学、数字图象处理和计算机视觉在很多地方的区别不是非常清晰,很多概念是相通的,而且随着研究的深入,这些学科方向不断的交叉融入,形成一个更大的学科方向,可称之为“可视计算”(Visual Computing)。这是后话,此处不详述。

     

    二、             计算机图形学的主要内容

     

    在学科开创之初,计算机图形学要解决的是如何在计算机中表示三维几何图形,以及如何利用计算机进行图形的生成、处理和显示的相关原理与算法,产生令人赏心悦目的真实感图像。这是狭义的计算机图形学的范畴。随着近40年的发展,计算机图形学的内容已经远远不止这些了。广义的计算机图形学的研究内容非常广泛,如图形硬件、图形标准、图形交互技术、光栅图形生成算法、曲线曲面造型、实体造型、真实感图形计算与显示算法,以及科学计算可视化、计算机动画、自然景物仿真、虚拟现实等。

    根据笔者的理解,计算机图形学主要包含四大部分的内容:建模(Modeling)、渲染(Rendering)、动画(Animation)和人机交互(Human–computer Interaction, HCI)

     

    1、 建模(Modeling)

    要在计算机中表示一个三维物体,首先要有它的几何模型表达。因此,三维模型的建模是计算机图形学的基础,是其他内容的前提。表达一个几何物体可以是用数学上的样条函数或隐式函数来表达;也可以是用光滑曲面上的采样点及其连接关系所表达的三角网格来表达(即连续曲面的分片线性逼近),如下图所示。

    三维建模方法主要包含如下的一些方法:

    l  计算机辅助设计(CAD)中的主流方法是采用NURBS(非均匀有理B-样条、Bezier曲线曲面)方法(已成为CAD工业领域的标准),这也是计算机辅助几何设计(CAGD)所研究的主要内容。此类表达方法有一些难点问题仍未解决,比如非正规情况下的曲面光滑拼合,复杂曲面表达等。这部分涉及的数学比较多,国内做这块的学者比较多些。

    l  细分曲面(Subdivision surface)造型方法,作为一种离散迭代的曲面构造方法,由于其构造过程朴素简单以及实现容易,是一个方兴未艾的研究热点。经过十多年的研究发展,细分曲面造型取得了较大的进展,包括奇异点处的连续性构造方法以及与GPU图形硬件相结合的曲面处理方法。

    l  利用软件的直接手工建模。现在主流的商业化的三维建模软件有Autodesk 3D Max和 Maya。其他还有面向特定领域的商业化软件,比如面向建筑模型造型的Google Sketchup,面向CAD/CAM/CAE的CATIA和AutoCAD,面向机械设计的SolidWorks,面向造船行业的Rhino等。这些软件需要建模人员有较强的专业知识,而且需要一定时期的培训才能掌握,建模效率低而学习门槛高,不易于普及和让非专业用户使用。

    l  基于笔划或草图交互方式的三维建模方法。草图交互方式由于其符合人类原有日常生活中的思考习惯,交互方式直观简单,是最近几年研究的热点建模方法。其难点是根据具体的应用场合,如何正确地理解和识别用户的交互所表达的语义,构造出用户所希望的模型。

    l  基于语法及规则的过程式建模方法。特别适合具有重复特征和结构化的几何物体与场景,比如建筑、树木等。最近几年有较多的论文及较大的发展。

    l  基于图像或视频的建模方法。这是传统的计算机视觉所要解决的基本问题。在计算机图形学领域,这方面的发展也很迅速。有一些商业化软件或云服务(比如Autodesk的123D),已经能从若干张照片重建出所拍摄物体的三维模型。该方法的问题是需要物体本身已经存在,而且重建的三维模型的精度有限。

    l  基于扫描点云(深度图像如Kinect、结构光扫描、激光扫描、LiDAR扫描等)的建模(Reconstruction)方法。随着深度相机的出现及扫描仪的价格迅速下降,人们采集三维数据变得容易,从采集到的三维点云来重建三维模型的工作在最近几年的Siggraph(Asia)上能常见到。但是,单纯的重建方式存在精度低、稳定性差和运算量大等不足,远未能满足实际的需求。

    l  基于现有模型来合成建模的方法。随着三维模型的逐渐增多,可以利用现有的三维模型通过简单的操作,比如cut and paste,或者分析及变形等手段,来拼接或合成新的三维模型。这种通过“学习”模型数据库的知识来进行建模的手段在近3-5年里研究得非常热门。从某方面来讲,就是“大数据时代”背景下计算机图形学领域中的一个具体的表现。

     

    除了上述的这些建模方法,还有其他的一些建模方法,在此不再一一列举。

    在对三维几何模型的构建过程中,还会涉及到很多需要处理的几何问题,比如数据去噪(denoising or smoothing)、补洞(repairing)、简化(simplification)、层次细节(level of detail)、参数化(parameterization)、变形(deformation or editing)、分割(segmentation)、形状分析及检索(shape analysis and retrieval)等。这些问题构成“数字几何处理”的主要研究内容。笔者自2005年起开设了多年的《数字几何处理》的研究生课程:

    http://staff.ustc.edu.cn/~lgliu/Courses/DGP_2012_spring-summer/default.htm

     

    虽然有上述所提到的这么多的三维建模方式,但是至今为止,仍没有适合一般家庭用户的轻松简单的建模工具。现有的电子设备(比如相机,手机等)能够帮助人们轻松获得图像和视频,但是,不是人人都有能力来构建三维几何模型。如何让大众能够像获取图像那样能够随时随地地获取或者构建三维模型,仍然是计算机图形学的任重道远的主要任务之一!今天,计算机图形学仍未进入“大数据时代”。只有让大众能够轻松进行三维建模,并上载分享他们所构建的模型数据,计算机图形学才可能进入大数据时代。

    另外,随着三维打印(3D printing)的新兴技术的逐渐普及,人们对三维模型的需求也日益增加。笔者个人认为,几何建模和三维打印的未来是共呼吸,同命运的:也只有当人人都能轻松建模时,三维打印才有可能走向千家万户。

    三维几何建模的任务仍然任重道远,大家仍需共同努力!

     

            

     

    2、 渲染(Rendering)

    有了三维模型或场景,怎么把这些三维几何模型画出来,产生令人赏心悦目的真实感图像?这就是传统的计算机图形学的核心任务,在计算机辅助设计,影视动漫以及各类可视化应用中都对图形渲染结果的高真实感提出了很高的要求。

    上个世纪80-90年代研究的比较多些,包含了大量的渲染模型,包括局部光照模型(Local Illumination Model)、光线跟踪算法(Ray Tracing)、辐射度(Radiosity)等,以及到后面的更为复杂、真实、快速的渲染技术,比如全局光照模型(Global Illumination Model)、Photo mapping、BTF、BRDF、以及基于GPU的渲染技术等。

    现在的渲染技术已经能够将各种物体,包括皮肤、树木、花草、水、烟雾、毛发等渲染得非常逼真。一些商业化软件(比如Maya, Blender, Pov Ray等)也提供了强大的真实感渲染功能,在计算机图形学研究论文中作图中要经常用到这些工具来渲染漂亮的展示图或结果图。

    然而,已知的渲染实现方法,仍无法实现复杂的视觉特效,离实时的高真实感渲染还有很大差距,比如完整地实现适于电影渲染(高真实感、高分辨率)制作的RenderMan标准,以及其他各类基于物理真实感的实时渲染算法等。因此,如何充分利用GPU的计算特性,结合分布式的集群技术,从而来构造低功耗的渲染服务是发展趋势之一。

    http://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Glasses_800_edit.png/250px-Glasses_800_edit.png  http://www.ozone3d.net/public/jegx/201107/skin_rendering_sssss.jpg  http://www.cs.uiuc.edu/~yyz/research/hair/cover_hair.jpg  http://www.rhythm.com/~ivan/images/hair/tabby.yuv.jpg

     

    3、 动画(Animation)

    动画是采用连续播放静止图像的方法产生物体运动的效果。计算机动画借助于编程或动画制作软件生成一系列的景物画面,是计算机图形学的研究热点之一。研究方向包括:人体动画,关节动画,运动动画,脚本动画,具有人的意识的虚拟角色的动画系统等。另外,高度物理真实感的动态模拟,包括对各种形变、水、气、云、烟雾、燃烧、爆炸、撕裂、老化等物理现象的真实模拟,也是动画领域的主要问题。这些技术是各类动态仿真应用的核心技术,可以极大地提高虚拟现实系统的沉浸感。计算机动画的应用领域广泛,比如动画片制作,广告、电影特技,训练模拟,物理仿真,游戏等。

    网上的一些3D动画的视频:

    Larva虫虫http://v.youku.com/v_show/id_XMzAzMzkxMTY0.html

    The Killer Bean: http://v.youku.com/v_show/id_XMjI5ODE2MTEy.html

    爱与孝http://v.youku.com/v_show/id_XNTU0OTUxNjUy.html

    房地产动画广告宣传片http://v.youku.com/v_show/id_XNTc1OTE4MDMy.html

     

    4、 人机交互(Human–Computer Interaction, HCI)

    人机交互(Human-Computer Interaction, 简写HCI)是指人与计算机之间以一定的交互方式或交互界面,来完成确定任务的人与计算机之间的信息交换过程。简单来讲,就是人如何通过一定的交互方式告诉计算机来完成他所希望完成的任务。

    计算机图形学的顶级会议ACM SIGGRAPH是“ACM Special Interest Group on GRAPHics and Interactive Techniques”的缩写,缩写中只包含了Graphics,而忽略了Interactive Techniques,在长时间没有得到计算机图形学研究的重视。最近,包括在SIGGRAPH会议上,以及人机交互的顶级会议SIGCHI上,陆续出现了许多新兴的人机交互技术及研究论文。大家逐渐重视起来。

    在早期(上个世纪60-70年代),只有以键盘输入的字符界面;到了80年代,以WIMP(窗口、图符、菜单、鼠标)为基础的图形用户界面(GUI)逐渐成为当今计算机用户界面的主流。

    近年来,以用户为中心的系统设计思想,增进人机交互的自然性,提高人机交互的效率是用户界面的主要研究方向。陆续提出了多通道用户界面的思想,它包括语言、姿势输入、头部跟踪、视觉跟踪、立体显示、三维交互技术、感觉反馈及自然语言界面等。

    事实上,人体的表面本身就是人机界面。人体的任何部分(姿势,手势,语言,眼睛,肌肉电波,脑波等)都可以成为人机对话的通道。比如2010年微软出的Kinect就是一种无需任何操纵杆的基于体感的人机界面,用户本身就是控制器。Kinect在微软的Xbox游戏上取得了极大的成功,之后在其他方面也得到了很多的应用。

    特别是到了今年(2013年),人机交互设备有了巨大的发展,各种自然的交互手段层出不穷,极大地丰富了用户与机器交互的体验,方便了用户的操作,轻松表达了用户的交互意图。可以说,

    我们正处在图形与交互技术极速发展的浪尖!

     

    以下是最近几年(特别是今年)出现的一些值得关注的新兴的人机交互设备:

    l  Microsoft Kinecthttp://v.youku.com/v_show/id_XNTc2ODY0MTA4.html

    1)       Kinect由微软于2010年推出的对XBOX360体感外设,它不需要使用任何控制器,仅依靠相机捕捉三维空间中玩家的运动,同时它导入了即时动态捕捉、影像辨识、麦克风输入、语音辨识、社群互动等功能。Kinect彻底颠覆了游戏的单一操作。使人机互动的理念更加彻底的展现出来。之后,基于Kinect的各种应用像雨后春笋般的冒出来,包括人机交互,手势识别,几何建模等。

    2)       2013年5月28日的Xbox One发布会上,微软展示了新一代Kinect 2.0,新 Kinect能感知的语音、手势和玩家感觉信息,将给玩家带来前所未有的互动性体验:

    http://v.youku.com/v_show/id_XNTIyODU0NDky.html

    l  Leap Motionhttp://v.youku.com/v_show/id_XNTAwMzg0MTQw.html

    Leap Motion为放在键盘和显示器之间的小小金属棒,就能让任何一位用户通过简单的手势完成人机交互。Leap Motion 的响应惊人的准确,对各种自然而简洁的手势都能识别。不必站起来或者摆动手臂,Leap Motion 是简单而毫不费力的交互方式。我们在4月份就预订了一台,到现在还未到货,估计要到下个月到货。到货后我们会对其进行评测。

    l  MYOhttp://v.youku.com/v_show/id_XNTYzNzg3MDA0.html

    MYO 是一款能在用户挥动并指向屏幕时测量各种肌肉产生的电活动来完成交互的腕带。MYO 超越 Leap Motion 的一点是,MYO 对用户的位置没有限制。尽管MYO只听令于身体的一个部分(手臂),但是其应用的场合还是很多的。期望未来会有更多的听令于身体的其他部分的交互设备。

    l  Google Glasshttp://v.youku.com/v_show/id_XNTYzNzk1NjIw.html

    Google Glass为Google公司在2012的I/O开发者大会上正式公布的,在看起来普普通通的眼镜上配置强大的计算机和显示器。这款设备小巧而不显眼,可以在任何时间地点使用,即用户想要专注于周围环境时不会碍事。不过对其未来的发展各有说法,让我们拭目以待。

    l  3D Printer:这个就不用笔者详细说了,这两年太火了。正如上面所提到的观点,笔者觉得3D打印的出现带给了我们从事计算机图形学研究的工作者许多的机会。挑战和机会并存!我们应该要抓住这次机会!

    l  3Doodlerhttp://v.youku.com/v_show/id_XNTE2MjM5NzUy.html

    3Doodler是玩具和机器人公司Wobble Works开发的全球首款“3D打印笔”,可以帮助人们在半空中创造出三维结构的模型。今后人们可以在三维空间中来“画图”交流和表达想法了。

    l  Apple iWatchhttp://v.youku.com/v_show/id_XNTIwODk0MzM2.html

    iWatch由苹果公司推出的一款智能手表。现在仍是概念产品,面世时间未定。其界面看看视频就知道有多酷。但是其技术上的实现笔者也没有完全想通,呵呵。

     

    除了上述介绍的外,最近还有其他很多新的人机交互类的电子科技产品,比如透明手机,可折叠的屏幕,具有气味和触感反馈的头盔等,就不一一介绍了。

    由此可见,以前在科幻电影里出现的“神器”逐渐被实现,计算机图形学及相关技术在其中发挥了重要的作用。同时,这些设备的出现,也带给了计算机图形学领域更多的探索和机会。

     

    5、 其他内容

    上述所提到的只是计算机图形学的主要的四个内容。事实上,与计算机图形学相关的学科还有很多,以下仅介绍几个最为相关的研究方向:

    l  虚拟现实(Virtual Reality):利用计算机图形产生器,位置跟踪器,多功能传感器和控制器等有效地模拟实际场景和情形,从而能够使观察者产生一种真实的身临其境的感觉。虚拟现实技术主要研究用计算机模拟(构造)三维图形空间,并使用户能够自然地与该空间进行交互。对三维图形处理技术的要求特别高。简单的虚拟现实系统早在70年代便被应用于军事领域,训练驾驶员。80年代后随着计算机软硬件技术的提高,它也得到重视并迅速发展。它已在航空航天、医学、教育、艺术、建筑等领域得到初步的应用。

    l  可视化(Visualization):利用计算机图形学和图像处理技术,将数据转换成图形或图像在屏幕上显示出来,并进行交互处理的理论、方法和技术。现已成为研究数据表示、数据处理、决策分析等一系列问题的综合技术。上面提到的虚拟现实技术也是以图形图像的可视化技术为依托的。在现在的大数据时代的背景下,可视化的内容除了传统的科学可视化外,现在还有信息可视化,可视分析等方面。

    l  可视媒体计算与处理(Visual Media Processing):几何数据,被认为是继声音、图像、视频之后的新一代数字媒体,是计算机图形学的研究重点。最近几年,计算机图形学与图像视频处理技术相结合的研究与技术日益增多。正如笔者在上面所提及的,图像和视频的大数据处理能带给计算机图形学很多处理手段上的更新。另一方面,随着而计算机图形学技术,恰可以与这些图像处理,视觉方法相交叉融合,来直接地生成风格化的画面,实现基于图像三维建模,以及直接基于视频和图像数据来生成动画序列。当计算机图形学正向地图像生成方法和计算机视觉中逆向地从图像中恢复各种信息方法相结合,可以带来无可限量的想象空间,构造出很多视觉特效来,最终用于增强现实、数字地图、虚拟博物馆展示等多种应用中去。因此,在很多方面,计算机图形学与图像处理、视频处理、多媒体处理、计算机视觉等学科逐渐融合在一起,有成为一个更大的学科的趋势。

    l  医学图像处理(Medical Imaging):随着医学成像技术的发展与进步,图像处理在医学研究与临床医学中的应用越来越广泛。与一般意义上的图像处理比较,医学图像处理有其特殊性和不同的侧重点。医学图像处理由生物医学成像(X射线、CT、MRI)和生物医学图像处理两部分组成,在生命科学研究、医学诊断、临床治疗等方面起着重要的作用。医学图像分析中涉及的两个最为重要的内容为图像分割与图像配准。

    l  计算机艺术(Computational Arts):计算机图形学的发展也提供给了艺术家发挥和实现想象的丰富的技术手段。计算机艺术的发展速度远远超出了人们的想象,在代表计算机图形研究最高水平的历届SIGGRAPH年会上,精彩的计算机艺术作品层出不穷。在计算机图形学领域,还有几个关于计算艺术方面的会议,包括非真实性图形学(Non-Photorealistic Graphics)和Computational Aesthetics(计算美学)等。吸引了计算机工作者、艺术家、建筑师、设计师等方面的人员在一起,通过头脑风暴和交流讨论的方式进行一些有创意的技术研究。

     

     

    三、             学习计算机图形学需要哪些基础?

     

    计算机图形学是一门与很多学科都交叉的学科方向。因此,要学好计算机图形学和做好计算机图形学方面的研究,除了计算机图形学的基础知识以外,你还需要有其他方面的一些知识。当然你懂得越多当然会越好。

     

    1、 数学

    计算机图形学进入我国大概在上个世纪70年代末和80年代初,那时国内还没有计算机学科。于是,开始学习和研究计算机图形学的大部分都是搞数学的一些学者和教授。由此可见,计算机图形学是需要数学知识较多的一门计算机应用技术学科,在我国也是应用数学的一个重要分支(国内的很多高校和科研院所的数学专业都有计算机图形学方向)。

    计算机图形学里面用到的数学比较多,列举一些常用的,包括:微积分、线性代数、矩阵计算、微分几何、数值计算和分析、计算方法、偏微分方程、微分方程数值解、最优化、概率、统计、计算几何等。

    计算机图形学领域的一位优秀学者Greg Turk教授在1997年曾写过一篇“计算机图形学中的数学”(Mathematics for Computer Graphics)的帖子,详细可见:

    http://www.cc.gatech.edu/~turk/math_gr.html

    其中文翻译版本可见:

    http://staff.ustc.edu.cn/~lgliu/Resources/CG/Math_for_CG_Turk_CN.htm

    笔者在多年从事计算机图形学研究中对数学的体会是:“数学不是没有用,而是不够用!”。对数学的学习和应用将是“活到老,学到老”。重要的是,从以前看似枯燥的数学到看到它的实际应用的过程中,你会更容易享受数学的美妙。在你不断进行计算机图形学的研究的过程中,你会感觉到你的数学知识越来越不够用,从而真正理解其中的数学思想和数学方法。

    另一方面,想成为一名计算机图形学的研究者也不必精通各门数学!在大学里,你所学的那些数学看起来都很抽象,枯燥无味,这是因为你并不知道它们的用处,甚至连讲课的老师也不知道,而你们的目的只是记住那些定理和公式,考个好分数。与大学学习数学不一样的是,你在计算机图形学的学习和研究过程中会感受到数学的用处和美妙,这时你学习数学的目的将更加明确,兴趣将更加浓厚,学习方法将更加有效。因为你是在使用数学的过程中在学习数学!想想看你是如何学会中文说话的?以上提到的常用的数学课程你不必都要熟悉,许多研究工作者从不需要考虑其中提到的某些数学知识,成功的研究者总是将某一方面的数学知识和数学工具用到极致!

    总之,关于计算机图形学与数学的关系,归纳起来就是以下几个原则:

    l  计算机图形学的研究需要用到较多的数学知识,有较好数学功底的学生从事计算机图形学有一定优势;

    l  即使没有学太多的数学也不要紧。数学的知识不需要都学会了再去做问题,在解决问题的过程中去学习数学是最快的学习方法。即,研究过程中若遇到什么数学知识再去学相关的知识,学习起来会更有兴趣,掌握起来会更快更扎实;

    l  学习数学要结合图形,即“数形结合”,需要有图形的想象能力;数学公式不重要,是“纸老虎”,重要的是背后的思想及其所表达的概念,公式只是它们的一个抽象表达;

    l  活到老,学到老。要不断学习新的知识和技术,使自己不断进步和增长功力,才是王道。

     

    2、 编程

    在计算机图形学中,大部分的想法都要通过实际例子来验证的,再好的理论也要拿实际例子来得到验证和应用。因此,利用编程语言来实现想法或算法是必须要有的能力。C/C++是计算机图形学最常用的编程语言。

    笔者要求学生必须掌握C++编程语言和面向对象编程思想,这是大家通用的“语言”。网上的大部分的资源、类库、算法代码基本上都是C++写的,因此,你若需要利用这些资源,必须掌握甚至精通C++语言。

    关于计算机图形学所需要的编程能力的几点看法:

    l  从事计算机图形学和图像处理的研究需要有较强的编程能力,要对编程有极大的兴趣和热情;

    l  如果你对编程比较“感冒”或“厌恶”,则建议你不要选择计算机图形学方向;

    l  不太会编程不要紧,任何人都是从不会到会的!只要你对编程有兴趣,觉得编程“好玩”,您完全可以在很短的时间内极大地提高您的编程水平。笔者在长期的教学实验和科研过程中,摸索和发展出一套有效的方法,能够在最短的时间内,帮助学生(包括数学专业的学生)快速提高编程的能力。

     

    3、 其他

    l  英语基础要好,因为需要大量阅读英文文献和进行英文论文的写作;英文的听说能力也要好些,因为要跟国际学者交流讨论;

    l  计算机图形学中的很多算法是真实物理世界的模拟,因此,如果你要进行基于物理的建模和仿真,一些物理知识和理论也需要的,比如力学(动力学,运动学,流体力学)和光学等;

    l  其他学科的知识,根据具体研究的需要去学习即可,不必刻意去提前学多少。

     

    4、 计算机图形学的教材

    上面列举的只是在你从事计算机图形学的学习和研究中可能要用到的东西,不必所有的都学会才能开始计算机图形学的学习和研究。一门知识点不懂不要紧,重要的是要能尽快学习新知识的能力和速度!事实上,最好的学习方法就是在使用中学习。因此,计算机图形学的学习和研究提供了你学习其他相关知识的好的过程。

    现在市面上的计算机图形学的教材有很多,但是很多教材的内容仅仅是计算机图形学的基本知识,知识点也比较陈旧。不能指望通过一本或几本教材就能学会计算机图形学。计算机图形学的内容远比教材中或你想象中的内容多得多。正如笔者上面所述,计算机图形学作为一门技术科学,特别是在当前的互联网、移动互联网、大数据时代及第三次工业革命的时代背景下,最近几年的发展日新月异!务必要通过跟着老师做相关研究来了解计算机图形学最新的发展和趋势。除了阅读最新的最新的科研论文外,还需要不断关注信息科技及电子科技的一些前沿发展。要相信,计算机图形学是好玩的,是有用的,更是有未来的!充满热情和激情,才能做好计算机图形学方面的研究。

     

     

    四、             SIGGRAPH简介

     

    说到计算机图形学,不能不提SIGGRAPH

    ACM SIGGRAPH是“ACM Special Interest Group on GRAPHics and Interactive Techniques”(美国计算机协会计算机图形专业组)的缩写,成立于1967年,致力于推广和发展计算机绘图和动画制作的软硬件技术。从1974年开始,ACM SIGGRAPH每年都会举办一次年会(也称为SIGGRAPH),至今年已经举办了40次。SIGGRAPH是计算机图形学顶级年度会议,代表着世界级水平的研究,能在SIGGRAPH上发表论文是许多从事计算机图形学研究的工作者的梦想。

    SIGGRAPH每年7月底或8月初在美国召开(2011年在加拿大温哥华召开,是SIGGRAPH首次在美国以外的城市举行)。事实上,SIGGRAPH是世界上影响最广、规模最大,同时也是最权威的一个集科学、艺术、商业于一身的CG展示、学术研讨会,参会人数众多,一般有2--4万人。绝大部分计算机图技术软硬件厂商每年都会将最新研究成果拿到SIGGRAPH年会上发布,大部分游戏的电脑动画创作者也将他们本年度最杰出的艺术作品集中在SIGGRAPH上展示。因此,SIGGRAPH在图形图像技术,计算机软硬件以及CG等方面都有着相当的影响力。

    2008年开始,Siggraph来到亚洲,每年冬天(11或12月)在亚洲的一个城市(2008,新加坡;2009,日本横滨;2010,韩国首尔;2011,中国香港;2012,新加坡)召开,称为SIGGRAPH Asia。今年的Siggraph Asia将在2013年11月19-22号于中国香港召开。

    SIGGRAPH一样,发表者SIGGRAPH Asia上的研究论文也代表着计算机图形学领域的最前沿和最高水准,所有研究论文都发表在ACM Transactions on Graphics期刊上,这是计算机图形学领域唯一的一个Top (I区)的学术期刊。可以形象地将SIGGRAPH和SIGGRAPH Asia分别比喻为计算机图形学领域的“夏季奥运会”和“冬季奥运会”。

    SIGGRAPH会议上,除了研究论文外,还有很多其他内容,比如课程、短文、海报、CG企业展示、电子剧场、动画节、新型科技展示、艺术画廊、教育等,比你想象得要多得多。很多活动都是并行的,因此你需要每天提前计划好所参加的活动。视觉中国网站的“Siggraph 2007会议报道”有详尽的关于Siggraph 2007年的报道:

    http://static.chinavisual.com/storage/topics/39942/index.shtml

    虽然这是6年前的Siggraph介绍,但上述链接的内容仍然是对SIGGRAPH比较全面的介绍。其中有很多视频和材料,详细介绍了Siggraph盛会的情况,而且有对计算机图形学的历史发展的介绍。建议详细查看。

     

     

    五、             其他问题

     

    1、  如何选择适合自己的工作(研究方向)?

    A: 就两点:兴趣 + 擅长!

    兴趣是第一位的,是否擅长需要尝试和不断学习成长!将学会将自己的天赋发挥到极致!

     

    2、  自己是否适合学习和从事计算机图形学的研究?

    A: 看看自己是否满足以下两个条件:

    1)       对计算机图形学或图像处理具有强烈的兴趣和激情;

    2)       喜欢算法设计和编程。

    若上述两个条件都满足(觉得好玩!),则可以尝试选择计算机图形学作为自己的研究方向。

     

    3、  从事研究工作需要哪些品质?

    A: 激情、好奇心、努力!

     

    4、  为何选择从事研究工作?

    A: http://staff.ustc.edu.cn/~lgliu/Resources/ForMyStudents/GCL-WhyResearch.rar

     

    5、  如何在研究生期间取得成功?

    A: http://staff.ustc.edu.cn/~lgliu/Resources/ForMyStudents/HowToSucceedAtGCL.rar

     

     

    六、             更多参考材料

     

    l  有关更多地了解计算机图形的知识和内容,可搜索并参考Internet上的丰富的资源介绍,比如百度百科维基百科等。本文的写作过程中也参考了网上的许多资源。

    l  国外和国内有很多有关《计算机图形学》的课程网站,可以通过查看相关视频和课件更多地了解计算机图形学的内容。

    l  国内外有很多从事计算机图形学研究的教授学者的网站,会列出他们所做的有关计算机图形学方面的研究,可以更为深入了解计算机图形学领域所研究的东西。

    l  与计算机其他学科一样,每年都有计算机图形学方面的很多会议。这些会议会有该领域的最新进展和研究工作,是了解计算机图形学发展及趋势的重要手段。在计算机图形学方面,可以通过以下链接来获得各个会议的信息http://kesen.realtimerendering.com/ 建议加该链接为你的浏览器的标签。

    l  Internet上经常会有计算机图形学相关的科技信息,要有意识经常关注,随时了解该学科方向的动态、发展和未来。

    l  计算机图形学及相关学科在近些年来得到迅速的发展,特别是2013年出现的各种交互人机交互技术的出现,我们正处在技术极速发展的浪尖!计算机图形学前景诱人,形势逼人。相对于美国等西方国家,我国的计算机图形学相关产业还相对落后,但这正是留给我们这代人的机会!相信通过我们的努力,是可以逐渐缩短差距的,也带来了巨大的挑战和机会。

    l  最后,要相信,计算机图形学是很好玩的,是有用的,更是有未来的。“相信是成功的开始”。祝各位能够感受计算机图形的美妙,能够在计算机图形学的海洋中享受快乐和成功!J

     

     

    祝您健康、快乐、成功!

     

    刘利刚

    中国科技大学,图形与几何计算实验室(http://gcl.ustc.edu.cn)

    个人主页:http://staff.ustc.edu.cn/~lgliu

    2013年8月8


    from: http://staff.ustc.edu.cn/~lgliu/Resources/CG/What_is_CG.htm

    展开全文
  • 除了维护和稳定性之外,还有许多需要添加的功能。如果您的公司正在使用 Dear ImGui,请考虑与我们联系.) 企业:通过开具发票的技术支持、维护、赞助合同支持持续开发和维护:电子邮箱:联系@dearimgui dot com个人:...
  • 什么是计算机图形学?

    2020-01-13 16:58:55
    什么是计算机图形学? 刘利刚 中国科学技术大学 图形与几何计算实验室 http://staff.ustc.edu.cn/~lgliu 【注】 由于时常有本科学生来向笔者询问计算机图形学是做什么的,为了使得学生能够快速了解计算机图形学,有利...

    什么是计算机图形学?

    刘利刚

    中国科学技术大学 图形与几何计算实验室

    http://staff.ustc.edu.cn/~lgliu

    【注】 由于时常有本科学生来向笔者询问计算机图形学是做什么的,为了使得学生能够快速了解计算机图形学,有利于他们在选择研究生方向做出适合自己的选择,特撰写此文。本文仅仅为笔者对计算机图形学浅薄的理解,不涉及对概念的定义,是非学术性的。因此,笔者尽量尝试用通俗的语言介绍一下计算机图形学的内容及其应用,以帮助还未接触计算机图形学领域的学生来了解该学科方向。笔者对其中的有些内容的理解也是很有限的,值得进一步的学习和交流。有不当之处,还请读者谅解指正。

    一、什么是计算机图形学?

    什么是计算机图形学?计算机图形学(Computer Graphics,简称CG)的内容比较丰富,与很多学科都有交叉,因此笔者认为是无法严格定义的。

    在“Wiki百科”和“百度百科”上,对“计算机图形学”的解释为:计算机图形学是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。虽然通常认为CG是指三维图形的处理,事实上也包括了二维图形及图像的处理。

    狭义地理解,计算机图形学是数字图象处理或计算机视觉的逆过程:计算机图形学是用计算机来画图像的学科,数字图象处理是把外界获得的图象用计算机进行处理的学科,计算机视觉是根据获取的图像来理解和识别其中的物体的三维信息及其他信息。

    注意,这些都是不确切的定义,实际上,计算机图形学、数字图象处理和计算机视觉在很多地方的区别不是非常清晰,很多概念是相通的,而且随着研究的深入,这些学科方向不断的交叉融入,形成一个更大的学科方向,可称之为“可视计算”(Visual Computing)。这是后话,此处不详述。

    二、计算机图形学的主要内容

    在学科开创之初,计算机图形学要解决的是如何在计算机中表示三维几何图形,以及如何利用计算机进行图形的生成、处理和显示的相关原理与算法,产生令人赏心悦目的真实感图像。这是狭义的计算机图形学的范畴。随着近40年的发展,计算机图形学的内容已经远远不止这些了。广义的计算机图形学的研究内容非常广泛,如图形硬件、图形标准、图形交互技术、光栅图形生成算法、曲线曲面造型、实体造型、真实感图形计算与显示算法,以及科学计算可视化、计算机动画、自然景物仿真、虚拟现实等。

    根据笔者的理解,计算机图形学主要包含四大部分的内容:建模(Modeling)、渲染(Rendering)、动画(Animation)和人机交互(Human–computer Interaction, HCI)

    1、 建模(Modeling)

    要在计算机中表示一个三维物体,首先要有它的几何模型表达。因此,三维模型的建模是计算机图形学的基础,是其他内容的前提。表达一个几何物体可以是用数学上的样条函数或隐式函数来表达;也可以是用光滑曲面上的采样点及其连接关系所表达的三角网格来表达(即连续曲面的分片线性逼近),如下图所示。

    三维建模方法主要包含如下的一些方法:

    l 计算机辅助设计(CAD)中的主流方法是采用NURBS(非均匀有理B-样条、Bezier曲线曲面)方法(已成为CAD工业领域的标准),这也是计算机辅助几何设计(CAGD)所研究的主要内容。此类表达方法有一些难点问题仍未解决,比如非正规情况下的曲面光滑拼合,复杂曲面表达等。这部分涉及的数学比较多,国内做这块的学者比较多些。

    l 细分曲面(Subdivision surface)造型方法,作为一种离散迭代的曲面构造方法,由于其构造过程朴素简单以及实现容易,是一个方兴未艾的研究热点。经过十多年的研究发展,细分曲面造型取得了较大的进展,包括奇异点处的连续性构造方法以及与GPU图形硬件相结合的曲面处理方法。

    l 利用软件的直接手工建模。现在主流的商业化的三维建模软件有Autodesk 3D Max和 Maya。其他还有面向特定领域的商业化软件,比如面向建筑模型造型的Google Sketchup,面向CAD/CAM/CAE的CATIA和AutoCAD,面向机械设计的SolidWorks,面向造船行业的Rhino等。这些软件需要建模人员有较强的专业知识,而且需要一定时期的培训才能掌握,建模效率低而学习门槛高,不易于普及和让非专业用户使用。

    l 基于笔划或草图交互方式的三维建模方法。草图交互方式由于其符合人类原有日常生活中的思考习惯,交互方式直观简单,是最近几年研究的热点建模方法。其难点是根据具体的应用场合,如何正确地理解和识别用户的交互所表达的语义,构造出用户所希望的模型。

    l 基于语法及规则的过程式建模方法。特别适合具有重复特征和结构化的几何物体与场景,比如建筑、树木等。最近几年有较多的论文及较大的发展。

    l 基于图像或视频的建模方法。这是传统的计算机视觉所要解决的基本问题。在计算机图形学领域,这方面的发展也很迅速。有一些商业化软件或云服务(比如Autodesk的123D),已经能从若干张照片重建出所拍摄物体的三维模型。该方法的问题是需要物体本身已经存在,而且重建的三维模型的精度有限。

    l 基于扫描点云(深度图像如Kinect、结构光扫描、激光扫描、LiDAR扫描等)的建模(Reconstruction)方法。随着深度相机的出现及扫描仪的价格迅速下降,人们采集三维数据变得容易,从采集到的三维点云来重建三维模型的工作在最近几年的Siggraph(Asia)上能常见到。但是,单纯的重建方式存在精度低、稳定性差和运算量大等不足,远未能满足实际的需求。

    l 基于现有模型来合成建模的方法。随着三维模型的逐渐增多,可以利用现有的三维模型通过简单的操作,比如cut and paste,或者分析及变形等手段,来拼接或合成新的三维模型。这种通过“学习”模型数据库的知识来进行建模的手段在近3-5年里研究得非常热门。从某方面来讲,就是“大数据时代”背景下计算机图形学领域中的一个具体的表现。

    除了上述的这些建模方法,还有其他的一些建模方法,在此不再一一列举。

    在对三维几何模型的构建过程中,还会涉及到很多需要处理的几何问题,比如数据去噪(denoising or smoothing)、补洞(repairing)、简化(simplification)、层次细节(level of detail)、参数化(parameterization)、变形(deformation or editing)、分割(segmentation)、形状分析及检索(shape analysis and retrieval)等。这些问题构成“数字几何处理”的主要研究内容。笔者自2005年起开设了多年的《数字几何处理》的研究生课程:

    http://staff.ustc.edu.cn/~lgliu/Courses/DGP_2012_spring-summer/default.htm

    虽然有上述所提到的这么多的三维建模方式,但是至今为止,仍没有适合一般家庭用户的轻松简单的建模工具。现有的电子设备(比如相机,手机等)能够帮助人们轻松获得图像和视频,但是,不是人人都有能力来构建三维几何模型。如何让大众能够像获取图像那样能够随时随地地获取或者构建三维模型,仍然是计算机图形学的任重道远的主要任务之一!今天,计算机图形学仍未进入“大数据时代”。只有让大众能够轻松进行三维建模,并上载分享他们所构建的模型数据,计算机图形学才可能进入大数据时代。

    另外,随着三维打印(3D printing)的新兴技术的逐渐普及,人们对三维模型的需求也日益增加。笔者个人认为,几何建模和三维打印的未来是共呼吸,同命运的:也只有当人人都能轻松建模时,三维打印才有可能走向千家万户。

    三维几何建模的任务仍然任重道远,大家仍需共同努力!

    2、 渲染(Rendering)

    有了三维模型或场景,怎么把这些三维几何模型画出来,产生令人赏心悦目的真实感图像?这就是传统的计算机图形学的核心任务,在计算机辅助设计,影视动漫以及各类可视化应用中都对图形渲染结果的高真实感提出了很高的要求。

    上个世纪80-90年代研究的比较多些,包含了大量的渲染模型,包括局部光照模型(Local Illumination Model)、光线跟踪算法(Ray Tracing)、辐射度(Radiosity)等,以及到后面的更为复杂、真实、快速的渲染技术,比如全局光照模型(Global Illumination Model)、Photo mapping、BTF、BRDF、以及基于GPU的渲染技术等。

    现在的渲染技术已经能够将各种物体,包括皮肤、树木、花草、水、烟雾、毛发等渲染得非常逼真。一些商业化软件(比如Maya, Blender, Pov Ray等)也提供了强大的真实感渲染功能,在计算机图形学研究论文中作图中要经常用到这些工具来渲染漂亮的展示图或结果图。

    然而,已知的渲染实现方法,仍无法实现复杂的视觉特效,离实时的高真实感渲染还有很大差距,比如完整地实现适于电影渲染(高真实感、高分辨率)制作的RenderMan标准,以及其他各类基于物理真实感的实时渲染算法等。因此,如何充分利用GPU的计算特性,结合分布式的集群技术,从而来构造低功耗的渲染服务是发展趋势之一。

    http://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Glasses_800_edit.png/250px-Glasses_800_edit.png http://www.ozone3d.net/public/jegx/201107/skin_rendering_sssss.jpg http://www.cs.uiuc.edu/~yyz/research/hair/cover_hair.jpg http://www.rhythm.com/~ivan/images/hair/tabby.yuv.jpg

    3、 动画(Animation)

    动画是采用连续播放静止图像的方法产生物体运动的效果。计算机动画借助于编程或动画制作软件生成一系列的景物画面,是计算机图形学的研究热点之一。研究方向包括:人体动画,关节动画,运动动画,脚本动画,具有人的意识的虚拟角色的动画系统等。另外,高度物理真实感的动态模拟,包括对各种形变、水、气、云、烟雾、燃烧、爆炸、撕裂、老化等物理现象的真实模拟,也是动画领域的主要问题。这些技术是各类动态仿真应用的核心技术,可以极大地提高虚拟现实系统的沉浸感。计算机动画的应用领域广泛,比如动画片制作,广告、电影特技,训练模拟,物理仿真,游戏等。

    网上的一些3D动画的视频:

    Larva虫虫: http://v.youku.com/v_show/id_XMzAzMzkxMTY0.html

    The Killer Bean: http://v.youku.com/v_show/id_XMjI5ODE2MTEy.html

    爱与孝: http://v.youku.com/v_show/id_XNTU0OTUxNjUy.html

    房地产动画广告宣传片: http://v.youku.com/v_show/id_XNTc1OTE4MDMy.html

    4、 人机交互(Human–Computer Interaction, HCI)

    人机交互(Human-Computer Interaction, 简写HCI)是指人与计算机之间以一定的交互方式或交互界面,来完成确定任务的人与计算机之间的信息交换过程。简单来讲,就是人如何通过一定的交互方式告诉计算机来完成他所希望完成的任务。

    计算机图形学的顶级会议ACM SIGGRAPH是“ACM Special Interest Group on GRAPHics and Interactive Techniques”的缩写,缩写中只包含了Graphics,而忽略了Interactive Techniques,在长时间没有得到计算机图形学研究的重视。最近,包括在SIGGRAPH会议上,以及人机交互的顶级会议SIGCHI上,陆续出现了许多新兴的人机交互技术及研究论文。大家逐渐重视起来。

    在早期(上个世纪60-70年代),只有以键盘输入的字符界面;到了80年代,以WIMP(窗口、图符、菜单、鼠标)为基础的图形用户界面(GUI)逐渐成为当今计算机用户界面的主流。

    近年来,以用户为中心的系统设计思想,增进人机交互的自然性,提高人机交互的效率是用户界面的主要研究方向。陆续提出了多通道用户界面的思想,它包括语言、姿势输入、头部跟踪、视觉跟踪、立体显示、三维交互技术、感觉反馈及自然语言界面等。

    事实上,人体的表面本身就是人机界面。人体的任何部分(姿势,手势,语言,眼睛,肌肉电波,脑波等)都可以成为人机对话的通道。比如2010年微软出的Kinect就是一种无需任何操纵杆的基于体感的人机界面,用户本身就是控制器。Kinect在微软的Xbox游戏上取得了极大的成功,之后在其他方面也得到了很多的应用。

    特别是到了今年(2013年),人机交互设备有了巨大的发展,各种自然的交互手段层出不穷,极大地丰富了用户与机器交互的体验,方便了用户的操作,轻松表达了用户的交互意图。可以说,

    我们正处在图形与交互技术极速发展的浪尖!

    以下是最近几年(特别是今年)出现的一些值得关注的新兴的人机交互设备:

    l Microsoft Kinect:http://v.youku.com/v_show/id_XNTc2ODY0MTA4.html

    1.   Kinect由微软于2010年推出的对XBOX360体感外设,它不需要使用任何控制器,仅依靠相机捕捉三维空间中玩家的运动,同时它导入了即时动态捕捉、影像辨识、麦克风输入、语音辨识、社群互动等功能。Kinect彻底颠覆了游戏的单一操作。使人机互动的理念更加彻底的展现出来。之后,基于Kinect的各种应用像雨后春笋般的冒出来,包括人机交互,手势识别,几何建模等。
      
    2.   在2013年5月28日的Xbox One发布会上,微软展示了新一代Kinect 2.0,新 Kinect能感知的语音、手势和玩家感觉信息,将给玩家带来前所未有的互动性体验:
      

    http://v.youku.com/v_show/id_XNTIyODU0NDky.html

    l Leap Motion:http://v.youku.com/v_show/id_XNTAwMzg0MTQw.html

    Leap Motion为放在键盘和显示器之间的小小金属棒,就能让任何一位用户通过简单的手势完成人机交互。Leap Motion 的响应惊人的准确,对各种自然而简洁的手势都能识别。不必站起来或者摆动手臂,Leap Motion 是简单而毫不费力的交互方式。我们在4月份就预订了一台,到现在还未到货,估计要到下个月到货。到货后我们会对其进行评测。

    l MYO:http://v.youku.com/v_show/id_XNTYzNzg3MDA0.html

    MYO 是一款能在用户挥动并指向屏幕时测量各种肌肉产生的电活动来完成交互的腕带。MYO 超越 Leap Motion 的一点是,MYO 对用户的位置没有限制。尽管MYO只听令于身体的一个部分(手臂),但是其应用的场合还是很多的。期望未来会有更多的听令于身体的其他部分的交互设备。

    l Google Glass:http://v.youku.com/v_show/id_XNTYzNzk1NjIw.html

    Google Glass为Google公司在2012的I/O开发者大会上正式公布的,在看起来普普通通的眼镜上配置强大的计算机和显示器。这款设备小巧而不显眼,可以在任何时间地点使用,即用户想要专注于周围环境时不会碍事。不过对其未来的发展各有说法,让我们拭目以待。

    l 3D Printer:这个就不用笔者详细说了,这两年太火了。正如上面所提到的观点,笔者觉得3D打印的出现带给了我们从事计算机图形学研究的工作者许多的机会。挑战和机会并存!我们应该要抓住这次机会!

    l 3Doodler:http://v.youku.com/v_show/id_XNTE2MjM5NzUy.html

    3Doodler是玩具和机器人公司Wobble Works开发的全球首款“3D打印笔”,可以帮助人们在半空中创造出三维结构的模型。今后人们可以在三维空间中来“画图”交流和表达想法了。

    l Apple iWatch:http://v.youku.com/v_show/id_XNTIwODk0MzM2.html

    iWatch由苹果公司推出的一款智能手表。现在仍是概念产品,面世时间未定。其界面看看视频就知道有多酷。但是其技术上的实现笔者也没有完全想通,呵呵。

    除了上述介绍的外,最近还有其他很多新的人机交互类的电子科技产品,比如透明手机,可折叠的屏幕,具有气味和触感反馈的头盔等,就不一一介绍了。

    由此可见,以前在科幻电影里出现的“神器”逐渐被实现,计算机图形学及相关技术在其中发挥了重要的作用。同时,这些设备的出现,也带给了计算机图形学领域更多的探索和机会。

    5、 其他内容

    上述所提到的只是计算机图形学的主要的四个内容。事实上,与计算机图形学相关的学科还有很多,以下仅介绍几个最为相关的研究方向:

    l 虚拟现实(Virtual Reality):利用计算机图形产生器,位置跟踪器,多功能传感器和控制器等有效地模拟实际场景和情形,从而能够使观察者产生一种真实的身临其境的感觉。虚拟现实技术主要研究用计算机模拟(构造)三维图形空间,并使用户能够自然地与该空间进行交互。对三维图形处理技术的要求特别高。简单的虚拟现实系统早在70年代便被应用于军事领域,训练驾驶员。80年代后随着计算机软硬件技术的提高,它也得到重视并迅速发展。它已在航空航天、医学、教育、艺术、建筑等领域得到初步的应用。

    l 可视化(Visualization):利用计算机图形学和图像处理技术,将数据转换成图形或图像在屏幕上显示出来,并进行交互处理的理论、方法和技术。现已成为研究数据表示、数据处理、决策分析等一系列问题的综合技术。上面提到的虚拟现实技术也是以图形图像的可视化技术为依托的。在现在的大数据时代的背景下,可视化的内容除了传统的科学可视化外,现在还有信息可视化,可视分析等方面。

    l 可视媒体计算与处理(Visual Media Processing):几何数据,被认为是继声音、图像、视频之后的新一代数字媒体,是计算机图形学的研究重点。最近几年,计算机图形学与图像视频处理技术相结合的研究与技术日益增多。正如笔者在上面所提及的,图像和视频的大数据处理能带给计算机图形学很多处理手段上的更新。另一方面,随着而计算机图形学技术,恰可以与这些图像处理,视觉方法相交叉融合,来直接地生成风格化的画面,实现基于图像三维建模,以及直接基于视频和图像数据来生成动画序列。当计算机图形学正向地图像生成方法和计算机视觉中逆向地从图像中恢复各种信息方法相结合,可以带来无可限量的想象空间,构造出很多视觉特效来,最终用于增强现实、数字地图、虚拟博物馆展示等多种应用中去。因此,在很多方面,计算机图形学与图像处理、视频处理、多媒体处理、计算机视觉等学科逐渐融合在一起,有成为一个更大的学科的趋势。

    l 医学图像处理(Medical Imaging):随着医学成像技术的发展与进步,图像处理在医学研究与临床医学中的应用越来越广泛。与一般意义上的图像处理比较,医学图像处理有其特殊性和不同的侧重点。医学图像处理由生物医学成像(X射线、CT、MRI)和生物医学图像处理两部分组成,在生命科学研究、医学诊断、临床治疗等方面起着重要的作用。医学图像分析中涉及的两个最为重要的内容为图像分割与图像配准。

    l 计算机艺术(Computational Arts):计算机图形学的发展也提供给了艺术家发挥和实现想象的丰富的技术手段。计算机艺术的发展速度远远超出了人们的想象,在代表计算机图形研究最高水平的历届SIGGRAPH年会上,精彩的计算机艺术作品层出不穷。在计算机图形学领域,还有几个关于计算艺术方面的会议,包括非真实性图形学(Non-Photorealistic Graphics)和Computational Aesthetics(计算美学)等。吸引了计算机工作者、艺术家、建筑师、设计师等方面的人员在一起,通过头脑风暴和交流讨论的方式进行一些有创意的技术研究。

    三、 学习计算机图形学需要哪些基础?

    计算机图形学是一门与很多学科都交叉的学科方向。因此,要学好计算机图形学和做好计算机图形学方面的研究,除了计算机图形学的基础知识以外,你还需要有其他方面的一些知识。当然你懂得越多当然会越好。

    1、 数学

    计算机图形学进入我国大概在上个世纪70年代末和80年代初,那时国内还没有计算机学科。于是,开始学习和研究计算机图形学的大部分都是搞数学的一些学者和教授。由此可见,计算机图形学是需要数学知识较多的一门计算机应用技术学科,在我国也是应用数学的一个重要分支(国内的很多高校和科研院所的数学专业都有计算机图形学方向)。

    计算机图形学里面用到的数学比较多,列举一些常用的,包括:微积分、线性代数、矩阵计算、微分几何、数值计算和分析、计算方法、偏微分方程、微分方程数值解、最优化、概率、统计、计算几何等。

    计算机图形学领域的一位优秀学者Greg Turk教授在1997年曾写过一篇“计算机图形学中的数学”(Mathematics for Computer Graphics)的帖子,详细可见:

    http://www.cc.gatech.edu/~turk/math_gr.html

    其中文翻译版本可见:

    http://staff.ustc.edu.cn/~lgliu/Resources/CG/Math_for_CG_Turk_CN.htm

    笔者在多年从事计算机图形学研究中对数学的体会是:“数学不是没有用,而是不够用!”。对数学的学习和应用将是“活到老,学到老”。重要的是,从以前看似枯燥的数学到看到它的实际应用的过程中,你会更容易享受数学的美妙。在你不断进行计算机图形学的研究的过程中,你会感觉到你的数学知识越来越不够用,从而真正理解其中的数学思想和数学方法。

    另一方面,想成为一名计算机图形学的研究者也不必精通各门数学!在大学里,你所学的那些数学看起来都很抽象,枯燥无味,这是因为你并不知道它们的用处,甚至连讲课的老师也不知道,而你们的目的只是记住那些定理和公式,考个好分数。与大学学习数学不一样的是,你在计算机图形学的学习和研究过程中会感受到数学的用处和美妙,这时你学习数学的目的将更加明确,兴趣将更加浓厚,学习方法将更加有效。因为你是在使用数学的过程中在学习数学!想想看你是如何学会中文说话的?以上提到的常用的数学课程你不必都要熟悉,许多研究工作者从不需要考虑其中提到的某些数学知识,成功的研究者总是将某一方面的数学知识和数学工具用到极致!

    总之,关于计算机图形学与数学的关系,归纳起来就是以下几个原则:

    l 计算机图形学的研究需要用到较多的数学知识,有较好数学功底的学生从事计算机图形学有一定优势;

    l 即使没有学太多的数学也不要紧。数学的知识不需要都学会了再去做问题,在解决问题的过程中去学习数学是最快的学习方法。即,研究过程中若遇到什么数学知识再去学相关的知识,学习起来会更有兴趣,掌握起来会更快更扎实;

    l 学习数学要结合图形,即“数形结合”,需要有图形的想象能力;数学公式不重要,是“纸老虎”,重要的是背后的思想及其所表达的概念,公式只是它们的一个抽象表达;

    l 活到老,学到老。要不断学习新的知识和技术,使自己不断进步和增长功力,才是王道。

    2、 编程

    在计算机图形学中,大部分的想法都要通过实际例子来验证的,再好的理论也要拿实际例子来得到验证和应用。因此,利用编程语言来实现想法或算法是必须要有的能力。C/C++是计算机图形学最常用的编程语言。

    笔者要求学生必须掌握C++编程语言和面向对象编程思想,这是大家通用的“语言”。网上的大部分的资源、类库、算法代码基本上都是C++写的,因此,你若需要利用这些资源,必须掌握甚至精通C++语言。

    关于计算机图形学所需要的编程能力的几点看法:

    l 从事计算机图形学和图像处理的研究需要有较强的编程能力,要对编程有极大的兴趣和热情;

    l 如果你对编程比较“感冒”或“厌恶”,则建议你不要选择计算机图形学方向;

    l 不太会编程不要紧,任何人都是从不会到会的!只要你对编程有兴趣,觉得编程“好玩”,您完全可以在很短的时间内极大地提高您的编程水平。笔者在长期的教学实验和科研过程中,摸索和发展出一套有效的方法,能够在最短的时间内,帮助学生(包括数学专业的学生)快速提高编程的能力。

    3、 其他

    l 英语基础要好,因为需要大量阅读英文文献和进行英文论文的写作;英文的听说能力也要好些,因为要跟国际学者交流讨论;

    l 计算机图形学中的很多算法是真实物理世界的模拟,因此,如果你要进行基于物理的建模和仿真,一些物理知识和理论也需要的,比如力学(动力学,运动学,流体力学)和光学等;

    l 其他学科的知识,根据具体研究的需要去学习即可,不必刻意去提前学多少。

    4、 计算机图形学的教材

    上面列举的只是在你从事计算机图形学的学习和研究中可能要用到的东西,不必所有的都学会才能开始计算机图形学的学习和研究。一门知识点不懂不要紧,重要的是要能尽快学习新知识的能力和速度!事实上,最好的学习方法就是在使用中学习。因此,计算机图形学的学习和研究提供了你学习其他相关知识的好的过程。

    现在市面上的计算机图形学的教材有很多,但是很多教材的内容仅仅是计算机图形学的基本知识,知识点也比较陈旧。不能指望通过一本或几本教材就能学会计算机图形学。计算机图形学的内容远比教材中或你想象中的内容多得多。正如笔者上面所述,计算机图形学作为一门技术科学,特别是在当前的互联网、移动互联网、大数据时代及第三次工业革命的时代背景下,最近几年的发展日新月异!务必要通过跟着老师做相关研究来了解计算机图形学最新的发展和趋势。除了阅读最新的最新的科研论文外,还需要不断关注信息科技及电子科技的一些前沿发展。要相信,计算机图形学是好玩的,是有用的,更是有未来的!充满热情和激情,才能做好计算机图形学方面的研究。

    四、SIGGRAPH简介

    说到计算机图形学,不能不提SIGGRAPH。

    ACM SIGGRAPH是“ACM Special Interest Group on GRAPHics and Interactive Techniques”(美国计算机协会计算机图形专业组)的缩写,成立于1967年,致力于推广和发展计算机绘图和动画制作的软硬件技术。从1974年开始,ACM SIGGRAPH每年都会举办一次年会(也称为SIGGRAPH),至今年已经举办了40次。SIGGRAPH是计算机图形学顶级年度会议,代表着世界级水平的研究,能在SIGGRAPH上发表论文是许多从事计算机图形学研究的工作者的梦想。

    SIGGRAPH每年7月底或8月初在美国召开(2011年在加拿大温哥华召开,是SIGGRAPH首次在美国以外的城市举行)。事实上,SIGGRAPH是世界上影响最广、规模最大,同时也是最权威的一个集科学、艺术、商业于一身的CG展示、学术研讨会,参会人数众多,一般有2–4万人。绝大部分计算机图技术软硬件厂商每年都会将最新研究成果拿到SIGGRAPH年会上发布,大部分游戏的电脑动画创作者也将他们本年度最杰出的艺术作品集中在SIGGRAPH上展示。因此,SIGGRAPH在图形图像技术,计算机软硬件以及CG等方面都有着相当的影响力。

    从2008年开始,Siggraph来到亚洲,每年冬天(11或12月)在亚洲的一个城市(2008,新加坡;2009,日本横滨;2010,韩国首尔;2011,中国香港;2012,新加坡)召开,称为SIGGRAPH Asia。今年的Siggraph Asia将在2013年11月19-22号于中国香港召开。

    与SIGGRAPH一样,发表者SIGGRAPH Asia上的研究论文也代表着计算机图形学领域的最前沿和最高水准,所有研究论文都发表在ACM Transactions on Graphics期刊上,这是计算机图形学领域唯一的一个Top (I区)的学术期刊。可以形象地将SIGGRAPH和SIGGRAPH Asia分别比喻为计算机图形学领域的“夏季奥运会”和“冬季奥运会”。

    在SIGGRAPH会议上,除了研究论文外,还有很多其他内容,比如课程、短文、海报、CG企业展示、电子剧场、动画节、新型科技展示、艺术画廊、教育等,比你想象得要多得多。很多活动都是并行的,因此你需要每天提前计划好所参加的活动。视觉中国网站的“Siggraph 2007会议报道”有详尽的关于Siggraph 2007年的报道:

    http://static.chinavisual.com/storage/topics/39942/index.shtml

    虽然这是6年前的Siggraph介绍,但上述链接的内容仍然是对SIGGRAPH比较全面的介绍。其中有很多视频和材料,详细介绍了Siggraph盛会的情况,而且有对计算机图形学的历史发展的介绍。建议详细查看。

    五、其他问题

    1、 如何选择适合自己的工作(研究方向)?

    A: 就两点:兴趣 + 擅长!

    兴趣是第一位的,是否擅长需要尝试和不断学习成长!将学会将自己的天赋发挥到极致!

    2、 自己是否适合学习和从事计算机图形学的研究?

    A: 看看自己是否满足以下两个条件:

    1.   对计算机图形学或图像处理具有强烈的兴趣和激情;
      
    2.   喜欢算法设计和编程。
      

    若上述两个条件都满足(觉得好玩!),则可以尝试选择计算机图形学作为自己的研究方向。

    3、 从事研究工作需要哪些品质?

    A: 激情、好奇心、努力!

    4、 为何选择从事研究工作?

    A: http://staff.ustc.edu.cn/~lgliu/Resources/ForMyStudents/GCL-WhyResearch.rar

    5、 如何在研究生期间取得成功?

    A: http://staff.ustc.edu.cn/~lgliu/Resources/ForMyStudents/HowToSucceedAtGCL.rar

    六、更多参考材料

    l 有关更多地了解计算机图形的知识和内容,可搜索并参考Internet上的丰富的资源介绍,比如百度百科,维基百科等。本文的写作过程中也参考了网上的许多资源。

    l 国外和国内有很多有关《计算机图形学》的课程网站,可以通过查看相关视频和课件更多地了解计算机图形学的内容。

    l 国内外有很多从事计算机图形学研究的教授学者的网站,会列出他们所做的有关计算机图形学方面的研究,可以更为深入了解计算机图形学领域所研究的东西。

    l 与计算机其他学科一样,每年都有计算机图形学方面的很多会议。这些会议会有该领域的最新进展和研究工作,是了解计算机图形学发展及趋势的重要手段。在计算机图形学方面,可以通过以下链接来获得各个会议的信息http://kesen.realtimerendering.com/ 建议加该链接为你的浏览器的标签。

    l Internet上经常会有计算机图形学相关的科技信息,要有意识经常关注,随时了解该学科方向的动态、发展和未来。

    l 计算机图形学及相关学科在近些年来得到迅速的发展,特别是2013年出现的各种交互人机交互技术的出现,我们正处在技术极速发展的浪尖!计算机图形学前景诱人,形势逼人。相对于美国等西方国家,我国的计算机图形学相关产业还相对落后,但这正是留给我们这代人的机会!相信通过我们的努力,是可以逐渐缩短差距的,也带来了巨大的挑战和机会。

    l 最后,要相信,计算机图形学是很好玩的,是有用的,更是有未来的。“相信是成功的开始”。祝各位能够感受计算机图形的美妙,能够在计算机图形学的海洋中享受快乐和成功!J

    祝您健康、快乐、成功!

    刘利刚

    中国科学技术大学图形与几何计算实验室(http://gcl.ustc.edu.cn)

    个人主页:http://staff.ustc.edu.cn/~lgliu

    电子邮箱:lgliu@ustc.edu.cn

    2013年8月8日

    【2016年9月9日添加】刘永进. 中国计算机图形学研究进展[J]. 科技导报, 2016, 34(14): 76-85. [link] [PDF, 5.1M]
    【2018年8月16日添加】AMiner. 计算机图形学研究报告. [link] [PDF, 3.5M][PPT, 2.3M]

    版权所有@刘利刚

    展开全文
  • 刘利刚-什么是计算机图形学?

    千次阅读 2014-08-24 22:35:34
    【注】由于时常有本科学生来向笔者询问计算机图形学是做什么的,为了使得学生能够快速了解计算机图形学,有利于他们在选择研究生方向做出适合自己的选择,特撰写此文。本文仅仅为笔者对计算机图形学浅薄的理解,不...

    浅谈计算机图形学的内容和学习

    刘利刚

    中国科技大学

    http://staff.ustc.edu.cn/~lgliu

     

    【注】由于时常有本科学生来向笔者询问计算机图形学是做什么的,为了使得学生能够快速了解计算机图形学,有利于他们在选择研究生方向做出适合自己的选择,特撰写此文。本文仅仅为笔者对计算机图形学浅薄的理解,不涉及对概念的定义,是非学术性的。因此,笔者尽量尝试用通俗的语言介绍一下计算机图形学的内容及其应用,以帮助还未接触计算机图形学领域的学生来了解该学科方向。笔者对其中的有些内容的理解也是很有限的,值得进一步的学习和交流。有不当之处,还请读者谅解指正。

     

    一、             什么是计算机图形学?

     

    什么是计算机图形学?计算机图形学(Computer Graphics,简称CG)的内容比较丰富,与很多学科都有交叉,因此笔者认为是无法严格定义的。

    在“Wiki百科”和“百度百科”上,对“计算机图形学”的解释为:计算机图形学是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。虽然通常认为CG是指三维图形的处理,事实上也包括了二维图形及图像的处理。

    狭义地理解,计算机图形学是数字图象处理或计算机视觉的逆过程:计算机图形学是用计算机来画图像的学科,数字图象处理是把外界获得的图象用计算机进行处理的学科,计算机视觉是根据获取的图像来理解和识别其中的物体的三维信息及其他信息。

    注意,这些都是不确切的定义,实际上,计算机图形学、数字图象处理和计算机视觉在很多地方的区别不是非常清晰,很多概念是相通的,而且随着研究的深入,这些学科方向不断的交叉融入,形成一个更大的学科方向,可称之为“可视计算”(Visual Computing)。这是后话,此处不详述。

     

    二、             计算机图形学的主要内容

     

    在学科开创之初,计算机图形学要解决的是如何在计算机中表示三维几何图形,以及如何利用计算机进行图形的生成、处理和显示的相关原理与算法产生令人赏心悦目的真实感图像。这是狭义的计算机图形学的范畴。随着近40年的发展,计算机图形学的内容已经远远不止这些了。广义的计算机图形学的研究内容非常广泛,如图形硬件、图形标准、图形交互技术、光栅图形生成算法、曲线曲面造型、实体造型、真实感图形计算与显示算法,以及科学计算可视化、计算机动画、自然景物仿真、虚拟现实等。

    根据笔者的理解,计算机图形学主要包含四大部分的内容:建模(Modeling)、渲染(Rendering)、动画(Animation)和人机交互(Human–computer Interaction, HCI)

     

    1、建模(Modeling)

    要在计算机中表示一个三维物体,首先要有它的几何模型表达。因此,三维模型的建模是计算机图形学的基础,是其他内容的前提。表达一个几何物体可以是用数学上的样条函数或隐式函数来表达;也可以是用光滑曲面上的采样点及其连接关系所表达的三角网格来表达(即连续曲面的分片线性逼近),如下图所示。

    三维建模方法主要包含如下的一些方法:

    l  计算机辅助设计(CAD)中的主流方法是采用NURBS(非均匀有理B-样条、Bezier曲线曲面)方法(已成为CAD工业领域的标准),这也是计算机辅助几何设计(CAGD)所研究的主要内容。此类表达方法有一些难点问题仍未解决,比如非正规情况下的曲面光滑拼合,复杂曲面表达等。这部分涉及的数学比较多,国内做这块的学者比较多些。

    l  细分曲面(Subdivision surface)造型方法,作为一种离散迭代的曲面构造方法,由于其构造过程朴素简单以及实现容易,是一个方兴未艾的研究热点。经过十多年的研究发展,细分曲面造型取得了较大的进展,包括奇异点处的连续性构造方法以及与GPU图形硬件相结合的曲面处理方法。

    l  利用软件的直接手工建模。现在主流的商业化的三维建模软件有Autodesk 3D Max Maya。其他还有面向特定领域的商业化软件,比如面向建筑模型造型的Google Sketchup,面向CAD/CAM/CAECATIAAutoCAD,面向机械设计的SolidWorks,面向造船行业的Rhino等。这些软件需要建模人员有较强的专业知识,而且需要一定时期的培训才能掌握,建模效率低而学习门槛高,不易于普及和让非专业用户使用。

    l  基于笔划或草图交互方式的三维建模方法。草图交互方式由于其符合人类原有日常生活中的思考习惯,交互方式直观简单,是最近几年研究的热点建模方法。其难点是根据具体的应用场合,如何正确地理解和识别用户的交互所表达的语义,构造出用户所希望的模型。

    l  基于语法及规则的过程式建模方法。特别适合具有重复特征和结构化的几何物体与场景,比如建筑、树木等。最近几年有较多的论文及较大的发展。

    l  基于图像或视频的建模方法。这是传统的计算机视觉所要解决的基本问题。在计算机图形学领域,这方面的发展也很迅速。有一些商业化软件或云服务(比如Autodesk123D),已经能从若干张照片重建出所拍摄物体的三维模型。该方法的问题是需要物体本身已经存在,而且重建的三维模型的精度有限。

    l  基于扫描点云(深度图像如Kinect、结构光扫描、激光扫描、LiDAR扫描等)的建模(Reconstruction)方法。随着深度相机的出现及扫描仪的价格迅速下降,人们采集三维数据变得容易,从采集到的三维点云来重建三维模型的工作在最近几年的Siggraph(Asia)上能常见到。但是,单纯的重建方式存在精度低、稳定性差和运算量大等不足,远未能满足实际的需求。

    l  基于现有模型来合成建模的方法。随着三维模型的逐渐增多,可以利用现有的三维模型通过简单的操作,比如cut and paste,或者分析及变形等手段,来拼接或合成新的三维模型。这种通过“学习”模型数据库的知识来进行建模的手段在近3-5年里研究得非常热门。从某方面来讲,就是“大数据时代”背景下计算机图形学领域中的一个具体的表现。

     

    除了上述的这些建模方法,还有其他的一些建模方法,在此不再一一列举。

    在对三维几何模型的构建过程中,还会涉及到很多需要处理的几何问题,比如数据去噪(denoising or smoothing)、补洞(repairing)、简化(simplification)、层次细节(level of detail)、参数化(parameterization)、变形(deformation or editing)、分割(segmentation)、形状分析及检索(shape analysis and retrieval)等。这些问题构成“数字几何处理”的主要研究内容。笔者自2005年起开设了多年的《数字几何处理》的研究生课程:

    http://staff.ustc.edu.cn/~lgliu/Courses/DGP_2012_spring-summer/default.htm

     

    虽然有上述所提到的这么多的三维建模方式,但是至今为止,仍没有适合一般家庭用户的轻松简单的建模工具。现有的电子设备(比如相机,手机等)能够帮助人们轻松获得图像和视频,但是,不是人人都有能力来构建三维几何模型。如何让大众能够像获取图像那样能够随时随地地获取或者构建三维模型,仍然是计算机图形学的任重道远的主要任务之一!今天,计算机图形学仍未进入“大数据时代”。只有让大众能够轻松进行三维建模,并上载分享他们所构建的模型数据,计算机图形学才可能进入大数据时代。

    另外,随着三维打印(3D printing)的新兴技术的逐渐普及,人们对三维模型的需求也日益增加。笔者个人认为,几何建模和三维打印的未来是共呼吸,同命运的:也只有当人人都能轻松建模时,三维打印才有可能走向千家万户。

    三维几何建模的任务仍然任重道远,大家仍需共同努力!

    什么是计算机图形学?


    2、渲染(Rendering)

    有了三维模型或场景,怎么把这些三维几何模型画出来,产生令人赏心悦目的真实感图像?这就是传统的计算机图形学的核心任务,在计算机辅助设计,影视动漫以及各类可视化应用中都对图形渲染结果的高真实感提出了很高的要求。

    上个世纪80-90年代研究的比较多些,包含了大量的渲染模型,包括局部光照模型(Local Illumination Model)、光线跟踪算法(Ray Tracing)、辐射度(Radiosity)等,以及到后面的更为复杂、真实、快速的渲染技术,比如全局光照模型(Global Illumination Model)Photo mappingBTFBRDF、以及基于GPU的渲染技术等。

    现在的渲染技术已经能够将各种物体,包括皮肤、树木、花草、水、烟雾、毛发等渲染得非常逼真。一些商业化软件(比如Maya, Blender, Pov Ray等)也提供了强大的真实感渲染功能,在计算机图形学研究论文中作图中要经常用到这些工具来渲染漂亮的展示图或结果图。

    然而,已知的渲染实现方法,仍无法实现复杂的视觉特效,离实时的高真实感渲染还有很大差距,比如完整地实现适于电影渲染(高真实感、高分辨率)制作的RenderMan标准,以及其他各类基于物理真实感的实时渲染算法等。因此,如何充分利用GPU的计算特性,结合分布式的集群技术,从而来构造低功耗的渲染服务是发展趋势之一。


    什么是计算机图形学?

    3、动画(Animation)

    有了模型,并且能够比较真实地渲染出来后,下一步的任务就是如何让模型动起来,即设计模型的动画序列。动画是采用连续播放静止图像的方法产生物体运动的效果。计算机动画借助于编程或动画制作软件生成一系列的景物画面,是计算机图形学的研究热点之一。研究方向包括:人体动画,关节动画,运动动画,脚本动画,具有人的意识的虚拟角色的动画系统等。另外,高度物理真实感的动态模拟,包括对各种形变、水、气、云、烟雾、燃烧、爆炸、撕裂、老化等物理现象的真实模拟,也是动画领域的主要问题。这些技术是各类动态仿真应用的核心技术,可以极大地提高虚拟现实系统的沉浸感。计算机动画的应用领域广泛,比如动画片制作,广告、电影特技,训练模拟,物理仿真,游戏等。

    网上的一些3D动画的视频:

    Larva虫虫http://v.youku.com/v_show/id_XMzAzMzkxMTY0.html

    The Killer Bean: http://v.youku.com/v_show/id_XMjI5ODE2MTEy.html

    爱与孝http://v.youku.com/v_show/id_XNTU0OTUxNjUy.html

    房地产动画广告宣传片http://v.youku.com/v_show/id_XNTc1OTE4MDMy.html

     

    4、人机交互(Human–Computer Interaction, HCI)

    人机交互(Human-Computer Interaction, 简写HCI)是指人与计算机之间以一定的交互方式或交互界面,来完成确定任务的人与计算机之间的信息交换过程。简单来讲,就是人如何通过一定的交互方式告诉计算机来完成他所希望完成的任务。

    计算机图形学的顶级会议ACM SIGGRAPH是“ACM Special Interest Group on GRAPHics and InteractiveTechniques”的缩写,缩写中只包含了Graphics,而忽略了Interactive Techniques,在长时间没有得到计算机图形学研究的重视。最近,包括在SIGGRAPH会议上,以及人机交互的顶级会议SIGCHI上,陆续出现了许多新兴的人机交互技术及研究论文。大家逐渐重视起来。

    在早期(上个世纪60-70年代),只有以键盘输入的字符界面;到了80年代,以WIMP(窗口、图符、菜单、鼠标)为基础的图形用户界面(GUI)逐渐成为当今计算机用户界面的主流。

    近年来,以用户为中心的系统设计思想,增进人机交互的自然性,提高人机交互的效率是用户界面的主要研究方向。陆续提出了多通道用户界面的思想,它包括语言、姿势输入、头部跟踪、视觉跟踪、立体显示、三维交互技术、感觉反馈及自然语言界面等。

    事实上,人体的表面本身就是人机界面。人体的任何部分(姿势,手势,语言,眼睛,肌肉电波,脑波等)都可以成为人机对话的通道。比如2010年微软出的Kinect就是一种无需任何操纵杆的基于体感的人机界面,用户本身就是控制器。Kinect在微软的Xbox游戏上取得了极大的成功,之后在其他方面也得到了很多的应用。

    特别是到了今年(2013年),人机交互设备有了巨大的发展,各种自然的交互手段层出不穷,极大地丰富了用户与机器交互的体验,方便了用户的操作,轻松表达了用户的交互意图。可以说,

    我们正处在图形与交互技术极速发展的浪尖!

     

    以下是最近几年(特别是今年)出现的一些值得关注的新兴的人机交互设备:

    l  Microsoft Kinecthttp://v.youku.com/v_show/id_XNTc2ODY0MTA4.html

    1)       Kinect由微软于2010年推出的对XBOX360体感外设,它不需要使用任何控制器,仅依靠相机捕捉三维空间中玩家的运动,同时它导入了即时动态捕捉、影像辨识、麦克风输入、语音辨识、社群互动等功能。Kinect彻底颠覆了游戏的单一操作。使人机互动的理念更加彻底的展现出来。之后,基于Kinect的各种应用像雨后春笋般的冒出来,包括人机交互,手势识别,几何建模等。

    2)       2013528日的Xbox One发布会上,微软展示了新一代Kinect 2.0,新 Kinect能感知的语音、手势和玩家感觉信息,将给玩家带来前所未有的互动性体验:

    http://v.youku.com/v_show/id_XNTIyODU0NDky.html

    l  Leap Motionhttp://v.youku.com/v_show/id_XNTAwMzg0MTQw.html

    Leap Motion为放在键盘和显示器之间的小小金属棒,就能让任何一位用户通过简单的手势完成人机交互。Leap Motion 的响应惊人的准确,对各种自然而简洁的手势都能识别。不必站起来或者摆动手臂,Leap Motion 是简单而毫不费力的交互方式。我们在4月份就预订了一台,到现在还未到货,估计要到下个月到货。到货后我们会对其进行评测。

    l  MYOhttp://v.youku.com/v_show/id_XNTYzNzg3MDA0.html

    MYO 是一款能在用户挥动并指向屏幕时测量各种肌肉产生的电活动来完成交互的腕带。MYO 超越 Leap Motion 的一点是,MYO 对用户的位置没有限制。尽管MYO只听令于身体的一个部分(手臂),但是其应用的场合还是很多的。期望未来会有更多的听令于身体的其他部分的交互设备。

    l  Google Glasshttp://v.youku.com/v_show/id_XNTYzNzk1NjIw.html

    Google GlassGoogle公司在2012I/O开发者大会上正式公布的,在看起来普普通通的眼镜上配置强大的计算机和显示器。这款设备小巧而不显眼,可以在任何时间地点使用,即用户想要专注于周围环境时不会碍事。不过对其未来的发展各有说法,让我们拭目以待。

    l  3D Printer:这个就不用笔者详细说了,这两年太火了。正如上面所提到的观点,笔者觉得3D打印的出现带给了我们从事计算机图形学研究的工作者许多的机会。挑战和机会并存!我们应该要抓住这次机会!

    l  3Doodlerhttp://v.youku.com/v_show/id_XNTE2MjM5NzUy.html

    3Doodler是玩具和机器人公司Wobble Works开发的全球首款“3D打印笔”,可以帮助人们在半空中创造出三维结构的模型。今后人们可以在三维空间中来“画图”交流和表达想法了。

    l  Apple iWatchhttp://v.youku.com/v_show/id_XNTIwODk0MzM2.html

    iWatch由苹果公司推出的一款智能手表。现在仍是概念产品,面世时间未定。其界面看看视频就知道有多酷。但是其技术上的实现笔者也没有完全想通,呵呵。

     

    除了上述介绍的外,最近还有其他很多新的人机交互类的电子科技产品,比如透明手机,可折叠的屏幕,具有气味和触感反馈的头盔等,就不一一介绍了。

    由此可见,以前在科幻电影里出现的“神器”逐渐被实现,计算机图形学及相关技术在其中发挥了重要的作用。同时,这些设备的出现,也带给了计算机图形学领域更多的探索和机会。

     

    5、其他内容

    上述所提到的只是计算机图形学的主要的四块内容。事实上,与计算机图形学相关的学科还有很多,以下仅介绍几个最为相关的研究方向:

    l  虚拟现实(Virtual Reality):利用计算机图形产生器,位置跟踪器,多功能传感器和控制器等有效地模拟实际场景和情形,从而能够使观察者产生一种真实的身临其境的感觉。虚拟现实技术主要研究用计算机模拟(构造)三维图形空间,并使用户能够自然地与该空间进行交互。对三维图形处理技术的要求特别高。简单的虚拟现实系统早在70年代便被应用于军事领域,训练驾驶员。80年代后随着计算机软硬件技术的提高,它也得到重视并迅速发展。它已在航空航天、医学、教育、艺术、建筑等领域得到初步的应用。

    l  可视化(Visualization):利用计算机图形学和图像处理技术,将数据转换成图形或图像在屏幕上显示出来,并进行交互处理的理论、方法和技术。现已成为研究数据表示、数据处理、决策分析等一系列问题的综合技术。上面提到的虚拟现实技术也是以图形图像的可视化技术为依托的。在现在的大数据时代的背景下,可视化的内容除了传统的科学可视化外,现在还有信息可视化,可视分析等方面。

    l  可视媒体计算与处理(Visual Media Processing):几何数据,被认为是继声音、图像、视频之后的新一代数字媒体,是计算机图形学的研究重点。最近几年,计算机图形学与图像视频处理技术相结合的研究与技术日益增多。正如笔者在上面所提及的,图像和视频的大数据处理能带给计算机图形学很多处理手段上的更新。另一方面,随着而计算机图形学技术,恰可以与这些图像处理,视觉方法相交叉融合,来直接地生成风格化的画面,实现基于图像三维建模,以及直接基于视频和图像数据来生成动画序列。当计算机图形学正向地图像生成方法和计算机视觉中逆向地从图像中恢复各种信息方法相结合,可以带来无可限量的想象空间,构造出很多视觉特效来,最终用于增强现实、数字地图、虚拟博物馆展示等多种应用中去。因此,在很多方面,计算机图形学与图像处理、视频处理、多媒体处理、计算机视觉等学科逐渐融合在一起,有成为一个更大的学科的趋势。

    l  医学图像处理(Medical Imaging):随着医学成像技术的发展与进步,图像处理在医学研究与临床医学中的应用越来越广泛。与一般意义上的图像处理比较,医学图像处理有其特殊性和不同的侧重点。医学图像处理由生物医学成像(X射线、CTMRI)和生物医学图像处理两部分组成,在生命科学研究、医学诊断、临床治疗等方面起着重要的作用。医学图像分析中涉及的两个最为重要的内容为图像分割与图像配准。

    l  计算机艺术(Computational Arts):计算机图形学的发展也提供给了艺术家发挥和实现想象的丰富的技术手段。计算机艺术的发展速度远远超出了人们的想象,在代表计算机图形研究最高水平的历届SIGGRAPH年会上,精彩的计算机艺术作品层出不穷。在计算机图形学领域,还有几个关于计算艺术方面的会议,包括非真实性图形学(Non-Photorealistic Graphics)Computational Aesthetics(计算美学)等。吸引了计算机工作者、艺术家、建筑师、设计师等方面的人员在一起,通过头脑风暴和交流讨论的方式进行一些有创意的技术研究。

     

     

    三、             学习计算机图形学需要哪些基础?

     

    计算机图形学是一门与很多学科都交叉的学科方向。因此,要学好计算机图形学和做好计算机图形学方面的研究,除了计算机图形学的基础知识以外,你还需要有其他方面的一些知识。当然你懂得越多当然会越好。

     

    1、数学

    计算机图形学进入我国大概在上个世纪70年代末和80年代初,那时国内还没有计算机学科。于是,开始学习和研究计算机图形学的大部分都是搞数学的一些学者和教授。由此可见,计算机图形学是需要数学知识较多的一门计算机应用技术学科,在我国也是应用数学的一个重要分支(国内的很多高校和科研院所的数学专业都有计算机图形学方向)。

    计算机图形学里面用到的数学比较多,列举一些常用的,包括:微积分、线性代数、矩阵计算、微分几何、数值计算和分析、计算方法、偏微分方程、微分方程数值解、最优化、概率、统计、计算几何等。

    计算机图形学领域的一位优秀学者Greg Turk教授在1997年曾写过一篇“计算机图形学中的数学”(Mathematics for Computer Graphics)的帖子,详细可见:

    http://www.cc.gatech.edu/~turk/math_gr.html

    其中文翻译版本可见:

    http://staff.ustc.edu.cn/~lgliu/Resources/CG/Math_for_CG_Turk_CN.htm

    笔者在多年从事计算机图形学研究中对数学的体会是:“数学不是没有用,而是不够用!”。对数学的学习和应用将是“活到老,学到老”。重要的是,从以前看似枯燥的数学到看到它的实际应用的过程中,你会更容易享受数学的美妙。在你不断进行计算机图形学的研究的过程中,你会感觉到你的数学知识越来越不够用,从而真正理解其中的数学思想和数学方法。

    另一方面,想成为一名计算机图形学的研究者也不必精通各门数学!在大学里,你所学的那些数学看起来都很抽象,枯燥无味,这是因为你并不知道它们的用处,甚至连讲课的老师也不知道,而你们的目的只是记住那些定理和公式,考个好分数。与大学学习数学不一样的是,你在计算机图形学的学习和研究过程中会感受到数学的用处和美妙,这时你学习数学的目的将更加明确,兴趣将更加浓厚,学习方法将更加有效。因为你是在使用数学的过程中在学习数学!想想看你是如何学会中文说话的?以上提到的常用的数学课程你不必都要熟悉,许多研究工作者从不需要考虑其中提到的某些数学知识,成功的研究者总是将某一方面的数学知识和数学工具用到极致!

    总之,关于计算机图形学与数学的关系,归纳起来就是以下几个原则:

    l  计算机图形学的研究需要用到较多的数学知识,有较好数学功底的学生从事计算机图形学有一定优势;

    l  即使没有学太多的数学也不要紧。数学的知识不需要都学会了再去做问题,在解决问题的过程中去学习数学是最快的学习方法。即,研究过程中若遇到什么数学知识再去学相关的知识,学习起来会更有兴趣,掌握起来会更快更扎实;

    l  学习数学要结合图形,即“数形结合”,需要有图形的想象能力;数学公式不重要,是“纸老虎”,重要的是背后的思想及其所表达的概念,公式只是它们的一个抽象表达;

    l  活到老,学到老。要不断学习新的知识和技术,使自己不断进步和增长功力,才是王道。

     

    2、编程

    在计算机图形学中,大部分的想法都要通过实际例子来验证的,再好的理论也要拿实际例子来得到验证和应用。因此,利用编程语言来实现想法或算法是必须要有的能力。C/C++是计算机图形学最常用的编程语言。

    笔者要求学生必须掌握C++编程语言和面向对象编程思想,这是大家通用的“语言”。网上的大部分的资源、类库、算法代码基本上都是C++写的,因此,你若需要利用这些资源,必须掌握甚至精通C++语言。

    关于计算机图形学所需要的编程能力的几点看法:

    l  从事计算机图形学和图像处理的研究需要有较强的编程能力,要对编程有极大的兴趣和热情;

    l  如果你对编程比较“感冒”或“厌恶”,则建议你不要选择计算机图形学方向;

    l  不太会编程不要紧,任何人都是从不会到会的!只要你对编程有兴趣,觉得编程“好玩”,您完全可以在很短的时间内极大地提高您的编程水平。笔者在长期的教学实验和科研过程中,摸索和发展出一套有效的方法,能够在最短的时间内,帮助学生(包括数学专业的学生)快速提高编程的能力。

     

    3、其他

    l  英语基础要好,因为需要大量阅读英文文献和进行英文论文的写作;英文的听说能力也要好些,因为要跟国际学者交流讨论;

    l  计算机图形学中的很多算法是真实物理世界的模拟,因此,如果你要进行基于物理的建模和仿真,一些物理知识和理论也需要的,比如力学(动力学,运动学,流体力学)和光学等;

    l  其他学科的知识,根据具体研究的需要去学习即可,不必刻意去提前学多少。

     

    4、计算机图形学的教材

    上面列举的只是在你从事计算机图形学的学习和研究中可能要用到的东西,不必所有的都学会才能开始计算机图形学的学习和研究。一门知识点不懂不要紧,重要的是要能尽快学习新知识的能力和速度!事实上,最好的学习方法就是在使用中学习。因此,计算机图形学的学习和研究提供了你学习其他相关知识的好的过程。

    现在市面上的计算机图形学的教材有很多,但是很多教材的内容仅仅是计算机图形学的基本知识,知识点也比较陈旧。不能指望通过一本或几本教材就能学会计算机图形学。计算机图形学的内容远比教材中或你想象中的内容多得多。正如笔者上面所述,计算机图形学作为一门技术科学,特别是在当前的互联网、移动互联网、大数据时代及第三次工业革命的时代背景下,最近几年的发展日新月异!务必要通过跟着老师做相关研究来了解计算机图形学最新的发展和趋势。除了阅读最新的最新的科研论文外,还需要不断关注信息科技及电子科技的一些前沿发展。要相信,计算机图形学是好玩的,是有用的,更是有未来的!充满热情和激情,才能做好计算机图形学方面的研究。

     

     

    四、             SIGGRAPH简介

     

    说到计算机图形学,不能不提SIGGRAPH

    ACM SIGGRAPH是“ACM Special Interest Group on GRAPHics and Interactive Techniques”(美国计算机协会计算机图形专业组)的缩写,成立于1967年,致力于推广和发展计算机绘图和动画制作的软硬件技术。从1974年开始,ACM SIGGRAPH每年都会举办一次年会(也称为SIGGRAPH),至今年已经举办了40次。SIGGRAPH是计算机图形学顶级年度会议,代表着世界级水平的研究,能在SIGGRAPH上发表论文是许多从事计算机图形学研究的工作者的梦想。

    SIGGRAPH每年7月底或8月初在美国召开(2011年在加拿大温哥华召开,是SIGGRAPH首次在美国以外的城市举行)。事实上,SIGGRAPH是世界上影响最广、规模最大,同时也是最权威的一个集科学、艺术、商业于一身的CG展示、学术研讨会,参会人数众多,一般有2--4万人。绝大部分计算机图技术软硬件厂商每年都会将最新研究成果拿到SIGGRAPH年会上发布,大部分游戏的电脑动画创作者也将他们本年度最杰出的艺术作品集中在SIGGRAPH上展示。因此,SIGGRAPH在图形图像技术,计算机软硬件以及CG等方面都有着相当的影响力。

    2008年开始,Siggraph来到亚洲,每年冬天(1112月)在亚洲的一个城市(2008,新加坡;2009,日本横滨2010,韩国首尔2011,中国香港;2012,新加坡)召开,称为SIGGRAPH Asia。今年的Siggraph Asia将在20131119-22号于中国香港召开。

    SIGGRAPH一样,发表者SIGGRAPH Asia上的研究论文也代表着计算机图形学领域的最前沿和最高水准,所有研究论文都发表在ACM Transactions on Graphics期刊上,这是计算机图形学领域唯一的一个Top (I)的学术期刊。可以形象地将SIGGRAPHSIGGRAPH Asia分别比喻为计算机图形学领域的“夏季奥运会”和“冬季奥运会”。

    SIGGRAPH会议上,除了研究论文外,还有很多其他内容,比如课程、短文、海报、CG企业展示、电子剧场、动画节、新型科技展示、艺术画廊、教育等,比你想象得要多得多。很多活动都是并行的,因此你需要每天提前计划好所参加的活动。视觉中国网站的“Siggraph 2007会议报道”有详尽的关于Siggraph 2007年的报道:

    http://static.chinavisual.com/storage/topics/39942/index.shtml

    虽然这是6年前的Siggraph介绍,但上述链接的内容仍然是对SIGGRAPH比较全面的介绍。其中有很多视频和材料,详细介绍了Siggraph盛会的情况,而且有对计算机图形学的历史发展的介绍。建议详细查看。

     

     

    五、             其他问题

     

    1、  如何选择适合自己的工作(研究方向)?

    A: 就两点:兴趣 + 擅长!

    兴趣是第一位的,是否擅长需要尝试和不断学习成长!学会将自己的天赋发挥到极致!

     

    2、  自己是否适合学习和从事计算机图形学的研究?

    A: 看看自己是否满足以下两个条件:

    1)       对计算机图形学或图像处理具有强烈的兴趣和激情;

    2)       喜欢算法设计和编程。

    若上述两个条件都满足(觉得好玩!),则可以尝试选择计算机图形学作为自己的研究方向。

     

    3、  从事研究工作需要哪些品质?

    A: 激情、好奇心、努力!

     

    4、  为何选择从事研究工作?

    A: http://staff.ustc.edu.cn/~lgliu/Resources/ForMyStudents/GCL-WhyResearch.rar

     

    5、  如何在研究生期间取得成功?

    A: http://staff.ustc.edu.cn/~lgliu/Resources/ForMyStudents/HowToSucceedAtGCL.rar

     

     

    六、             更多参考材料

     

    l  有关更多地了解计算机图形的知识和内容,可搜索并参考Internet上的丰富的资源介绍,比如百度百科维基百科等。本文的写作过程中也参考了网上的许多资源。

    l  国外和国内有很多有关《计算机图形学》的课程网站,可以通过查看相关视频和课件更多地了解计算机图形学的内容。

    l  国内外有很多从事计算机图形学研究的教授学者的网站,会列出他们所做的有关计算机图形学方面的研究,可以更为深入了解计算机图形学领域所研究的东西。

    l  与计算机其他学科一样,每年都有计算机图形学方面的很多会议。这些会议会有该领域的最新进展和研究工作,是了解计算机图形学发展及趋势的重要手段。在计算机图形学方面,可以通过以下链接来获得各个会议的信息http://kesen.realtimerendering.com/ 建议加该链接为你的浏览器的标签。

    l  Internet上经常会有计算机图形学相关的科技信息,要有意识经常关注,随时了解该学科方向的动态、发展和未来。

    l  计算机图形学及相关学科在近些年来得到迅速的发展,特别是2013年出现的各种交互人机交互技术的出现,我们正处在技术极速发展的浪尖!计算机图形学前景诱人,形势逼人。相对于美国等西方国家,我国的计算机图形学相关产业还相对落后,但这正是留给我们这代人的机会!相信通过我们的努力,是可以逐渐缩短差距的,也带来了巨大的挑战和机会。

    l  最后,要相信,计算机图形学是很好玩的,是有用的,更是有未来的。“相信是成功的开始”。祝各位能够感受计算机图形的美妙,能够在计算机图形学的海洋中享受快乐和成功!J

     

     

    祝您健康、快乐、成功!

     

    刘利刚

    中国科技大学,图形与几何计算实验室(http://gcl.ustc.edu.cn)

    个人主页:http://staff.ustc.edu.cn/~lgliu

    电子邮箱:lgliu@ustc.edu.cn

    201388

    展开全文
  • 除了维护和稳定性之外,还有许多理想的功能需要添加。如果您的公司使用的是Dear ImGui,请考虑联系) 业务:通过发票技术支持,维护,赞助合同支持持续的开发和维护: 电子邮件:联系@ dearimgui dot com 个人: ...
  • 针对传统大地测量方法监测边坡稳定性存在的不足,研究了由计算机控制的带伺服电机驱动的高精度自动全站仪、高精度温度计、数字气压计、光电频率校准仪、数据采集与处理等专用仪器和软件组成的边坡稳定性自动监测系统....
  • 什么图形加速卡(二)

    千次阅读 2013-01-26 19:47:13
    原文:http://www.azillionmonkeys.com/qed/accelerator.html作者:Paul Hsieh-潘宏 译-2013年1月-email: popyy@...但作为理解GPU发展的历史、技术材料,本文真是不可多得)主机和显卡的通信粗略来说,将图形操作从

    原文:http://www.azillionmonkeys.com/qed/accelerator.html

    作者:Paul Hsieh


    -潘宏 译

    -2013年1月

    -email: popyy@netease.com

    -weibo.com/panhong101


    (译注:本文写于2000年左右,很多内容稍显过时。但作为理解GPU发展的历史性、技术性材料,本文真是不可多得)


    主机和显卡的通信


    粗略来说,将图形操作从主机传送到显卡,会通过某种命令队列(或者FIFO)来完成。主机端的图形API(比如GDI,DirectDraw/3D/X,或者OpenGL)会被分解为显卡的特定命令。这些命令会被显卡执行,完后以先进先出的方式出队。对命令队列进行写入以及调度,经常会牵扯到对内存映射显卡寄存器,或IO端口的读写。此外,也可能会牵扯写系统内存,以及使用显卡DMA等策略(我相信nVidia和3DLabs,以及Matrox都会这么做)。


    早期显卡的瓶颈之一是命令队列经常过短(通常有16个位置,原始ATI Mach64即如此),以至于主机和显卡不能充分并行工作。为此,主机端驱动程序通常可能被阻塞,等待着队列给下一个操作腾出足够位置。现代显卡中,队列的位置都进行了大量扩充,通常都会超过512个。此外,尽管显卡寄存器窗口(译注:寄存器窗口(Register Window)技术用来改善因处理器寄存器有限而造成的公共操作性能问题)已预留了一个小型队列,但仍有一部分显存会被用来当作一个溢出队列(Spill Queue),这实质上是对寄存器窗口队列的一个扩展(我认为S3是这样的)。


    有些显卡使用另一个技巧来改善队列访问性能,就是把队列内存映射到连续的内存地址上,这样,显卡将有机会利用主机芯片组的PCI突发传送(Bursting Capabilities)能力(MPACT和3DFX都是这样)。


    三角形剔除(Culling)也是越来越重要的显卡特性。对此存在一个争议:剔除应该在主机端执行以减少PCI带宽,还是在显卡中执行以最小化计算开销。问题是很多软件都是自己做剔除(因此不需要显卡驱动或显卡本身帮着弄)。究其原因,是在这些软件中,被渲染的物体往往携带诸多复杂属性,因此提前进行裁剪有利于减少后面牵扯这些复杂属性的计算开销。这也有弊端,因为有些写得比较保守的图形库程序本身也会进行背面剔除,这会导致二次剔除开销。所以,提供某种“渲染前请不要剔除这些三角形”开关,可能非常有用(对!微软,就是在提醒你!)。


    对此,我认为nVidia的方案会是:利用AGP的更高吞吐量(这就不算个瓶颈了),把所有数据都丢给显卡,让它做剔除。


    通常情况下,显卡会配有一个快速的(在PCI总线情况下足以说快了)帧缓冲,所以若需要,CPU会代替显卡,或者同显卡一道,对显存进行更新。有些显卡,比如TSENG ET6000,实际上会维护一个帧缓冲和PCI总线之间的缓存,这种情况下来自主机的访问可能只需最小的延迟等待(这可能是图形系统中RAM仲裁器的一部分)。因为没有使用任何并行机制(这对于显卡的高性能来说是关键),大家也就不奇怪为何ET6000不是顶级显卡了。


    说到主机和显卡并发存取显存,这种技术鲜为使用,因为这需要一个先进的仲裁系统,用来隔离将被用于显卡操作的显存区域。Chromatic的MPACT媒体处理器实际上有这么个仲裁特性,它对于增强Windows DIB(桌面应用程序使用的2D位图数据结构)的性能特别有用。而对于3D性能提升,MPACT存在设计上的问题。但MPACT媒体处理器软件的并行性,可以说在它的时代是最好的。


    几乎所有的显卡都有个共性,就是当主机有读写显存之需求时,显卡都要先等待所有积压的图形操作完成,命令队列被清空,才继续进行。这样,也就造成了写显存的额外代价,就是在访问显存的间隔时间中,那些积压的图形操作所产生的总等待时间(Latency)的均值。大多数显卡厂商都认定,减少操作本身的等待延迟才是唯一的解决方案。我不同意此观点。


    当前方案有这样一个前提机制来保证:一个复杂的多存取显存仲裁机制并不需要同等复杂的硬件来支持。用个简单的“操作计数器”机制就能搞定了。基本思想是,每当一个图形操作完成,操作计数器(用内存映射寄存器,或者只是显存中的一个值来保存)就递增。实际工作时,显卡驱动程序会保存一个计数的拷贝(用一个主机端计数器影射图形端计数器),该计数就是针对相应内存对象(表面、前缓冲、后备缓冲、Windows位图等等)进行操作,最终完成时的累加值。有了这个值用于计数比较,也有了命令队列长度限制用于避免计数器越界回绕,你就能知道显卡针对某个内存对象,什么时候完成了所有操作(这需要很稳定的硬件和软件以避免显存崩溃而导致死机)。


    而我的方案是:减少主机等待延迟,从而提高显存带宽。该方法的一个典型应用情景是:有一些图形操作正在传输,还有一些被积压等待执行,此时主机突然通过PCI发送了一个操作请求过来,接着显卡马上挂起当前动作,并排空内部显存仲裁器(PCI事务必须比其它设备访问内存有更高的优先级)。所以实际上,从显卡角度看,这种方式会强烈冲击性能。然而从主机角度看,直接PCI显存访问在很大程度上,可以说用马上用,不用等了(不像过去,因为过度担心安全性,必须得等到所有积压的操作完成,才能访问显存),这也就减少了主机等待。换言之,在这种方案中,系统在每个周期可以干更多活。


    我这办法不错吧?过去我跟行业里的人说过这想法,他们都不以为然,很诧异地觉得我在忽悠。现在不管那些了,反正这些东西都做出来了,也看到它们确实提高性能了,我已经证明了自己。这办法确实有用。可编程显卡,比如MPACT媒体处理器和Rendition的Verite,甚至Matrox GXXX系列,都可以毫无压力地使用我这个方法。如果是通过纯硬件方法而没有用我的办法,那还是做个硬件的操作计数器吧。


    最后,我想对前面提到的那个DMA概念,再多说一点。拥有总线控制能力(BUS-mastering)的显卡,可以通过PCI或者AGP总线,在无需CPU插手的情况下,访问非cache的系统内存(需要通过DMA)。使用这种机制进行纹理交换,以及其他内存传输操作,可增强主机和显卡间的并行性。但还得注意,这仍存在一些协调性问题(试想主机怎么能知道当前DMA传输完成?)。关于这一点,我在前面已经讨论过了(最近经常被提到的Permedia 3显卡,就可以把系统内存当作其内存控制器中的L3缓存一样使用——这提高了纹理传输的透明性和效率。比如,如果只需要某张纹理的一部分,那么显卡就可以通过AGP总线以DMA的方式,直接从系统内存里拿走那部分纹理)。

    展开全文
  • 刘利刚老师谈什么是计算机图形学?

    千次阅读 2018-12-08 18:19:12
    什么是计算机图形学? 刘利刚 中国科学技术大学 图形与几何计算实验室 http://staff.ustc.edu.cn/~lgliu 【注】 由于时常有本科学生来向笔者询问计算机图形学是做什么的,为了使得学生能够快速了解计算机图形学...
  • 问我为什么用MySql,那自然是入门简单,并且我当时只熟悉MySql。可是,随着数据量越来越大,有一个问题始终困扰着我,那就是社交关系的存储。  就以新浪微博举例,一个大V少则十几万,多则几千万的粉丝,这些关注...
  • 除了维护和稳定性之外,还有许多理想的功能尚需亲爱的imgui(该库可免费获得许可许可证,但需要财务支持以保持其持续改进。除了维护和稳定性之外,还有许多理想的功能需要添加。如果您的公司使用的是昂贵的imgui,请...
  • 什么图形加速卡(四)

    千次阅读 2013-03-02 11:44:58
    原文:http://www.azillionmonkeys.com/qed/accelerator.html作者:Paul Hsieh-潘宏 译-2013年2月-email: popyy@...但作为理解GPU发展的历史、技术材料,本文真是不可多得)显示器刷新最后一个瓶颈,是关于显示器刷
  • MATLAB GUI(图形用户界面)可用于分析在“将自适应电压控制器应用于光伏升压转换器的串级控制”中提出的自适应电压控制的稳定性。 作者:卢卡斯·维佐托·贝利纳索博士(英语:Lucas Vizzotto Bellinaso,Eng。) ...
  • 图形数据库是这几年兴起的,整体还不是很完善,而且适用面也是比较窄的。只有在明确自己的需求之后,才能确定是否选择图形数据库
  • 在本文中,我们使用Arnold舌头以图形方式比较了周期微分方程稳定性的一些充分标准。 我们还简要介绍了每个标准的作者如何获得它们。 并给出了四种充分的稳定性判据与通过扰动法求出的稳定区之间的比较。
  • 在这篇研究文章中,我们研究了一个复杂的动力学系统的稳定性,该系统包括由三个相等的质量组成的刚体,该刚体由三个相等长度的刚性杆连接在一起,每个杆均铰接在其每个基座上。 该系统可在垂直平面内自由振荡。 我们...
  • 本文提出了一种通用的图形方法来进行具有各种参数不确定结构的分数阶多项式的稳定性分析。已经获得了分数阶不确定多项式的值集,并且成功地与众所周知的零排除原理相结合来研究多项式的鲁棒稳定性。六种不同的不确定...
  • 底部具有可定制界面和多种功能的跨平台图形进程/系统监视器。支持 Linux、macOS 和 Windows。受到gtop和gotop 的启发。基于gruvbox (--color gruvbox ) 的主题。字体是IBM Plex Mono ,终端是Kitty 。注意:如果您在...
  • 文章目录第一章 计算机图形学概论1.1 全书概述1.2 计算机图形学定义1.3 计算机图形学研究内容1.4 计算机图形学的发展历史1.5 计算机图形学的应用领域1.6 计算机图形系统组成1.7 图形显示设备1.8 图形学相关概念1.9 ...
  • 专业图形引擎

    2008-03-14 13:14:47
    此产品包含了大量的创新技术,系统具有尺寸小、速度快、灵活高、稳定可靠、兼容好等突出优点,特别适合与网络时代的软件开发,是国产软件中比较罕见的精品。 要下载完整的程序,请登陆: ...
  • 【注】 由于时常有本科学生来向笔者询问计算机图形学是做什么的,为了使得学生能够快速了解计算机图形学,有利于他们在选择研究生方向做出适合自己的选择,特撰写此文。本文仅仅为笔者对计算机图形学浅薄的理解,不...
  • 图形学复习

    千次阅读 2016-07-09 00:38:26
    图形
  • 图形系统总结

    2015-07-29 23:08:24
    什么是光栅? 目前,所有的现代图形系统都是基于光栅的。在这样的图形系统中,我们在输出设备上看到的图像是一个由图形系统产生的图形元素组成的阵列,图形元素叫做像素(pixel),像素阵列被称为光栅(raster)。...
  • 稳定性分析器53230A(2.0)是免费的Matlab程序,可让您使用频率测量来分析时钟,振荡器和其他信号源的稳定性。 该程序可以从 Agilent 53230A 通用计数器输入/上传频率测量值,也可以将测量值存储在 CSV 文件中。 该...
  • python图形界面开发用什么

    千次阅读 2019-11-13 02:22:53
    作为Python开发者,你迟早都会用到图形用户界面来开发应用。本文将推荐一些 Python GUI 框架,希望对你有所帮助。 Python 的 UI 开发工具包 Kivy Ki...
  • 反过来,这导致更好的稳定性。 Windows音频与Windows息息相关,以至于崩溃经常会破坏整个系统,而不仅仅是声音。 通过将数字信号处理(更可能发生崩溃的部分)隔离到单独的服务中,可以更好地控制崩溃。 This type of...
  • 计算机图形学复习1

    千次阅读 2020-08-17 20:32:32
    由于需要准备计算机图形学的考试,开始复习计算机图形学,这里将持续为大家带来图形学的基础内容更新和一些例题讲解。...计算机图形系统和计算机系统的差别在于计算机图形系统具有图形的输入和输出设备以

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 112,342
精华内容 44,936
关键字:

具有稳定性的图形是什么图形