3D游戏引擎高端实战培训课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《3D游戏引擎高端实战培训课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 游戏 引擎 高端 实战 培训 课件
- 资源描述:
-
1、3D游戏引擎高端实战培训第一课:3D引擎介绍什么是3D引擎?3D引擎能做哪些事情?第一课:3D引擎介绍商业引擎开源引擎自研引擎UE4、CryEngine、BigWorld、Torque、UnityOgre引擎第一课:3D引擎介绍第一课:3D引擎介绍第一课:3D引擎介绍第一课:3D引擎介绍第一课:3D引擎介绍第一章:3D引擎知识介绍具备哪些能力?C+,图形库,GPU编程第二课:C+C+封装C+特性:继承,封装,多态C+语言基础视频 csdn视频课程动态库和静态库第二课:C+库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存
2、在意义非同寻常。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a、.lib)和动态库(.so、.dll)。所谓静态、动态是指链接。第二课:C+C+编译过程第二课:C+C+静态库【静态库】,是因为在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中。因此对应的链接方式称为静态链接。第二课:C+静态库特点1、静态库对函数库的链接是放在编译时期完成的。2、程序在运行时与函数库再无瓜葛,移植方便。3、浪费空间和资源,因为所有相关的目标文件与牵涉到的函数库 被链接合成一个可执行文件。第二课:C+举例如下:第二课:C+举例如下:第二课:C
3、+举例如下:第二课:C+使用如下:第二课:C+使用如下:第二课:C+静态库总结空间浪费是静态库的一个问题。另一个问题是静态库对程序的更新、部署和发布页会带来麻烦。如果静态库liba.lib更新了,所以使用它的应用程序都需要重新编译、发布给用户(对于玩家来说,可能是一个很小的改动,却导致整个程序重新下载,全量更新)。第二课:C+静态库第二课:C+动态库动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入。不同的应用程序如果调用相同的库,那么在内存里只需要有一份该共享库的实例,规避了空间浪费问题。动态库在程序运行是才被载入,也解决了静态库对程序的更新、部署和发布页会带来麻烦。用户只
4、需要更新动态库即可,增量更新。第二课:C+动态库第二课:C+动态库特点动态库特点总结:l 动态库把对一些库函数的链接载入推迟到程序运行的时期。l 可以实现进程之间的资源共享。(因此动态库也称为共享库)l 将一些程序升级变得简单。l 甚至可以真正做到链接载入完全由程序员在程序代码中控制(显示调用)。第二课:C+动态库使用第二课:C+动态库使用第二课:C+动态库使用第二课:C+动态库使用第二课:C+动态库使用第二课:C+动态库使用第二课:C+问题:这里可能大家有个疑问,动态库怎么还有一个DynamicLibrary.lib文件?即无论是静态链接库还是动态链接库,最后都有lib文件,那么两者区别是什
5、么呢?其实,两个是完全不一样的东西第二课:C+StaticLibrary.lib的大小为190KB,DynamicLibrary.lib的大小为3KB,静态库对应的lib文件叫静态库,动态库对应的lib文件叫【导入库】。实际上静态库本身就包含了实际执行代码、符号表等等,而对于导入库而言,其实际的执行代码位于动态库中,导入库只包含了地址符号表等,确保程序找到对应函数的一些基本地址信息。第二课:C+总结二者的不同点在于代码被载入的时刻不同。l 静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库,因此体积较大。l 动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入
6、,因此在程序运行时还需要动态库存在,因此代码体积较小。动态库的好处是,不同的应用程序如果调用相同的库,那么在内存里只需要有一份该共享库的实例。带来好处的同时,也会有问题!如经典的DLL Hell问题,关于如何规避动态库管理问题,可以自行查找相关资料。第二课:C+总结二者的不同点在于代码被载入的时刻不同。l 静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库,因此体积较大。l 动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在,因此代码体积较小。动态库的好处是,不同的应用程序如果调用相同的库,那么在内存里只需要有一份该共享库的
7、实例。带来好处的同时,也会有问题!如经典的DLL Hell问题,关于如何规避动态库管理问题,可以自行查找相关资料。第三课:图形库DirectXOpenGLOpenGLESGDI第三课:图形库DirectXDirectX(Direct eXtension,缩写:DX)是由微软公司创建的一系列专为多媒体以及游戏开发的应用程序接口。第三课:图形库DirectX组成的组件有:Direct3D:主要用于绘制3D图形。(3D graphics)Direct2D:DirectWrite:Xinput:XAudio2:DirectCompute:GPU通用计算API。DirectXMath:针对游戏优化的高速
8、数学运算API,特别支持单精度浮点运算及矩阵运算,使用SSE2指令集。DirectSetup:用于DirectX组件的安装,以及检查DirectX的版本。DirectX Media:DirectShow可支持多媒体录音(multimedia playback)以及数据流媒体(en:streaming media),DirectX在网页上的转换,还有Direct3D可保留3D图像更清晰的解析。DirectX Media Objects:支持数据流对象,编码,解码第三课:图形库OpenGLOpenGL是一套应用程序编程接口(API),借助这个API我们开发人员就可以开发出对图形硬件具有访问的能力的
展开阅读全文