[转载]一个图形爱好者的书架/白话说学计算机图形学
1.一个图形爱好者的书架
原文地址:http://blog.csdn.net/nhsoft/archive/2004/06/23/22992.aspx
早几天看到有人把自己在大学四年的书列了出来.招来一顿怀疑.我是开发图形程序的.我现在也把我的书列出来.不怕大家怀疑吧.希望能有点启示作用.
绿色的是我看完了的。红色的是没怎么看的。黄色的是看了一半以上的。
语言类:
C++ Programming Language (Special Edition).C++的圣经级别的书.我只看原文的。不看翻译的.对球教授的翻译表示一定的保留意见.
Effictive/More Effictive C++.工程实践的最佳经验书籍.
Inside C++ Object Model .好书.看完了。你对C++的理解会变的很深刻的。
设计模式 .好书.买了看就是了。别问我为什么啊。
More Excpetion C++ 和Effective C++有同工之处.
STL 源代码破析。正在看的过程中。
STL 中文版 一本参考手册。
Moden C++ Design 看完了这本书。我估计会吐血。但是还是要看。经典啊,书的例子Loki的代码
潭浩强的C程序设计。经典。C教材里这本最好。不许大家B4他。
C++Template : 有人说翻译的不好。我觉得还可以.
Python 语言入门。我拿来做游戏脚本用的。
Unix Shell编程。
算法和基础类。
程序设计实践 给你一个很好的经验.很薄的,去买来看看。
C++分形程序设计。当年给一个JJ做毕业设计。花了半个月看完的。
数据结构(C++语言描述)影印版。好书,但是没看完。教材来着的。
数据结构(用面向对象方法与C++描述)。清华出的。看完了。
人工智能 Nilson的书。看不懂。呵呵。
开发工具和平台的书
Unix 环境高级编程 : 学Unix编程.就从这里开始吧.现在在看X-Window编程.可惜没有介绍XLib的书.因为要用OpenGL.最好还是从XLib开始.痛苦.只能看Xlib.pdf
Unix 高级编程 : 我真不相信我能检到这么一本好书.想买.但是没钱.呵呵。
VC++技术内幕,翻译的好烂啊。不过当时我不知道。最后还是看完了。
Windows下的C语言编程。我的 Win32入门书籍。
Win32程序员指南,我的Win32提高书籍。10块一本。呵呵。
Windows 核心编程。看完了这个。大家说我是个高手了。
深入浅出MFC. 看了一半后,我自己去看MFC的代码了.
ATL 开发人员指南 没怎么看.很实用的样子.
COM 本质论 .看完了大长见识,我就是看了他后,才知道接口的概念的.
ATL 本质论 ,看了后让我模板水平有不少提高.
Linux内核编程 没什么好说的。
X86的体系结构和汇编:忘记了具体名字了。大概是这个名字.我的汇编知识都是从这里来的。只看了前面的部分
汇编语言程序设计: 钱晓捷主编.有介绍SSE和MMX的。很不错哦。 也很便宜
应用程序调试技巧: 很经典的调试书.Numega公司的工程师写的.(出品SoftICE的那个公司).有些技巧只能用神奇来形容.
专业的图形书
图形开发人员指南 著名的黑皮书.我是怀着崇拜的心情收藏这本书的。John Carmack做的序.Micheal Abrash的书.偶像啊。
计算机图形学 (清华大学)。烂书。不过也差不多看完了。现在在一个 MM手里。
图形学(电子工业出版社)老外的书。不错。正在看。
计算机图形学算法基础:经典。没看完。看了1/3了。翻了一遍。
计算机真实感图形的算法基础。国内最好的图形学的书。刚拿到。正在看。
非真实感计算机图形学: 刚买到的.不是太有用。太学术了。
游戏编程精粹 1/2/3. 中文版。偶尔翻一两篇不错的。不过我要对着英文的看才看的懂。
OpenGL Red Book .中文版还可以.非读不可.
OpenGL 超级宝典 比较好.很实用,对初学者很好.
3D Games Vol1 . 就是介绍Fly 3D 的书。看了一半了。很不错。
Real-Time Rendering 1. 正在看。很好的书
Real-Time Rendering 2: 中文版和英文版都有:
CG 教程: 推荐你学好图形学后再来看.
OpenGL Shading Languge : 看了前面的大半了。
GPU Gems : 刚买到的.花了我350大元.不过好看.
3D Math Primer For Computer Graphics and 3D Games. 数学书里就这本好一点了。
3D Game Engine Design 正在看。对着书写自己的物理引擎。
ShaderX 2 Tricks . 没看。刚拿到。经典到不用介绍的程度了。
还有其他打印的资料无数 :-)
其他的看似没有用,其实最有用的书.
微积分: 高等教育出版社.
数学分析:上下册.
理论力学: 上下册
傅立叶变换与小波分析: 没看明白
大学物理: 1-3 册.
空气动力学: 我的老本行.(偶学航空发动机滴)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2.白话说学计算机图形学
一个很好的学习途径就是国外大学开的CG的课程,standford,unc,unm,waterloo等等,等等,一堆大学,都可以下到课件,以及相关的论文,standford的“real time graphics architecture”可是kurt Akeley开的哦。
另外就是source code,包括mesa,standford的glsim,还有人用c sharp做的csgl等,也不少。这些东西很值得细细研究,只是很花时间啊。
我也是才学这方面的,不过我觉得方法上面还是top-down的方法好些,对一些东西,有感性认识了,再钻下去会比较好。
【引言】
什么是计算机图形学? 本文尽量避免给它做严格的定义,但是通常来说,计算机图形学是数字图象处理的逆过程,这只是一个不确切的定义,后面我们会看到,实际上,计算机图形学、数字图象处理和计算机视觉在很多地方的区别不是非常清晰的,很多概念是相通的。
计算机图形学是用计算机来画东西的学科,数字图象处理是把外界获得的图象用计算机进行处理的学科。在法国,图形图象是一门课程。
如何学习计算机图形学呢?除了计算机图形学的基础知识以外,你还需要有以下的知识,你懂的越多,当然做的越好。
* 英语, 你一定要把英语学好,如果你想学习计算机图形学的话,尽量看英文的书籍和资料
* 数学, 计算机图形学里面的数学用的比较多,,我们可以列举一些常用的:
高等数学,数值分析,微分几何,拓扑,概率, 插值理论,(偏)微分方程…
* 物理, 如果你要进行基于物理的建模,一些物理理论是要学习的:
力学(运动学,动力学,流体力学…),光学,有限元…
* 编程语言: C或C++是计算机图形学最通用的‘普通话’,
* 数据结构: 你需要数据结构来描述你的图形对象,除了通用的链表、树等数据结构外,图形学还有自己特殊的数据结构
* 其他类别: 有的时候你需要其他学科的知识,根据你的需要去学习吧
上面列举的不是你必须学习的东西,而是计算机图形学可能会用到的东西,一定要记住,不要指望通过一本教材就学会计算机图形学,它比你想象的要复杂的多。
【图形学的问题】
每个学科都有自己学科的特定问题,图形学要解决的是如何画出图来,得到需要的效果,当然这是图形学最大的一个问题。
在开始学习计算机图形学的时候,找一本简单的书看,对计算机图形学有个大概的认识,你就可以开始图形学之旅了:
OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 1.4, Fourth Edition
OpenGL SuperBible (3rd Edition)
是比较好的学习计算机图形学的入门教材,在练中去学,一开始就去啃Foley的
Computer Graphics: Principles and Practice, Second Edition in C
不是好主意,会看的一头雾水,一本什么都讲的书的结果往往是什么都没讲清楚。
当你把OpenGL的基本内容掌握之后,你对图形学就有了大概的了解了。
那么下面你可以来学习一下计算机图形学的数据结构和算法,下面的书比较适合:
Joseph O'Rourke 的Computational Geometry in C,书里面有C的源代码,讲述简单,清晰,适合程序员学习。
总的来说,计算机图形学涉及到2大部分:建模和渲染
(1)建模
你想画一个东西,首先要有它的几何模型,那么这个几何模型从什么地方来呢?下面的书很不错的:
Gerald Farin 的Curves and Surfaces for CAGD: A Practical Guide
这本书就有一点的难度了,呵呵,要努力看啊。这本书算是CAGD (计算机辅助几何设计)的经典图书,CAGD方面的全貌,还有2本很好的讲述曲面的书Bezier和Nurbs的书
Les A. Piegl, Wayne Tiller 的The Nurbs Book
书里面有NURBS曲线、曲面的程序伪代码,很容易改成C的,书讲的通俗、易懂,但是你要有耐心看的:)
《曲线与曲面的数学》
这本书是法国人写的中文翻译版,里面还有Bezie本人写的序J,翻译的很不错的,看了你就掌握Bezier曲面技术了。
还有其他的一些造型技术,比如:
隐式曲面(Implicit Surface)的造型:
就是用函数形式为F( x ,y ,z ) = 0的曲面进行造型,这样的造型技术适合描述动物器官一样的肉乎乎的东西,有2本书推荐大家:
Jules Bloomenthal编辑的Introduction to Implicit Surfaces,是一本专著,讲述了Implicit Surface建模型(Modeling),面片化(Polygonization),渲染(Rendering)的问题。
Luiz Velho 的 Implicit Objects Computer Graphics 也是一本专著,讲述更新的一些进展。
细分曲面(Subdivision Surface)造型
当用NURBS做造型的时候,曲面拼接是复杂的问题,在动画的时候,可能产生撕裂或者褶皱,Subdivision Surface用来解决这个问题。
Joe Warren的Subdivision Methods for Geometric Design: A Constructive Approach就是这方面的专著。
从实际物体中得到造型,现在的技术可以用三维扫描仪得到物体表面的点,然后根据这些点把物体的表面计算出来,称为重建(Reconstruction),因为这些技术之在文章中论述,所以我们省略对它的描述。
在你的几何模型做好之后,有一些问题需要对这个模型进一步处理,得到适合的模型,当面片很多的时候,或者模型很复杂的时候,需要对几何模型进行简化,才可以满足一些实时绘制的需要,这个技术叫做层次细节(LOD-Level of Detail)。下面的书就是讲这个的:
David Luebke编著的 Level of Detail for 3D Graphics
(2)渲染
有了模型,怎么把这个几何模型画出来呢?这个步骤就是渲染。
如果你看了上面的OpenGL的书,那么你就知道一些渲染的知识了,但是别高兴的太早,OpenGL使用的是局部光照模型(Local Illumination Model)。Local illumination Model指的是在做渲染的时候只考虑光源和物体之间的相互作用,不考虑物体和物体之间的影响,所以OpenGL不支持阴影,一个(半)透明物体的效果,这些需要考虑物体之间的影响才可以实现。
(*OpenGL本身不支持,但是通过一些方法可以实现的,用Google搜索一下
Shadow Volume, OpenGL就找到答案。)
Global Illumination Model 这类模型考虑的就比较全。现在关于Global Illumination的技术有3大类,具体的技术就不在这里介绍了。
光线追踪(Ray Tracing)
关于Ray Tracing的好书有2本:
Andrew Glassner 的An Introduction to Ray tracing
Glasser是图形界的名人,这本书也是Ray Tracing的经典
R. Keith Morley, Peter Shirley 的Realistic Ray Tracing, Second Edition
这本书第一版是伪代码,第二版是C代码。它的结构不是很清楚,虎头蛇尾的感觉。
辐射度(Radiosity)
关于Radiosity的好书有4本:
Michael Cohen 的Radiosity and Realistic Image Synthesis , Cohen获得SIGGRAPH 1998计算机图形学成就奖,他把Radiosity变成实际可用。
Francois X. Sillion的Radiosity and Global Illumination , Sillion是法国人,他的主要研究方向是Radiosity,这本书写的很不错的,非常清晰。
Philip Dutre 的新书Advanced Global Illumination ,看起来还不错,刚拿到手,还没看,呵呵,所以不好评价。
Ian Ashdown的Radiosity: A Programmer's Perspective
有源代码的书啊!
Photon mapping
这个我也不知道怎么翻译,呵呵。这个技术出现的比较晚,一本好书!
Henrik Wann Jensen的Realistic Image Synthesis Using Photon Mapping
Henrik Wann Jensen是Photon mapping技术的发明者
【非真实性图形学】(Non-Photorealistic Graphics)
真实性不是计算机图形学的唯一要求,比如:你给我画一个卡通效果的图出来,或者我要用计算机画水彩画怎么办?或者:把图象用文字拼出来怎么做?,解决这些问题要用到非真实性图形学, 好书继续推荐!
Bruce Gooch, Amy Ashurst Gooch的 Non-Photorealistic Rendering
【体图形学】(Volume Graphics)
用CT机做很多切片(比如头骨),那么能通过这些切片得到3D的头骨吗?Volume Graphics就是解决这样的问题的
Min Chen 编著的Volume Graphics
上面的2个图形学技术就和图象的界限不明显了,实际上他们是图形图象的综合。
【其他的书】
还有一些好书啊,呵呵,好书看不完的,继续放送:
Graphics Gems I ~ V,一大帮子人写的书,包括研究人员,程序员…有计算机图形学的各种数据结构,编程技巧。
Tomas Akenine-Moller 等人编著的Real-Time Rendering (2nd Edition)
许多最新的计算机图形学进展。
David Ebert等人的Texturing & Modeling: A Procedural Approach, Third Edition
讲述如何通过程序实现纹理、山、地形等图形学要素。
关于图形学的特定对象,有特定的专题图书,
Evan Pipho Focus On 3D Models,对于图形学的常用模型格式,进行了讲解
Trent Polack的 Focus On 3D Terrain Programming ,讲地形的
Donald H. House 的Cloth Modeling and Animation ,讲布料的
Nik Lever的Real-time 3D Character Animation with Visual C++ ,讲角色动画的
Richard Parent的 Computer Animation: Algorithms and Techniques,当然是讲动画的啦,呵呵。
David H. Eberly的3D Game Engine Design : A Practical Approach to Real-Time Computer Graphics ,有代码的啊!呵呵:)
最后,没事情的时候,看看下面的书吧
Alan H. Watt, 3D Computer Graphics (3rd Edition)
James D. Foley等人的 Computer Graphics: Principles and Practice in C (2nd Edition) ,这本圣经没事的时候再看吧,呵呵。
转载于:https://www.cnblogs.com/lancidie/archive/2010/12/12/1903611.html
[转载]一个图形爱好者的书架/白话说学计算机图形学相关推荐
- 转----一个图形爱好者的书架.-也来介绍一下我的藏书.
一个图形爱好者的书架.-也来介绍一下我的藏书. 早几天看到有人把自己在大学四年的书列了出来.招来一顿怀疑.我是开发图形程序的.我现在也把我的书列出来.不怕大家怀疑吧.希望能有点启示作用. 绿色的是我看 ...
- 一个图形爱好者的书架
http://www.360doc.com/content/05/1027/13/2198_24643.shtml 一个图形爱好者的书架.-也来介绍一下我的藏书. 早几天看到有人把自己在大学四年的书列 ...
- 湖北经济学院的计算机是否强,graphics-ch11-真实感图形绘制_湖北经济学院:计算机图形学_ppt_大学课件预览_高等教育资讯网...
第十一章 真实感图形技术 1,简单光照明模型 2,多边形绘制方法 3,透明 4,整体观照明模型 5,光线跟踪算法 第十章 真实感图形绘制 光照模型 (Illumination Model):计算某 一 ...
- 计算机图形学三维变换论文,计算机图形学 第5章 三维图形生成和变换技术
计算机图形学 第5章 三维图形生成和变换技术 (63页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 第五章 目录第五章 三维图形生成和变 ...
- [转载]一个游戏程序员的学习资料
想起写这篇文章是在看侯杰先生的<深入浅出MFC>时,突然觉得自己在大学这几年关于游戏编程方面还算是有些心得,因此写出这篇小文,介绍我眼中的游戏程序员的书单与源代码参考.一则是作为自己今后两 ...
- 【转载】软件爱好者必备的优秀软件网站分享收藏
[转载]软件爱好者必备的优秀软件网站分享 前言 作为一名软件爱好者,总是忍不住去搜集体验一些新奇好用的软件,浏览过程中也发现了各式各样的软件资源相关网站,下面是我收藏的一些软件网站,分享给大家. 软件 ...
- 转载 一个游戏程序员的学习资料
转载]一个游戏程序员的学习资料 2008-05-15 20:31 日志原文:http://xoyojank.blog.sohu.com/83788512.html 想起写这篇文章是在看侯杰先生的< ...
- vb计算机图形学绘制钻石图案,Visual Basic 图形及图像处理 - 关于VB的经验之谈 - VB爱好者乐园(VBGood) - 关于VB的经验,电子教程,代码,控件,论坛,博客,微博等....
计算机图形学是计算机应用的一个重要方面,很多人固执的认为Visual C++是处理图形的首选工具,但实际上Visual Basic在图形显示,Flash图像处理上有其独到之处. API实现完美的图片出 ...
- 【转载】图形找规律类题目
文章目录 一.图形规律技巧 1. 对称 2. 去异存同.异或 3. 图形内元素的数量规律 4. 旋转 5. 笔画.边数规律 6. 交点 7. 图形边的形状 二.文字类 参考链接 一.图形规律技巧 1. ...
最新文章
- sqlite3数据的使用(xcode 7,ios9)
- 论文大盘点|卷积神经网络必读的100篇经典论文,包含检测/识别/分类/分割多个领域...
- 摩托罗拉SE4500 德州仪器TI Omap37xx/AM3715/DM3730/AM3530 wince6.0/Windows Mobile 6.5平台 二维软解调试记录及相关解释
- caffe loss
- php中target用法,Yii使用DbTarget实现日志功能的示例代码
- 微軟 ASP.NET 2.0 的 AJAX 利劍 ~ Atlas Framework
- excel中的vlookup函数
- python为什么这么火知乎_没想到 Google 排名第一的编程语言,为什么会这么火?...
- 编译安装 apache 2.4.6
- 因“智”而治,数据库自动驾驶时代大门即将开启!
- android opengl es 雾化效果实例
- powershell 设置代理_WSL2中使用proxychains ng代理加速
- 提示找不到msvcr71.dll怎么办
- 你真的会php,你真的会PHP吗?
- Java——泛型(最易懂的方式讲解泛型)
- 前端加载shapefile数据
- 【转自人人】本科生如何发表论文
- 任务栏-IDEA图标变白色
- LC-3指令集 指令/状态码介绍
- 微信授权登陆【yixiyun】
热门文章
- 数据结构上机实践第九周项目3 - 利用二叉树遍历思想解决问题
- 相机标定(四)—— 仿射变换和透视变换
- 正则化regularization
- 广义矩估计的一般步骤_【基本无害】动态理性预期理论与广义矩估计02
- python2打印字符串_Python 3基础教程2-打印语句和字符串
- java simpleentry_使用Java流生成对象
- 文本文件 java_Java入门:读写文本文件
- Python-Matplotlib可视化(4)——添加注释让统计图通俗易懂
- kotlin枚举_Kotlin枚举班
- linux命令 chmod_Linux chmod命令示例