美文网首页
学习3D引擎需要会的知识点

学习3D引擎需要会的知识点

作者: HYZOR | 来源:发表于2020-02-20 12:35 被阅读0次

    1、首先需要了解一些最基本的3D知识,比如固定流水线、可编程流水线、3D模型结构、骨骼动画等。并且能利用Dirct3D或OPENGL或OPENGLES这些图形库中的任何一个,做个简单的Demo。通过Demo了解程序运行的原理后,再尝试封装一些简单算法,一些常用函数,利用这个简单封装做一款小游戏的Demo。最后再研究一下GPU编程,比如CG、HLSL语言的语法,在GPU编程的基础上再学习一些大型游戏开发中常用的算法,比如PSSM实时阴影算法,Bloom算法等这些与Shader编程紧密相关的后处理渲染算法。

    2、掌握一门主流开发语言 C、C++、Java、或C#。数据结构也非常重要,数据结构在游戏开发中主要用于数据存储及内存管理,开发3D引擎常用的数据结构有数组、链表、哈希表等,以及常用的一些查找算法:快速排序、二叉树查找、二分查找等。

    3、线性代数对于开发同样重要,线性代数的在游戏开发中可以灵活地运用向量、矩阵、四元数,以及欧拉角这些基本的数学运算解决问题。3D固定流水线中的坐标变换和可编程流水线的顶点和像素转换都是使用线性代数运算完成的。运算主要涉及到游戏开发中的物体移动、旋转、缩放,以及点乘和叉乘等。

    4、现在的3D游戏引擎渲染都是基于DirectX或者OPENGL、OPENGLES这些图形库完成的,这就需要能够熟练的使用图形库的接口开发程序,在当前移动端跨平台非常火热的情况下,建议学习OPENGL图形库。3D引擎的核心功能就是对游戏场景渲染和物体材质渲染,对于材质用有Alpha通道的要做特殊处理,Alpha通道就是说材质有透明的部分。在移动端为了减少透明材质的消耗,会通过GPU编程在Shader中进行处理,比如把有Alpha通道的图片切分成无Alpha通道和有Alpha通道的图片,通过Shader编程将其再合在一起。场景渲染使用的是后处理渲染效果,比如Bloom、Blur、Ssao、Pssm等。这些效果实现与GPU编程息息相关,要求至少掌握GLSL、HLSL或CG这些基于显卡GPU编程语言的一中。

    5、最后是图形学算法,游戏要实现一些逼真的效果离不开算法的支持,比如柔体的模拟、刚体碰撞效果及曲线插值算法等。学习图形学算法,建议看一下《算法导论》这本非常经典的书,以上说的这些是在引擎中比较深层的知识点。另外,在框架设计方面,需要掌握设计模式里常用的如工厂模式、单例模式、状态模式、MVC模式等。

    相关文章

      网友评论

          本文标题:学习3D引擎需要会的知识点

          本文链接:https://www.haomeiwen.com/subject/fifxqhtx.html