个人的实习面经

本贴最开始只是我的网易的面经,现在我会把春招里所有公司的面经都写在这里。
这算是我个人的综合面经贴。
//==========================================//
第一次电话面试,轻度社恐的本人还是有点紧张。。。
1.自我介绍(传统艺能,blablabla扯一大堆)
2.介绍一下项目
3.你项目里面有用到shadowmap,能说一下shadowmap怎么实现的吗(物体渲染到RT上,渲染时对RT采样,中间提到了PCF)
4.提到PCF,你还知道别的软阴影生成方法吗(希腊奶,我从来没想过这个问题)
5.能介绍一下Phone模型吗(环境光,lambert,高光)
6.你用到了pbr,你能介绍一下pbr跟Phone相比的区别吗(能量守恒,用金属度和粗糙度控制高光,IBL)
7.写过什么后处理算法(Sobel算子,Blooming,FXAA)
8.你知道什么AA方法(SSAA,MSAA,FXAA,TAA)
9.FXAA,TAA具体实现和比较(FXAA根据算子挑出画面中亮度变化明显的区域,对这些区域模糊。TAA抖动相机,在混合历史帧数据,实现在时域上对图像做滤波。
FXAA效率高效果差,TAA效果好对图形管线改动较大,有很多衍生问题)
10.介绍一下项目物理模拟的方案(我这个比较菜,直接说碰撞检测没有用空间数据结构优化,检测算法用了gjk,每次检测完直接更新)
11.确定屏幕坐标,光栅化三角形(重心坐标)
12.光栅化直线(找到差距最大的轴,沿着轴一个像素一个像素的步进)
13.问一点C++,重载和重写区别(常识)
14.虚函数怎么实现的(虚函数表)
15.口述快排(第一次口述快排,感觉说的乱七八糟的,要是能写代码该多好。。。)
16.快排稳定吗(第一次我以为是指时间复杂度就说最坏情况会到O(n2),后来提示了这个是指相同元素相对顺序会不会改变,结果还是回答一个稳定。。。正确是不稳定)
17.随机打乱数组(洗牌算法,感觉答得***不离十)
18.反问(阿巴阿巴阿巴)
感觉图形整体问的不难,算法我答的很垃圾,感觉要挂我就是把我算法挂了

//=======================================================================//
我错了,是一面让我膨胀了。
二面直接被橄榄。
面经我过一阵子看心情更一下吧。。。

//=======================================================================//
绝了,我还以为我凉透了,网易一周后又在hr面把我捞了。
这几天我还要面腾讯,等我腾讯面完了我再来更一下完整面经吧。
还是许愿hr面,还有未来的腾讯


我想做丁磊先生的狗

//=====================================================================//
半夜爬起来更面经。网易二面过去将近一个星期,本人的池沼记忆力并不支持我把面试的细节记得很清楚,面经可能和实际有出入。
1,介绍项目(甚至开头没有自我介绍),
2.细说pbr模型(仔细背了一遍CT模型,漫反射 ,法线分布函数,菲涅尔反射系数,几何系数,IBL,把方程里面每一项都讲了一遍)
3.仔细讲一下IBL(把漫反射预积分,高光部分的拆分化简,以及高光环境贴图的预处理 比较细致的将了一遍)
4.你漫反射环境贴图是什么格式的(CubeMap)
5.是CubeMap吗(威压)?(当时面试官问了这个问题两遍,本池沼琢磨了一会想到可能是会考球谐光照。于是我根据平常水知乎看到的一点零零散散的知识糊弄了一会)
6.你这个光照方程计算和实际的光追计算出来的结果你觉得会有什么不同(从这里开始我面试就相当被动了,这问题其实不难,但当时我听到这种奇怪的问法直接懵了)
7.你知道unity的light map吗,light map是怎么烘焙的(希腊奶)
8.你能说说unity的光照系统吗(unity2连直接把我问懵了。我只在大一做平台跳跃小游戏的时候在用过一点点unity啊啊啊啊)
9.你能介绍一下vulkan吗(我简历上写vulkan只是为了让内容多一点啊,我实际只用vulkan画过三角形。
面试的时候我就扯了一个vulkan的gpu同步除了fence还有信号量)
10.说一下opengl和dx12的区别(opengl是用了状态机模式,想要切换上下文需要手动调用状态切换的函数,
dx12由一个pso代表了整个渲染管线的状态,直接切换一次pso就可。opengl的自动托管如texture buffer这样的gpu资源,dx12开放了ID3D12Resource和ID3D12Heap接口代表gpu内存资源,需要程序员手动管理。opengl不支持gpu,cpu异步执行,dx12可以通过fence值协调cpu和gpu的异步执行)
11.说一下pso(pso 代表了整个渲染管线的状态,用户在切换状态的时候不需要繁琐的状态设置,秩序切换一次pso即可,效率较高)
12.pso的好处只有这些吗(后来在面试官提醒可以对同一状态的物体进行同一批次渲染,我的项目里面有类似的设计,于是我和面试官描述了一下我的项目的设计思路)
13.你知道memory order吗(希腊奶。我后来查了一下这是和多线程有关的概念,我现在写过的多线程程序一个手指头都数的过来)
14.你能说一下dx12的多线程渲染吗(这个真的懵了,全程阿巴阿巴阿巴,扯一些什么每个线程一个command list,向主线程里面的command queue提交命令啊什么的)
15.你觉得多线程这样设计提升了cpu性能还是gpu性能(猜了cpu)
16.问了一个PBR和HDR有关的问题(当时我震惊了,我一直以为PBR和HDR是两个毫不相关的东西。面试时直接不会,后来面试官提了一下可能是和颜色空间转换有关系)
17.你什么时候能来实习
18.反问
这可能是我这辈子面过的最难的面试,当时电话打完我满背上全是汗。。。
二面面经算是更完了,希望hr面能有好结果吧


