目前国外流行的都是3D游戏(如半条命2),开发该类游戏的重要基础之一就是计算机图形学,而且是real-time rendering(实时绘制).因此游戏程序开发与一般程序设计不同,有一定的门槛,不象写信息管理系统程序,无论谁学几句SQL语句,便能操刀上阵了.
我不知道大家有没有深入地研究过计算机图形学. 要真正理解计算机图形学,必须灵活地运用高等数学,线性代数,计算数学等知识,还要有较好的英语(因为资料大部分是英文的), 当然还要学习大量的图形学算法。(很多算法并不是一成不变的,在真正实现时有很多的技巧). 所以我说搞计算机图形学,要求的门槛较高,要求理论与实践并举。
要开发3D游戏,首先要学习计算机图形学,但由于各种原因,国内现有的计算机图形学书籍都比较初级,没有深入的.而且都是比较传统的.2000年左右,随着显卡技术(GPU)的革命性突破,实时绘制大行其道,国外这方面的书籍很多,可在中国却看不到,我国没有把外版书直接放在书店卖的传统(怕太贵卖不掉,一本书要五百人民币左右);要等翻译吧,国内一年在这方面也翻译不了几本,而且等到翻译出来了,有些技术也成昨日黄花了,再说翻译的水准也不行(估计翻译的人员自己也不太懂);等影印版吧,便宜,可国外出版社哪肯把能卖大价钱的畅销书贱卖给我国.
国内学术界的杂志关于计算机图形学的文章很少,不象国外有很本多专门的计算机图形学杂志,而且高水平的很少.于是国内这方面的印刷资料基本上没有.国内也有些人编过3D的编程书籍,但太小儿科,这样的书没什么帮助.
大家都看过水世界,泰坦尼克号,我们都为电影中那些以假乱真的电影特技深深地折服.那些计算机生成的高度真实感的海洋让人看不出破绽.国外的计算机图形学研究和实际的应用贴得很近,电影特效、动画中所用到的都是最新的研究成果。反观国内,学术界和CG界就像是两个陌生人一样。从无来往,也从不关心对方的存在。
而且还有一个奇怪的现象,学术杂志,书籍很少提到那些国际上知名的图形学研究专家,新的技术,在非技术性的CG杂志上却有介绍,在CG杂志上有不少图片来自于SIGGRAPH(世界图形学年会).再看看国内学术界编的那些图形学教材,在"正文"里根本不提到SIGGRAPH这几个字.为什么有这种现象???
常看英文文献的网友,会去国外下载高水平论文(如SIGGRPAH),但由于这些论文都需要一定的背景知识,否则很难看懂.这些背景知识散见于以前的论文和书籍.前面说过图形学外文书籍国内是不容易找到的,有些论文在网上只有会员才能下,一般人只能看个摘要.当然还有一个途径,花钱还是能买到的,贵啊.(国内的一些大图书馆有这项服务)
所以,在国内一个业余爱好者研究计算机图形学的环境很差, 由于资料的限制,学习中充满着艰辛. 对于一些深入的课题,比如说绘制具有高度真实感的水流,海洋,高山,火焰,烟雾,布料,没有相关的系统性资料. 有一些图形学中相当经典的图书,论文,作业余爱好者,是看不到的. 由于3D知识不普及,周围很少有人与你有同样的兴趣. 说到3D,就知道3DMAX,MAYA,很少有人去想一想这背后的图形学原理.永远只能跟在外国人之后亦步亦趋.有些网友虽然会依葫芦画瓢写VERTEX SHADER,PIXEL SHADER来达到特殊的效果,但对于这些程序背后的原理却一点儿不清楚,direct3D下有很多例子,能理解的人又有几个,HDRI,Subsurface Scattering,PRT这些术语背后后技术更是很少有人涉及.可能有人会说,既然你想学,可以直接去AMAZON买原版书啊.可是一个人处于学习能力最旺盛时候,往往是在学生时代,但那个时候也是最缺钱的时候,一本原版书需要五六百…
由此造成国内民间对计算机图形学的认识很肤浅,没有普及,大部分计算机专业的学生都不太懂,运动员都是从群众中选拔出来的,群众体质较差,运动员也好不到哪儿去.可想而知专业的3D游戏程序设计水平会高吗?--- 空中楼阁.
而国外不一样,一个业余爱好者占有的资料会比大学教授都多,水平也就更高.(看看国外那些个3d引擎)国内大部分的游戏开发论坛都没有实质性内容,很肤浅.
所以希望出版社或相关部门能意识到这个问题,出版社最好能直接引进高水平,有深度的计算机图形学图书(不要老是VC,VB,JAVA),语言是工具,只有运用到各个专门领域才能发挥更大的作用.
这些都是高水平的real-time rendering书籍,看看国外有这么多,那儿的业余爱好者多幸福.这些书国内基本上没有,国内的业余爱好者有多悲惨.(其中部分书籍有英文电子版,但一些经典的好书往往没有电子版)
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 (table of contents) note that this is a separate volume from the previous book
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
国内无书可读的环境一日不改变,说什么提高中国游戏开发水平都是空谈.
中国人很聪明,为什么在学术上一直落后?一个很重要的原因是,一个人大学本科毕业,研究生期间,教师便没有更多的东西教给他了,他即使想自学,图书馆里也没有什么新的,深入的图书可供阅读.而国外就不同,研究生期间,有大量令人兴奋的知识在等着他来学.
No one knows,and each person can have a significant effect on the way the future turns out.There is no one future,no course that must occur.You create it.
摘自
You create it.我很欣赏这句话.
国内的学者,是吝啬这句话的,好象学术只是大学里的专利.
最后我还是以You create it.来结尾.