2019年春腾讯,网易游戏引擎工程师应聘感想

截至目前笔者已经获得腾讯的offer并刚面试完网易的四面,等待网易的后续面试中。笔者是一个正在美国读研的研究生,方向是计算机科学,主要就是游戏引擎的开发和游戏开发。面试的岗位都是游戏引擎工程师。这里说说常见的一些问题和我自己没有回答上的吧。

1.图形学相关

图形学相关的东西是必考的,常见的基础比如渲染管线,shader的作用,空间系,坐标变化等是会有涉及的。更进一步的有:

1.渲染透明物体应该怎么控制状态机

这个问题我只是一知半解吧。渲染透明物体应该先渲染不透明的物体,这时需要开启深度写入,然后渲染透明或半透明物体,关闭深度写入。注意,这里需要进行深度检测。渲染多个半透明物体需要从远到近进行渲染,同时不能写入深度

 

2.前向渲染,延迟渲染。

这个网上有很多,大致来说就是前向是我们常用的方式,就是一个一个的渲染,简单易懂,但是每一个都会进行光照计算;延迟渲染是将法线,光照信息等存入GBuffer,即保存最后会渲染到屏幕上的点的信息,然后在最后进行GBuffer的遍历进行渲染,这样的好处就是光照只进行一次计算。当然也有缺点,比如抗锯齿问题等。

 

3.光照算法。

brdf

 

2.物理引擎

碰撞检测算法应该是最主要的东西了。还有场景管理的方案。

 

3.算法

常见的算法的复杂度是一定的。还会零时出一些算法题来考察,这就是考能力的时候了。

 

4.C++

最常考的就是有关虚函数的东西。比如虚函数表,虚函数的实现方式等。在网易四面的时候还被问到一些笔者觉得比较不常见的问题,如c++和c的null的区别;c++中null为宏定义0,编译的时候为什么int* a = null 等价于 int *a = 0 能通过编译。这个原理我是不太明白的,想想可能是编译器的功劳吧。同时考到过右值和右值优化问题。

预祝自己网易也能通过吧~加油努力!

 

 

———————————————————————————————————————————————————————

2019.6.4更新

目前拿到了网易的offer并且已经在网易入职。

网易我总共面试了4次,三次技术面一次hr面。技术面前两轮没多大问题,第三轮来了个牛逼的,问了些非常非常偏门的问题(至少我从来没遇到过的),比如 c中null和c++中的null有啥区别;为什么c++中的null定义为0,c中的不能;一个类的指针为空那么一定访问失败吗;哪些代码会在main之前执行;访问空指针对象所指向类的函数一定报错吗。还有些啥记不得了,太久了已经,不过基本上是考语言中不容易注意到的地方。同时还面试了阿里,说实话阿里的面试才是让我最舒服的,面试还学习了很多知识。希望再接再厉~

你可能感兴趣的:(2019年春腾讯,网易游戏引擎工程师应聘感想)