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大部分:建模和渲染。
建模
你想画一个东西,首先要有它的几何模型,那么这个几何模型从什么地方来呢?下面的书很不错的,
Curves and Surfaces for CAGD: A Practical Guide. Gerald Farin 这本书就有一点的难度了,呵呵,要努力看啊。 它是 CAGD (计算机辅助几何设计)的经典图书,CAGD 方面的全貌,还有两本很好的讲述曲面的书 Bezier 和 Nurbs 的书:
The Nurbs Book, Les A. Piegl, Wayne Tiller 书里面有 NURBS 曲线、曲面的程序伪代码,很容易改成C的,书讲的通俗、易懂,但是你要有耐心看的:)
在你的几何模型做好之后,有一些问题需要对这个模型进一步处理,得到适合的模型,当面片很多的时候,或者模型很复杂的时候,需要对几何模型进行简化,才可以满足一些实时绘制的需要,这个技术叫做层次细节(LOD-Level of Detail)。下面的书就是讲这个的: Level of Detail for 3D Graphics. David Luebke
Volume Graphics. Min Chen 上面的2个图形学技术就和图象的界限不明显了,实际上他们是图形图象的综合。
关于实时渲染和 Shader 的书2
Essential Mathematics for Games and Interactive Applications, Jim Van Verth and Lars Bishop, ISBN 1-55860-863-X
GPU Gems, edited by Randima Fernando.
Collision Detection, by Gino van den Bergen (table of contents)
Game Physics, by Dave Eberly (companion web site)
ShaderX2: Introductions and Tutorials with DirectX 9, edited by Wolfgang F. Engel (table of contents)
ShaderX2: Shader Programming Tips and Tricks with DirectX 9, edited by Wolfgang F. Engel
Essential Mathematics for Games and Interactive Applications, by Jim Van Verth and Lars Bishop, Sept. 2003
Graphics Programming Methods, edited by Jeff Lander, July 2003
Real-Time 3D Terrain Engines Using C++ and DirectX 9 , by Greg Snook, June 2003 3D Computer Graphics: A Mathematical Introduction with OpenGL, by Samuel R. Buss, June 2003 (sample code, etc.)
Advanced 3D Game Programming with DirectX 9.0, by Peter Walsh and Adrian Perez, April 2003.
The Cg Tutorial: The Definitive Guide to Programmable Real-Time Graphics, by Randima Fernando and Mark J. Kilgard, February 2003 (Sample chapters and more, Gamasutra excerpt)
Game Programming Tricks of the Trade, by Lorenzo Phillips, Sept. 2002
Direct3D ShaderX: Vertex and Pixel Shader Tips and Tricks, by Wolfgang F. Engel (Table of Contents and more; Introduction; Samples 1 & 2),2002
The OpenGL Extensions Guide, by Eric Lengyel (table of contents and sample, in-depth table of contents)
3D Games, Volume 2: Animation and Advanced Real-Time Rendering, by Alan Watt and Fabio Policarpo (their Fly3D SDK is online), 2003
Game Programming Gems 3, edited by Dante Treglia and Mark DeLoura, 2002 (see the series web site for upcoming volumes)
Geometric Tools for Computer Graphics, by Philip Schneider and David Eberly, Sept. 2002 (companion web site)
Focus On 3D Terrain Programming, by Trent Polack, Dec. 2002 (comes with CD; Publisher's description)
Vector Game Math Processors, by James C. Leiterman, Dec. 2002.
3D Math Primer for Graphics and Game Development, by Fletcher Dunn and Ian Parberry, Dec. 2002. (more information at their site)
Fundamentals of Computer Graphics, by Peter Shirley, July 2002
Real-Time Shading, by Marc Olano et al., July 2002
Level of Detail for 3D Graphics, by David Luebke et al., July 2002 (companion web site)
Advanced 3D Game Development with OpenGL, by David Byttow and Ryan Parker, 2002 Real-Time Shader Programming, by Ron Fosner, Dec. 2002
Jim Blinn's Corner: Notation, Notation, Notation, by Jim Blinn, July 2002
Software Optimization Cookbook, by Richard Gerber, March 2002
Real Time Rendering Tricks and Techniques in DirectX, by Kelly Dempski, 2002
Texturing & Modeling: A Procedural Approach, 3rd Edition, by David Ebert et al., 2002 (companion web site)
Special Effects Game Programming with DirectX 8.0, by Mason McCuskey, 2002
Non-Photorealisting Computer Graphics, by Thomas Strothotte and Stefan Schlechtweg, June 2002 (companion web site)
Mathematics for 3D Game Programming & Computer Graphics, by Eric Lengyel, 2001
Game Programming Gems 2, edited by Mark DeLoura (Table of Contents and introduction), 2001
OpenGL Game Programming, by Kevin Hawkins and Dave Astle (source code), 2001
Subdivision Methods for Geometric Design: A Constructive Approach, by Joe Warren and Henrik Weimer, 2001 (companion web site and publisher's web site)
Non-Photorealistic Rendering, by Gooch and Gooch, 2001
Computer Animation: Algorithms and Techniques, by Richard Parent, 2001
Practical Algorithms for 3d Computer Graphics, by R. Stuart Ferguson, 2001
Game Programming Gems, edited by Mark DeLoura (Table of Contents and code updates), 2000
Game Engine Design: A Practical Approach to Real-Time Computer Graphics, by Dave Eberly (his code is online), 2000
3D Games, Volume 1: Real-time Rendering and Software Technology, by Alan Watt and Fabio Policarpo (their Fly3D SDK is online), 2000
3D Graphics Programming: Games and Beyond, by Sergei Savchenko, 2000
Computational Geometry: Algorithms and Applications, by deBerg, Van Kreveld, Overmars, and Schwarzkopf, 2000
Computer Graphics Using OpenGL by F.S. Hill, Jr., 2000 (Table of Contents and sample chapter)
3D Game Engine Design, by David Eberly, Jan. 2001 (companion web site)
Essential Mathematics for Computer Graphics Fast, by John Vince, Oct. 2001
Computer Graphics Through Key Mathematics, by Huw Jones, May 2001
Mathematics for Computer Graphics Applications, by Michael Mortenson, 1999
SIGGRAPH: 图形学研究人员的圣地
SIGGRAPH(the ACM—Association for Computer Machinery—Special InterestGroup on ComputerGraphics),国内学术界一般都简称为国际图形学年会,至今已有三十多年的历史了。它被公认为是全球计算机图形学研究领域最负盛名的会议,每年参加会议的人数超过4万人,入选的40-50篇论文是从300-400篇优秀论文中精选出来的。
Graphics Gems I ~ V 一大帮子人写的书,包括研究人员,程序员…,有计算机图形学的各种数据结构,编程技巧。
Tomas Akenine-Moller 等人编著的 Real-Time Rendering (2nd Edition) 许多最新的计算机图形学进展。
David Ebert 等人的 Texturing & Modeling: A Procedural Approach, Third Edition 讲述如何通过程序实现纹理、山、地形等图形学要素 。
F. Kenton Musgrave 号称分形狂(Fractal Mania),Ken Perlin 就是 Perlin 噪声的发明者,用过 3d 软件的人对 Perlin Noise 不会陌生的。
关于图形学的特定对象,有特定的专题图书: 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) ,这本圣经没事的时候再看吧,呵呵 从哪里找到这些书啊