白话说学计算机图形学.docx

上传人:b****9 文档编号:28961793 上传时间:2023-07-20 格式:DOCX 页数:7 大小:19.09KB
下载 相关 举报
白话说学计算机图形学.docx_第1页
第1页 / 共7页
白话说学计算机图形学.docx_第2页
第2页 / 共7页
白话说学计算机图形学.docx_第3页
第3页 / 共7页
白话说学计算机图形学.docx_第4页
第4页 / 共7页
白话说学计算机图形学.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

白话说学计算机图形学.docx

《白话说学计算机图形学.docx》由会员分享,可在线阅读,更多相关《白话说学计算机图形学.docx(7页珍藏版)》请在冰豆网上搜索。

白话说学计算机图形学.docx

白话说学计算机图形学

白话说学计算机图形学

[转载]一个图形爱好者的书架/白话说学计算机图形学-人生和程序...

一个很好的学习途径就是国外大学开的CG的课程,standford,unc,unm,waterloo等等,等等,一堆大学,都可以下到课件,以及相关的论文,standford的“realtimegraphicsarchitecture”可是kurtAkeley开的哦。

另外就是sourcecode,包括mesa,standford的glsim,还有人用csharp做的csgl等,也不少。

这些东西很值得细细研究,只是很花时间啊。

我也是才学这方面的,不过我觉得方法上面还是top-down的方法好些,对一些东西,有感性认识了,再钻下去会比较好。

【引言】

什么是计算机图形学?

本文尽量避免给它做严格的定义,但是通常来说,计算机图形学是数字图象处理的逆过程,这只是一个不确切的定义,后面我们会看到,实际上,计算机图形学、数字图象处理和计算机视觉在很多地方的区别不是非常清晰的,很多概念是相通的。

计算机图形学是用计算机来画东西的学科,数字图象处理是把外界获得的图象用计算机进行处理的学科。

在法国,图形图象是一门课程。

如何学习计算机图形学呢?

除了计算机图形学的基础知识以外,你还需要有以下的知识,你懂的越多,当然做的越好。

*英语,你一定要把英语学好,如果你想学习计算机图形学的话,尽量看英文的书籍和资料

*数学,计算机图形学里面的数学用的比较多,,我们可以列举一些常用的:

高等数学,数值分析,微分几何,拓扑,概率,插值理论,(偏)微分方程…

*物理,如果你要进行基于物理的建模,一些物理理论是要学习的:

力学(运动学,动力学,流体力学…),光学,有限元…

*编程语言:

C或C++是计算机图形学最通用的‘普通话’,

*数据结构:

你需要数据结构来描述你的图形对象,除了通用的链表、树等数据结构外,图形学还有自己特殊的数据结构

*其他类别:

有的时候你需要其他学科的知识,根据你的需要去学习吧

上面列举的不是你必须学习的东西,而是计算机图形学可能会用到的东西,一定要记住,不要指望通过一本教材就学会计算机图形学,它比你想象的要复杂的多。

