截至目前笔者已经获得腾讯的offer并刚面试完网易的四面,等待网易的后续面试中。笔者是一个正在美国读研的研究生,方向是计算机科学,主要就是游戏引擎的开发和游戏开发。面试的岗位都是游戏引擎工程师。这里说说常见的一些问题和我自己没有回答上的吧。
1.图形学相关
图形学相关的东西是必考的,常见的基础比如渲染管线,shader的作用,空间系,坐标变化等是会有涉及的。更进一步的有:
1.渲染透明物体应该怎么控制状态机
这个问题我只是一知半解吧。渲染透明物体应该先渲染不透明的物体,这时需要开启深度写入,然后渲染透明或半透明物体,关闭深度写入。注意,这里需要进行深度检测。渲染多个半透明物体需要从远到近进行渲染,同时不能写入深度
2.前向渲染,延迟渲染。
这个网上有很多,大致来说就是前向是我们常用的方式,就是一个一个的渲染,简单易懂,但是每一个都会进行光照计算;延迟渲染是将法线,光照信息等存入GBuffer,即保存最后会渲染到屏幕上的点的信息,然后在最后进行GBuffer的遍历进行渲染,这样的好处就是光照只进行一次计算。当然也有缺点,比如抗锯齿问题等。
3.光照算法。
brdf
2.物理引擎
碰撞检测算法应该是最主要的东西了。还有场景管理的方案。
3.算法
常见的算法的复杂度是一定的。还会零时出一些算法题来考察,这就是考能力的时候了。
4.C++
最常考的就是有关虚函数的东西。比如虚函数表,虚函数的实现方式等。在网易四面的时候还被问到一些笔者觉得比较不常见的问题