渲染基础
管线
- 描述一下OpenGL的渲染管线,每一步的渲染过程
- 论述vs阶段和fs阶段的区别,各处理哪些数据
- 几何信息和材质信息的区别是什么
- VBO、VAO和EBO的区别
- 光栅化过程、各类测试、剔除
- (可以追问一下三角形光栅化算法)。
- 透明物体如何渲染,会有什么问题。
- z-fingthing的原因和解决方法。
- 模型缩小后边缘变黑,原因和解决方法。
几何
- 一个物体在整个渲染流程中将要经历哪些空间变换,每个变换依赖于哪些矩阵
- 是否知道万向锁,为什么,如何规避
- 四元数除了解决万向锁问题,还解决什么问题
- 两种摄像机(透视/正交)的区别
- 如何通过一个相机和屏幕空间上的一点,生成世界空间中的一段射线
图元
- 图元数据有哪些部分,如何取舍。
- 大怎么办?了解过压缩方案吗?
材质
- 什么是材质,论述一下对材质的理解
- 含有纹理的材质的处理过程
- 立方体纹理的采样?
- 知道PBR吗,论述一下
- 了解IBL吗,全局反射和全局照明如何实现
- 全局反射遇到过兼容性问题吗
- 照明一般有哪些实现方法
纹理
- 512x512的PNG/JPG内存占用如何。
- 知道以及使用过压缩纹理吗,哪几种形式。
- 压缩纹理的兼容性了解吗,如何处理。
动画
- 动画一般分为哪两种
- 骨骼动画的原理是什么
- 知道顶点动画和UV动画吗,能用于实现怎样的效果
- 如何实现简单的水面渲染
- 捏脸有哪些方式
后处理
- 后处理是什么,一般在渲染的哪个阶段处理
- 后处理会导致哪些问题
- 如何实现Bloom效果
HUD
- HUD和普通3D物体的区别是什么
- 一般如何实现HUD
性能
- 有哪些常见的性能优化的方法(开放性问题)
- 知道视椎体剔除吗
- 知道遮挡剔除吗
- 知道LOD和MIPMAP吗,如何操作
- 知道LightMap和烘焙吗
GamePlay
基本模型
- 论述一下自己了解的几种游戏引擎,以及它们的场景管理模型
- 根据上面的结果,论述这些模型的优缺点和自己的倾向
- 知道OO、FP、EC模式、ECS模式等吗,有什么优缺点
- 知道GlTF吗,谈一下理解
物理引擎
- 用过物理引擎吗,论述一下自己对物理引擎的理解
- 物理引擎如何抽象一个物体,知道刚体、碰撞体和物理材质吗
- 碰撞检测的阶段,知不知道AABB、粗监测和细检测
- 当运动物体速度太快导致检测失效的情景,一般如何处理,是否知道CCD
AI
- 了解AI编程吗,有哪些编程模式
- FSM的优缺点,知道HFSM吗
- 了解行为树吗,是否使用过
- 如何统筹玩家、AI以及场景中的3D对象的关系(开放性问题)
其他引擎
- 是否使用过Unity编程,论述一下其结构(上面回答过则跳过)
- 是否了解过UE4,有什么优点?
- 使用Unity做过工具吗,如何编写自定义Unity插件
- 用Unity编写过Shader吗,基本结构是什么,光照如何实现
- Unity中全局照明的原理(SH)。
实例
- 如何设计一个跑酷游戏的框架
- 给这个跑酷游戏加上联机机制呢
- 扩大场景怎么办
- 如何实现小地图
- 如果要追加DLC呢
P7以上
- 如果让你设计一个游戏引擎,你会如何设计(涉及到以上的所有知识点