学习3D游戏开发进阶之路

笔者从事IT行业15年了,一直奋斗在一线编程,从普通程序员逐步成长到上市公司技术总监,目前在创业公司担任技术合伙人,主要负责公司整个项目团队的技术管理。在网上或者论坛上很多同学请教过我关于如何学习3D游戏编程,大部分人都是刚踏入游戏行业的,也有从2D程序转向3D程序的开发者。在这里我将自己的学习3D游戏开发的经验积累分享给读者。学习3D游戏开发我将其分为五个阶段:

第一阶段是学习3D相关的基础知识,首先要学会一门编程语言,这个是必要条件,在游戏开发中使用的最多的是C++编程,3D引擎开发使用的图形库,一般都是OpenGL或者DirectX,其中OpenGL是可以跨平台使用的,其应用最广,DirectX是微软研发的主要是面向PC端的,图形库的主要功能是渲染,所以大家还需要掌握一门Shader的编程语言,主要是CG和HLSL,3D编程会涉及到很多向量运算和矩阵运算,在真正学习3D游戏开发之前需要将这些熟练掌握,为你以后技术的提升打好基础。将结构图展示给读者如下所示:
 


第二阶段是学习3D游戏开发的基本流程,换句话说就是如果将一个3D模型渲染到屏幕上显示出来需要经过那几个步骤?这就是我们经常说的固定流水线和可编程流水线,其中固定流水线是最基本的,可编程流水线主要是将固定流水线中的一些运算放到了GPU中执行。固定流水线包含的知识点如下所示:
 


第三阶段就是要真正涉及到游戏编程开发了,我们在这里将其分解成多个知识点,开发者要将其分开掌握。需要掌握的知识点如下图所示:
 


第四阶段告诉读者如何自己去封装一款弱小的引擎,笔者利用业余时间封装过几款3D游戏引擎,为此还写过一本专门介绍引擎封装的书,对于初级程序来说,掌握起来比较容易。书的名字是《手把手教你架构3D游戏引擎》。当然对于市面上比较流行的QQ靓号买卖引擎,UE4引擎,它们的知识点绝对不止这些,3D引擎的功能还是非常庞大的,引擎开发的投入也是需要一定的人力和财力。现将书中的主要的知识点给读者展示如下所示:


第五阶段主要是学习图形学编程算法,这也是3D引擎的核心功能,其实做的事情就是把在CPU运行的程序转到了GPU中运行,也就是通常说的可编程流水线。引擎实现的主要是针对场景的后处理渲染,需要读者掌握的知识点如下所示:
 


最后笔者将自己独立实现的引擎效果图展示给读者,该海水仿真引擎对海水的模拟接近了CG效果。如下图所示:

实时生成水中动态效果
 


海水仿真的反射和折射效果
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值