这是一篇关于本人2022秋招(2023届)的经历的分享帖,曾经受益于许多前辈的面经分享,现在也希望自己也想分享出来,算是回馈给大家!有任何问题都可以私信或者评论~    更详细的有答案的面经放在知乎了,链接如下:    零基础非科班校招图形/引擎/游戏面经长文分享 - 知乎 (zhihu.com)        1.本人背景:       本人2023届211硕,机械生,非科班,本科纯纯机械设计制造相关方向,读研后才开始做计算机相关的内容,研究生方向是机器视觉,刚读研时候,计算机基础知识几乎为0,后续在学校课题组内用C++做过实时三维重建,图像融合等图像相关的项目,积累了一点并行开发、CUDA、MFC以及OpenGL的相关知识。通过参考许多前辈的帖子(部分链接放在文章结尾),从2021年春天正式决定想要走图形的方向,自学了一些图形学相关知识。有过两段实习经历,一段网易互娱暑期图形工程师的实习经历以及一段中央电视台的体育媒体工作的实习经历(纯爱好与技术无关)。                  2.技术栈:          编程语言:C++          图形学学习内容:Games101 , Games202 , 部分Games104, unity shader入门精要, 软光追,GPU Gems3,LearnOpenGL          其他:CUDA, MFC, 数字图像处理基本知识, OpenCV          项目方面:在学校跟导师的图像相关项目、在网易实习时期间做了一些工作、自学的过程中自己尝试做了一个软光追渲染器以及用OpenGL实现了一些基本的简单算法。                    3.找工作全经历:          (按进展程度顺序)          同花顺 视觉算法岗 简历挂          oppo提前批 图形学工程师 简历挂          鹰角网络提前批 图形渲染算法工程师 简历挂          小红书 图形图像算法工程师 简历挂          字节跳动提前批 渲染引擎研发工程师 简历挂          联想 图形工程师 简历挂          网易雷火提前批 引擎研发工程师 简历挂          网易互联网 渲染引擎开发工程师 简历挂          鹰角网络正式批 图形渲染工程师 简历挂          Garena 图形渲染工程师 简历挂          叠纸 引擎开发工程师 简历挂          完美世界 游戏引擎开发 简历挂          紫龙游戏黑杰克 游戏研发工程师 投递无回应(本人天地劫死忠玩家,很伤心,为投紫龙还特地花了好多时间做了一版天地劫皮肤简历)          网易雷火正式批 游戏研发工程师 笔试挂          酷家乐 图形渲染引擎工程师 一面挂          蚂蚁 技术美术 一面挂          字节跳动正式批 多媒体图形图像研发工程师 二面挂          Funplus 游戏引擎开发 二面挂          B站 游戏算法工程师 二面后面试官告诉我最近有新项目要上线,过一阵子再继续后面的流程,此后就再无消息          米哈游 游戏客户端 三面挂(痛,太痛了)          华为 媒体算法 泡池子          快手游戏 游戏图形学算法工程师 意向          海康威视 计算机图形工程师 offer          广联达 图形开发工程师 offer          搜狐畅游 引擎开发工程师 offer          vivo 图形驱动工程师 offer          (其中快手游戏,funplus和米哈游给我的面试体验最为专业,让人十分舒适,遇到不会或者不确定的问题,面试官会加以引导甚至会和你一起讨论)          4.个人反思及总结:    经历了秋招大大小小的笔试面试,一次次的简历挂,说没有挫败感是不可能的,从大环境的角度来看,身边的大佬依旧一往无前,但更多的像我这样的普通人,确实是感觉寒气十足。仅从今年我个人的情况来看,只靠力扣刷题,背C++八股,准备最基础的图形学理论知识,可能已经不足以底气十足地去面对图形引擎岗位了,更多的实践是必不可少的,实践是夯实自己的必要路径。这些失败确实让我看清自己很多不足之处,我总跟朋友调侃自己是个速成的理论大兵八股战士,积累和实践都远远不够,也的确如此。图形,引擎都是需要非常强动手能力的门类,我自身缺乏足够多的图形引擎项目、对商业引擎的了解深度太过浅薄以及非科班有可能是我一半公司都简历挂的主要原因,关于面试部分的失误我也会在后面面经分享中进行一点总结。                  5.面经分享:    以下面经全部来自于我自己面试遇到的问题,出于很多公司保密问题,我不会标明公司,也不会完全一模一样,但表达的意思是大致相同的。           5.1 C++及常规计算机八股部分:          C++部分的学习,从我个人角度来说当初我最早入门时是看的B站的黑马程序员的从0到1学习C++的课程(该课程我认为短小精悍,常用的东西都提了怎么用,但没有深入去讲解,不过作为完全没有基础的新手学习C++的使用,我仍然十分推荐,不会一上来就把人给劝退了),之后主要来自平时项目锻炼以及侯捷的视频课程全家桶(面向对象高级开发,STL,泛型编程)。          C++十分博大精深,很多东西都需要慢慢在写代码过程中提升,面试常问问题也只是C++的冰山一角,但这些仍然十分重要。          1.内存分区有哪些? 堆栈有哪些区别?          2.编译的过程,静态链接库和动态链接库有什么区别?          3.new和malloc有什么区别?     4.delete和free有什么区别?       5.指针和引用的区别?       6.指针常量和常量指针,底层const和顶层const?       7.三种智能是什么?智能指针原理是什么?       8.C++的虚函数机制是怎样的?       9.构造函数和析构函数能不能为虚函数?       10.虚函数表存放在哪个内存区?       11.struct(int char)大小,加一个静态变量之后呢?加一个虚函数之后呢?       12.创建10个实例有几个虚函数表?       13.哪些不能是虚函数?       14.i++和++i的区别       15.左值和右值分别是什么?移动语义和完美转发是什么?       16.std::move实现原理?       17.常见容器都说一遍,插入查找算法复杂度       18.map和unordered_map区别,讲一下C++的map容器       19.红黑树你了解多少?       20.vector的扩容,哈希表扩容?       21.vector里加入10万数据,游戏中有对象的指针指向这些数据,这可能有什么问题?       22. vector如何快速删除内部对象。(要求O(1)时间复杂度)    23.刚刚我们聊过vector的扩容,那vector怎么减容?pop_back之后,vector会自动减容嘛?如果不会减容,那我们怎么释放不必要的内存呢?C++是否提供了我们什么接口呢?    24.链表遍历和数组遍历谁比较快?为什么?从CPU内存访问角度怎么理解?    25.给定一个链表的头节点和要删除的节点,如何O(1)复杂度搞定删除?    26.逻辑地址,物理地址,虚拟地址分别是什么?    27.线程和进程的区别?    28.多线程的锁有哪些?分别有什么区别呢?    29.进程间通讯的方式?    30.烟花随机绽放的游戏,内存上存在什么问题    31.OSI 七层协议模型    32.各种排序的平均/最坏复杂度。    33.介绍一下线段树    34.介绍一下工厂模式    35.TCP与UDP的区别    36.介绍对象池的实现思路,对象池回收时需要注意什么?       5.2图形学及游戏相关部分   图形学部分问了很多算法的实现,算法的细节都非常丰富,我在此不多做展开,只是简单叙述思路,想要仔细了解还是要阅读具体的资料或者自己动手去实现。在这里特别强调,与简历中项目相关的内容,就会针对性地问或者问的比较深。所以最好大家都得确保对自己项目的熟悉程度,再往简历上写。  1.介绍一下渲染管线,三维坐标如何变成屏幕坐标,有哪些变换?    2.ndc是什么,坐标范围?    3.延迟渲染管线和前向渲染管线有什么区别?各有什么优劣?    4.Shadowmap的了解嘛,介绍一下。除此之外还有有哪些阴影处理算法?    5.软阴影可以怎么做?    6.vssm需要额外存储什么数据?vssm算***有什么问题?漏光的原因是什么?    7.CSM是怎么做的?    8.IBL的实现细节,diffuse和specular部分分别是怎么做的?    9.反射探针是否了解?    10.多个光照探针之间如何进行blend?    11.IBL的specular部分的卷积,做了什么假设?这样假设会出现什么问题?    12.IBL一般会把图像存储在cubemap中,如果在一些移动端设备上,没有提供cubemap的相关api,这个时候该怎么处理?    13.如果使用柱状投影图,会有什么问题?    14.如果需要实时进行卷积操作,diffuse部分怎么做可以更快,更高效?    15.屏幕后处理LUT加滤镜是怎么做的?    16.OpenGL抖动阶段做了什么处理?    17.billboard有什么作用?原理是什么?    18.说一说蒙特卡洛的原理?    19.不用蒙特卡洛怎么表示积分?    20.大世界场景需要注意哪些问题?    21.城市场景有什么优化思路?    22.除了BVH以外还有哪些空间划分方式?BVH和八叉树各有什么适用范围?    23.BVH划分节点有哪些手段,各有什么优缺点?    24.射线和三角形求交,射线与球求交,怎么快速判断?    25.说一说PBR的原理?具体的法线分布函数有哪些?    26.如果我们要生成成千上万相同的对象,该怎么做?    27.讲一讲渲染方程的物理意义    28.路径追踪的思路,具体实现细节,打到diffuse物体怎么做处理    29.怎么理解重要性采样?    30.碰撞检测是怎么做的,高速物体碰撞检测出现子弹的隧穿怎么办?    31. 双重缓冲和垂直同步是否了解?    32. 移动端架构是否了解?是否有了解过TBR和TBDR?你怎么理解TBDR中的D?在TBDR上处理半透明物体怎么处理?    33.纹理压缩有了解吗?移动端的纹理压缩呢?    34.常规性能问题应该如何分析?有哪些优化方向和手段?    35.GPU Driven了解吗?    36.帧同步和状态同步了解吗?    37.z-fighting怎么处理? 动***面和远平面哪一个比较好?    38.欧拉角定义的旋转矩有什么问题,怎么处理?    39.讲一下四元数原理,四元数怎么实现旋转    40.抗锯齿算法知道哪些?    41.8倍的MSAA,缓冲区大小也要8倍吗?MSAA和延迟渲染不能共存只是带宽和显存的问题吗?    42.TAA存在哪些问题?如何解决拖影?    43.全局光照算法了解哪些?    44. RSM, LPV ,VXGI怎么处理的?    45.SSR怎么做的,ray marching是如何进行的?    46.如果要用在移动端 你觉得哪些GI算法优化之后是可行的?LPV,SSGI如果要用在移动端,需要进行哪些方面的优化?       5.3面试手撕题部分:   这部分我最深的感触是刷题在精不在多,如果你的准备时间有限,没有必要去花太多时间去做没做过的题目,尽可能多刷几遍剑指offer或者是LeetCode上的hot100题,刷透才能让自己举一反三,没有刷透,盲目去多做,遇到新题目还是得直奔题解,做过的题目也很容易还是不会做。最终面试手撕代码的主要问题也确实基本都出自剑指offer和LeetCode的热题。    以下全部为我自己面试时碰到过的原题:       以下全部为我自己面试时碰到过的原题:       重建满二叉树       LRU 力扣146题       奇数放前面,偶数放后面 剑指offer21题       贪心发糖问题 力扣135题       排序二维数组高效查找,要求用二分和Z字查找都写一遍 剑指offer04题       力扣热题 岛屿数量问题 力扣200题       岛屿问题进阶,如果要搭桥把所有岛屿连接起来,求出岛屿占据的最少像素数(bfs+连通域间最短距离+图论最短路径)       编辑距离 力扣72题       带括号的加减乘除       带去重的归并排序       三个点落在同一个半圆的概率       0-4随机数生成0-6随机数       找到二叉树中的最大子搜索二叉树       A*寻路       手写blinn-phong shader       手写旋转,平移,缩放矩阵       HLSL/GLSL写采样           5.4技术面遇到的开放性问题:          C++实际解决过哪些问题?          项目难点,如何解决,做多线程的时候遇到过哪些麻烦,怎么解决的?          对图形引擎/技术美术岗位的理解和看法?          图形学学习过程?          OpenGL学了多长时间?          怎么在游戏中优化cache访问?          unity了解程度,用过哪些功能?          你平时怎么debug的?          C#的了解嘛?          blender的了解嘛?是否会使用blender的脚本系统          懂不懂粒子系统和效果?          骨骼动画是否有了解?          用过哪些debug或者性能分析工具?          平时玩什么游戏?最近玩了什么游戏?喜欢什么类型的游戏?          原神的全局光照和屏幕后处理有了解吗?(不是米哈游问的,而且不止一家公司问了,我说玩过原神。。就会开始问)          战神4你觉得哪里好,你觉得奎爷那把斧子的技术难点在哪里?(因为我说最近一年玩过刚上pc的战神)          编译型语言和解释型语言有什么区别?          看过哪些印象深刻的技术博客吗?          说一件在技术上让你比较有成就感的事情,或者说是什么让你有成就感。          为什么想做游戏引擎?          6.写在最后:       图形/引擎/游戏研发是非常有意思的门类,我相信大家之所以走上这条道路绝大多数的人是因为热爱游戏。这几年优秀高质量的学习资料可以说井喷,games系列的课程几乎都拥有极高的质量,如果能学得足够透彻,一定会更加得心应手(虽然很多是像我一样的应届生仓促地学完就鸭子上架接受拷打了)。至于学历方面,在这一行业并不是很重要,实践能力和知识储备更为重要,我见过很多本科生,比我这个半道子入行的非科班研究生不知道强到哪里去了,不过要提醒的是,现在确实有不少公司的图形/引擎岗会卡本科生了,虽然我认为毫无必要,但这可能是优秀人才越来越饱和的必然结果吧,最后提醒大家也是提醒我自己,切勿眼高手低,切记脚踏实地。           我的整个秋招也算是一波三折,最终虽然略有遗憾,但也算是较为圆满地结束了,我这个水平,能拿offer已经非常知足。          祝大家在学习的过程中也能收获快乐,前程似锦!          如果有任何问题欢迎评论或私信!    最后在这里感谢一些对我帮助极大的帖子,感谢前辈们的无私分享!           【游戏开发面经汇总】- 计算机基础篇 - 知乎 (zhihu.com)           【游戏开发面经汇总】- 图形学基础篇 - 知乎 (zhihu.com)           字节朝夕光年 游戏引擎开发面经 - 知乎 (zhihu.com)           参加数十次校招笔试面试后,我做了全面的总结(游戏开发岗) - 知乎 (zhihu.com)           长文面经:零基础游戏渲染/图形引擎开发之路_笔经面经_牛客网 (nowcoder.com)           秋招落幕,给非科班零基础想转行游戏开发的同学分享一些经验_笔经面经_牛客网 (nowcoder.com)                  有答案的版本放在知乎了,牛客这个只写了问题,没有答案~    零基础非科班校招图形/引擎/游戏面经长文分享 - 知乎 (zhihu.com)
点赞 101
评论 13
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务