笔者从事IT行业15年,一直奋斗在一线编程。 他从一个普通的程序员逐渐成长为上市公司的技术总监。 目前在一家初创公司担任技术合伙人,主要负责公司整个项目团队的技术管理。 很多同学在网上或者论坛上问我如何学习3D游戏编程。 他们大多是刚刚进入游戏行业,也有从2D程序转为3D程序的开发者。 在这里我把自己学习3D游戏开发积累的心得分享给各位读者。 学习3D游戏开发我分为五个阶段:
第一阶段是学习3D相关的基础知识。 首先,你必须学习一门编程语言。 这是一个必要条件。 游戏开发中使用最多的是C++编程。 3D引擎开发使用的图形库一般是OpenGL或者DirectX。 其中OpenGL可以跨平台使用,应用最为广泛。 DirectX由微软开发,主要面向PC端。 图形库的主要功能是渲染材质材料,所以还需要掌握一门Shader编程语言,主要是CG和HLSL,3D编程会涉及到很多向量运算和矩阵运算。 在你真正学习3D游戏开发之前,你需要熟练掌握这些3D角色,这将为你以后的技术提升打下坚实的基础。 将结构图展示给读者如下:
第二阶段是学习3D游戏开发的基本流程。 换句话说,将 3D 模型渲染到屏幕上需要经过多少个步骤? 这就是我们常说的固定流水线和可编程流水线。 固定管道是最基本的。 可编程流水线主要是将固定流水线中的一些操作放到GPU中执行。 fixed pipeline包含的知识点如下:
第三阶段是真正涉及游戏编程开发。 这里我们将其分解为多个知识点,开发者必须分别掌握。 需要掌握的知识点如下图所示:
第四阶段告诉读者如何自己封装一个弱引擎。 笔者利用业余时间封装了数款3D游戏引擎。 为此,他写了一本专门介绍引擎封装的书。 对于初级程序来说,相对容易掌握easy。 书名是《手把手教你打造3D游戏引擎》。 当然,对于市面上比较流行的Unity3D引擎和UE4引擎来说,它们的知识点肯定不止于此。 3D引擎的功能还是非常多的,引擎开发的投入也需要一定的人力和财力。 书中主要知识点展示给读者如下:
第五阶段主要是学习图形编程算法,这也是3D引擎的核心功能。 其实它所做的就是将运行在CPU上的程序转移到GPU上运行,也就是通常所说的可编程流水线。 该引擎实现了场景的后处理渲染3d游戏开发教程,读者需要掌握的知识点如下:
最后3d游戏开发教程,笔者将自己独立实现的引擎效果图展示给读者。 海水模拟引擎模拟海水接近CG效果。 如下所示:
实时在水中生成动态效果
海水模拟的反射和折射效果