本期为GAMES104《现代游戏引擎:从入门到实践》视频公开课文字实录第3期。本课程由GAMES(图形学与混合现实研讨会)发起,游戏引擎技术专家王希携手游戏引擎一线开发者共同研发。
课程共计22个课时,将介绍现代游戏引擎所涉及的系统架构,技术点,引擎系统相关的知识。为配合学习实践,课程组在 GitHub 上开源了小引擎Piccolo,上线1个月即获得了2900+star, 累计下载量已超过20000+。
PS:错过了上期内容的同学可以点击下方链接阅读哦。
以下内容为公开课视频转文字版本,为阅读通顺,有删减
01「课程大纲」
接下来快速介绍一下20几节课的课程内容,这也是今年上半年我最重要的工作:要把这么复杂的一个体系结构讲清楚。
游戏引擎的研发,某种意义上很像大学学的一门课程——数据结构。一开始它其实并不是一种科学,只是大家在工程实践中逐渐总结出来的很多方法。当我们做了足够多的实践,会发现需要一套体系化的方法把知识固化下来。你会发现在很多类似的问题上,这些方法、模式都可以重用。
我们在课程设计中尝试把构建虚拟世界的基础结构梳理一遍,每一块着重讲的是方法。
基础的构建
第一节课会介绍游戏引擎最基础的构建,就是当你面对一个这么复杂的问题,按什么方法理解它、设计它。比如怎么理解MVVM设计模式?换句话说就是游戏引擎到底分几层?第一层为什么要把硬件平台、操作系统全部虚拟化?第二层为什么要抽象出很多共用的东西?我们会一层一层讲。
听完第一节课,当你打开虚幻、Unity或者任何一个游戏引擎的代码,你就知道该从哪开始看起了。
先剧透一下,打开任何一个游戏引擎的代码,首先看的是什么?一个叫做update的函数,它每隔1/30秒会去调一个Tick函数,从那个入口看进去,就能够顺藤摸瓜到引擎所有的细节。
渲染
我的目标是听游戏引擎的渲染可以不需要有图形学的基础知识,我们讲的是体系结构。
这个世界由材