面试:腾讯IEG光子游戏客户端开发

注:博主目前仅进行到一面,后续没有出结果,疑似凉经

2月份的时候估计回不了学校,考虑到下半年可能回不到学校,于是预计会在本地实习一段时间,第一个投递的岗位是腾讯IEG,找了一个学长->同学内推,本来一开始想的是在成都天美就地实习,但是貌似天美不太看得上我的简历(泪);后面听学长说我的简历被深圳光子捞了,问我能不能去,想了想大概暑假是可以过去实习的,于是跳过了笔试,在3月8日进行了第一场面试,由于这是人生中第一场面试,所以在这里记录一下。

一面

一面面试官应该是一个做客户端渲染方面的腾讯员工,态度非常好(我的第一次面试,好评),主要是负责面试我图形和引擎方面的问题。首先根据我的工作意向提出了以下的问题:

  • 考虑来深圳工作吗?实习之后考虑转正吗?
    • 可以暑假实习;实习之后会考虑转正。

随后根据我的简历问了下我的项目:

  • 介绍自己做过的毛发渲染项目,觉得项目中比较有挑战性的问题有哪些?(PBR)
    • 简单介绍了一下根据两篇论文实现的毛发bsdf;比较有挑战性的问题:预计算优化
  • 有没有尝试把离线方法在实时引擎中实现?
    • 看过AMD的PPT,没有具体实现过
  • 光线追踪中有没有遇到采样不足造成的瑕疵?如何解决?
    • 本质的方法:提高采样数;高效的方式:滤波(其实面试官想问采样不足造成的暗面亮度的问题,我没有领会到,但是现在回想起来可能是指的阴影贴图造成的失真)
  • 大量mesh的情况下如何加速?
    • aabb、包围盒、bvh
  • 介绍一下渲染管线
    • 顶点输入、处理、顶点着色、面剔除、几何着色、图元组装、裁剪、深度测试、光栅化、片段着色、模板测试
  • 渲染管线中的视锥体裁剪是发生在什么阶段?怎么处理的?
    • (我一开始把culling和tessellation搞混了),后面听到面试官提起这个概念后才说这个是发生在几何着色的组装之后,把视锥体外面不可见的部分进行剔除。
  • mvp矩阵的作用?分别是从什么空间变换到什么空间?
    • MVP是指model、view、projection三个矩阵,分别是模型矩阵,从模型空间变换到世界空间;视角矩阵,从世界空间变换到摄像机空间;投影矩阵,从摄像机空间变换到裁剪空间。
    • 追问:MVP矩阵中哪些矩阵可以3x3实现,哪些4x3,哪些4x4
      • 线性变换都可以由3x3的矩阵实现,例如model变换的rotate, scale;非线形变换需要由4x3或者4x4矩阵实现,例如model的translate、view的lookat可以由4x3实现,而projection在orthographic的时候可以4x3实现,在perspective的时候必须4x4实现(w分量会发生变化)。
  • 透视除法的作用?
    • 把裁剪空间中的数据变换到NDC(标准设备空间)中,目的是标准化。
    • 追问:哪些框架下z是0到1,哪些是-1到1?
      • DirectX是[0, 1],OpenGL是[-1,1]

接下来就是我不会的了

  • 了解过移动设备和高性能设备两种不同的渲染方式吗?
    • 我懵逼:前向渲染和延迟渲染?(面试官很给我面子地问我有没有了解过,我猜了这两种渲染方式,其实是想问立即渲染模式和瓦片式渲染)
  • Unity、UE用过吗?知道怎么减少DrawCall吗?
    • 同样是不会,我只在很早的时候会用Unity干过一些简单的事情。

接下来面试官对我也了解得比较清楚了:图形学基础不错、没有学习过商业引擎、不了解图形硬件。

然后就是反问:

  • 面试官:有没有什么是没有问到,你希望介绍的吗?
    • PBR?光照模型?
      • 离线渲染的项目已经足够了解了,不需要再额外问了。
    • C++?
      • 可能是之后别的同事来面
  • 我:腾讯游戏客户端主要干啥?
    • 面试官很热情地给我介绍了他们的主要工作,主要就是关于各种调优,比如性能调优啊、画面调优、渲染调优之类的。
  • 我:有独立的引擎部门吗?
    • 有,但是和客户端是独立的。

至此一面结束,大概也了解了自己知识在哪方面有缺陷,之后查漏补缺!

To be continue(如果进了复试)

作者

Carbene Hu

发布于

2022-03-10

更新于

2022-05-12

许可协议

评论