//==============================================================================//
哈哈,我网易面试过了,现在是在审批offer,岗位是日常实习

今天面完腾讯next一面,再来更新一下面经
说实话腾讯的一面面试体验好的一匹,面试官和蔼可亲(其实面试官看起来挺年轻的,不过本池沼想不到更好的形容词了)。
面试过程问题多且杂,我只写得出来一部分问题。

1.你比较熟悉dx12,你能说一下dx12,vulkan这样的api出现取代opengl是为了解决什么问题吗
(主要是为了适应多线程工作,有了dx12可以用多个线程记录命令到command list,然后用主线程的command queue执行。
而渲染算法天然适合并行提交,这样做能更大限度利用cpu资源)
2.你能说说光栅化过程具体干了啥(在顶点着色器确定了屏幕坐标后,找到对应图元确定的像素范围,对范围内的每个像素调用像素着色器)
3.能说一下整个图形渲染管线吗(顶点装配器,顶点着色器,几何着色器,hull shader,tessellator,domain shader,光栅器,像素着色器,深度测试模板测试a混合测试)
4.virtual 关键字(virtual修饰函数展现多态,virtual在继承时修饰class可以避免菱形继承问题)
5.菱形继承问题
6.析构函数能加virtual吗(可,而且尽量加。这样我们在销毁父类对象时可以 确保被执行的是子类的析构函数)
7.构造函数能加virtual吗(不行,且没必要。在语义上构造函数不需要多态。在实现上,调用没有构造好的虚函数表会有风险)
8.inline函数能加virtual吗,static函数能加virtual吗(第一个我猜的,第二个我直接不会)
9.const 关键字(const关键字修饰对象表示对象不能修改,const 修饰成员函数相当于成员函数的this指针加上const限定符)
10.const int* 和 int * const指针(第一个表示了指针指向的内容的值不能变,指针能改变指向的内容,第二个表示指针指向的内容不能变,指针能改变指向内容的值)
11.深度测试发生在什么时候(像素着色器之后,在Early-Z中就是像素着色器之前)
12.Early-Z 会有什么问题,什么时候失效(这个我答得不好,我只说了在渲染半透明物体时会失效,不回答为什么)
13.谈谈你对pbr的理解,为什么需要pbr(pbr标准化了程序和美术的制作流程,提供了方便美术调整的参数)
14.你用过Deferred rendering 和 Forward rendering 你能说说它们各有什么优劣(延迟渲染把光源的渲染和物体的渲染解耦,对于有大量光照的场景会有很大的优化,
然而,延迟渲染需要使用GBuffer会增加内存负担)
15.在你是怎么渲染半透明物体的(先通过deferred rendering 渲染不透明物体。再通过forwar rendering渲染半透明物体)
16.说说我们为什么要用Compute Shader(利用gpu优势,对于大量重复性的工作gpu提供了像素级别的并行能力)
17.说说什么时候我们不能用Compute Shader(对于有大量逻辑判断的复杂代码,gpu运行时间会是所有逻辑路径的总和。当数据量不大,逻辑复杂的代码必须cpu完成。(其实还可以说内存回读的额外消耗的问题,当时我没想到))
18.吹水(平常喜欢玩游戏吗,有什么爱好)

//==============================================================================//
这次估计就是最后一更了。其实腾讯后面两面都还行,问题感觉开放式的更多,感觉面试是在问我一些东西的理解和看法。
最后吐槽一下,腾讯从hr到oc起码过了整整十多天,要不是之前我有offer了,这几天我肯定慌的一批。

嘛,反正最后腾讯,网易都过了。在国内游戏行业估计也没更好的去处了,我估计我的春招大概就到此为止了。

最后,我终于有机会放这张图了:


#实习##面经##腾讯##网易##C++工程师#
全部评论
楼主是实习么
点赞 回复 分享
发布于 2021-02-26 17:20
楼主,网易实习已经开始啦?
点赞 回复 分享
发布于 2021-02-26 23:34
楼主投的引擎岗?客户端问不了这么多图形学吧
点赞 回复 分享
发布于 2021-03-15 21:30
楼主是怎么做到大三上学期就会这么多图形知识的😢
点赞 回复 分享
发布于 2021-09-09 20:49
楼楼是投的引擎岗吗,有没有被问到C++的问题呀0 .0
点赞 回复 分享
发布于 2021-11-09 21:49

相关推荐

11 55 评论
分享
牛客网
牛客企业服务