[图形学的问题】

每个学科都有自己学科的特定问题,图形学要解决的是如何画出图来,得到需要的效果,当然这是图形学最大的一个问题。

在开始学习计算机图形学的时候,找一本简单的书看,对计算机图形学有个大概的认识,你就可以开始图形学之旅了:

OpenGLProgrammingGuide:

TheOfficialGuidetoLearningOpenGL,Version1.4,FourthEdition

OpenGLSuperBible(3rdEdition)

是比较好的学习计算机图形学的入门教材,在练中去学,一开始就去啃Foley的

ComputerGraphics:

PrinciplesandPractice,SecondEditioninC

不是好主意,会看的一头雾水,一本什么都讲的书的结果往往是什么都没讲清楚。

当你把OpenGL的基本内容掌握之后,你对图形学就有了大概的了解了。

那么下面你可以来学习一下计算机图形学的数据结构和算法,下面的书比较适合:

JosephO'Rourke的ComputationalGeometryinC,书里面有C的源代码,讲述简单,清晰,适合程序员学习。

总的来说,计算机图形学涉及到2大部分:

建模和渲染

(1)建模

你想画一个东西,首先要有它的几何模型,那么这个几何模型从什么地方来呢?

下面的书很不错的:

GeraldFarin的CurvesandSurfacesforCAGD:

APracticalGuide

这本书就有一点的难度了,呵呵,要努力看啊。

这本书算是CAGD(计算机辅助几何设计)的经典图书,CAGD方面的全貌,还有2本很好的讲述曲面的书Bezier和Nurbs的书

LesA.Piegl,WayneTiller的TheNurbsBook

书里面有NURBS曲线、曲面的程序伪代码,很容易改成C的,书讲的通俗、易懂,但是你要有耐心看的:

《曲线与曲面的数学》

这本书是法国人写的中文翻译版,里面还有Bezie本人写的序J,翻译的很不错的,看了你就掌握Bezier曲面技术了。

还有其他的一些造型技术,比如:

隐式曲面(ImplicitSurface)的造型:

就是用函数形式为F(x,y,z)=0的曲面进行造型,这样的造型技术适合描述动物器官一样的肉乎乎的东西,有2本书推荐大家:

JulesBloomenthal编辑的IntroductiontoImplicitSurfaces,是一本专著,讲述了ImplicitSurface建模型(Modeling),面片化(Polygonization),渲染(Rendering)的问题。

LuizVelho的ImplicitObjectsComputerGraphics也是一本专著,讲述更新的一些进展。

细分曲面(SubdivisionSurface)造型

当用NURBS做造型的时候,曲面拼接是复杂的问题,在动画的时候,可能产生撕裂或者褶皱,SubdivisionSurface用来解决这个问题。

JoeWarren的SubdivisionMethodsforGeometricDesign:

AConstructiveApproach就是这方面的专著。

从实际物体中得到造型,现在的技术可以用三维扫描仪得到物体表面的点,然后根据这些点把物体的表面计算出来,称为重建(Reconstruction),因为这些技术之在文章中论述,所以我们省略对它的描述。

在你的几何模型做好之后,有一些问题需要对这个模型进一步处理,得到适合的模型,当面片很多的时候,或者模型很复杂的时候,需要对几何模型进行简化,才可以满足一些实时绘制的需要,这个技术叫做层次细节(LOD-LevelofDetail)。

下面的书就是讲这个的:

DavidLuebke编著的LevelofDetailfor3DGraphics

(2)渲染

有了模型,怎么把这个几何模型画出来呢?

这个步骤就是渲染。

如果你看了上面的OpenGL的书,那么你就知道一些渲染的知识了,但是别高兴的太早,OpenGL使用的是局部光照模型(LocalIlluminationModel)。

LocalilluminationModel指的是在做渲染的时候只考虑光源和物体之间的相互作用,不考虑物体和物体之间的影响,所以OpenGL不支持阴影,一个(半)透明物体的效果,这些需要考虑物体之间的影响才可以实现。

(*OpenGL本身不支持,但是通过一些方法可以实现的,用Google搜索一下

ShadowVolume,OpenGL就找到答案。

GlobalIlluminationModel这类模型考虑的就比较全。

现在关于GlobalIllumination的技术有3大类,具体的技术就不在这里介绍了。

光线追踪(RayTracing)

关于RayTracing的好书有2本:

AndrewGlassner的AnIntroductiontoRaytracing

Glasser是图形界的名人,这本书也是RayTracing的经典

R.KeithMorley,PeterShirley的RealisticRayTracing,SecondEdition

这本书第一版是伪代码,第二版是C代码。

它的结构不是很清楚,虎头蛇尾的感觉。

辐射度(Radiosity)

关于Radiosity的好书有4本:

MichaelCohen的RadiosityandRealisticImageSynthesis,Cohen获得SIGGRAPH1998计算机图形学成就奖,他把Radiosity变成实际可用。

FrancoisX.Sillion的RadiosityandGlobalIllumination,Sillion是法国人,他的主要研究方向是Radiosity,这本书写的很不错的,非常清晰。

PhilipDutre的新书AdvancedGlobalIllumination,看起来还不错,刚拿到手,还没看,呵呵,所以不好评价。

IanAshdown的Radiosity:

AProgrammer'sPerspective

有源代码的书啊!

Photonmapping

这个我也不知道怎么翻译,呵呵。

这个技术出现的比较晚,一本好书!

HenrikWannJensen的RealisticImageSynthesisUsingPhotonMapping

HenrikWannJensen是Photonmapping技术的发明者

【非真实性图形学】(Non-PhotorealisticGraphics)

真实性不是计算机图形学的唯一要求,比如:

你给我画一个卡通效果的图出来,或者我要用计算机画水彩画怎么办?

或者:

把图象用文字拼出来怎么做?

,解决这些问题要用到非真实性图形学,好书继续推荐!

BruceGooch,AmyAshurstGooch的Non-PhotorealisticRendering

【体图形学】(VolumeGraphics)

用CT机做很多切片(比如头骨),那么能通过这些切片得到3D的头骨吗?

VolumeGraphics就是解决这样的问题的

MinChen编著的VolumeGraphics

上面的2个图形学技术就和图象的界限不明显了,实际上他们是图形图象的综合。

【其他的书】

还有一些好书啊,呵呵,好书看不完的,继续放送:

GraphicsGemsI~V,一大帮子人写的书,包括研究人员,程序员…有计算机图形学的各种数据结构,编程技巧。

TomasAkenine-Moller等人编著的Real-TimeRendering(2ndEdition)

许多最新的计算机图形学进展。

DavidEbert等人的Texturing&Modeling:

AProceduralApproach,ThirdEdition

讲述如何通过程序实现纹理、山、地形等图形学要素。

关于图形学的特定对象,有特定的专题图书,

EvanPiphoFocusOn3DModels,对于图形学的常用模型格式,进行了讲解

TrentPolack的FocusOn3DTerrainProgramming,讲地形的

DonaldH.House的ClothModelingandAnimation,讲布料的

NikLever的Real-time3DCharacterAnimationwithVisualC++,讲角色动画的

RichardParent的ComputerAnimation:

AlgorithmsandTechniques,当然是讲动画的啦,呵呵。

DavidH.Eberly的3DGameEngineDesign:

APracticalApproachtoReal-TimeComputerGraphics,有代码的啊!

呵呵:

最后,没事情的时候,看看下面的书吧

AlanH.Watt,3DComputerGraphics(3rdEdition)

JamesD.Foley等人的ComputerGraphics:

PrinciplesandPracticeinC(2ndEdition),这本圣经没事的时候再看吧,呵呵。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1