一些书

    《3D游戏编程大师技巧》是一本好书,宏篇巨著。所有的核心原理都掰得很碎。从理论证明到代码实现全部细致周详。而且有中文版。英文是《trick of 3d game programming gurus - advanced 3d graphics and resterization》。内容涵盖广泛。在900多页想把游戏编程,高级计算机图形学,光栅化原理和实现,线性代数与解析几何都讲清楚,野心非凡。当时邮电出版社要我翻译时,由于精力有限,这本书的厚度和广度让人望而却步。所以选了GPU GEMS来翻译。当时GPU的发展正在如火如荼,3D硬件从简单的光栅化处理器发展为可编程的专用处理器。但这本书则专门介绍3D的软件实现。和当时的趋势有些背道而驰。不过现在翻了下。感到在使用D3D GL API做硬件3D绘图之前,把光栅化所有原理和背后理论体系都搞清楚,将会使学习和开发进度成倍。涉及高级shader的技术也会进展迅速。
    大学本科的计算机图形学是门初级入门课程。只能概要的建立一个知识框架。在应用技术方面,想在图形技术领域有所收获,要往里填补的理论知识很多。读过这本书,比较强的感受是如果从一开始建立比较牢固的理论体系,之后的技术研发速度会很快。实时三维图形学只是一个旁支。图形学理论知识体系对它非常重要。
   想要更好的利用不断发展的GPU,对GPU工作原理,光栅化过程,背后的数学知识,都有深入了解的必要。这几年工作中,体会加深。
   最近偶然翻到《数值分析》对常微分方程的数值解法,这是物理引擎的积分求解理论基础。大学都教授的这门课程忘差不多了。这是在看siggraph创立physics based modeling的paper时感到吃力的原因。用GPU在shader里使用欧拉积分做布料,也是一种很简化的数值计算方法。在书店找到几本计算几何学。是物理引擎碰撞部分的理论基础。另外物理引擎涉及到的一块是理论力学的刚体动力学部分。具体计算还要使用LCP(线性互补问题)的解法。涉及到软体的物理模拟情况就更复杂一些。感觉短时间是不太容易都找补全。
用一用商业的AGEIA物理引擎可能只需要高中的数学勉强就够了。不过真要做一套,没有一些数学底子还是很困难的一件事。传闻盛大的疯狂赛车根本没用物理。当然,当初的玛利奥赛车也不用。所以说游戏制作是个很玄妙的事。。。和技术似有关似无关。。。。。。
 《3D游戏编程大师技巧》的作者是个非常专业的技术人员。并且在介绍技术时,对重要的原理和公式都有推导和论证的过程。这样的作法在技术应用书籍里其实很少。多数初等技术书籍都在讲述一个API有几个参数每个参数什么意思。这本书实际在用CPU实现一个简化GPU。作者一看就是对3D RENDERING和游戏编程每个细节都有大量实践。所以从理论知识到技术实现细节,包括优化,讲解很通透。做为大学游戏专业的教材是最适合不过。

 在查阅书中用到的数学公式时,发现另外一个堪比《REALTIME RENDERING》的经典书籍:《Mathematics.for.3D.Game.Programming.and.Computer.Graphics》。这本书比《3D ENGINE DESIGN》要平易近人得多。本着实用的角度,用浅显易懂的描述语言对游戏和计算机图形学用到的数学知识一一进行讲解和证明。比起另外一本经典著作《3D ENGINE DESIGN》,其作者是个博士,全书都用教科书般精确简练的数学语言描述3D引擎理论体系,对没有受过专门数学训练的人读起来都是颇为吃力。《MATH FOR 3D GAME AND CG》则是从实际工程技术角度出发,用高中数学课本形式的语言详细介绍了3D图形编程中所用到的数学知识,同时还保持了广度和深度。同样类型的书籍还有《PHYSICS BASED RENDERING》和《PHYSICS BASED ANIMATION》。当然知识体系更深入。

 在看全局光照时,PRT着实让数学不好的人头大。手头必须常备微积分,微分方程,概率学,傅里叶变换等一些书籍。残缺不全的知识体系很挠头。这是任凭多少技术实践也无法倒推补全的。中间发现一套非常好的微积分教程。俄国菲赫金哥尔茨的《微积分学教程》全3卷。我感觉大学要是用这个当教材我现在的日子还能过得稍微舒服一点点。

原文地址:https://www.cnblogs.com/puzzy3d/p/1231528.html