23游戏引擎开发春招实习凉经

前言

想清楚自己想做游戏,还必须想清楚自己具体去做哪个岗位,并且调研清楚各个岗位的具体要求。游戏行业的几个岗之间可迁移性并不非常高,做客户端的,做引擎内容生产的,做渲染的,做服务端的,做工具和做TA的,学的技术差异较大;

从结果来看,这篇文章中的学习路径是有偏差的,仅仅做一个春招实习的总结;所有这些求职没有冲破一面的,因此能提供的题也很有限

2022年1月到2022年9月我陆续参加了好多种类千差万别的笔面,最大的问题就是一会投图形一会投客户端一会投引擎,因此23年起我想清楚自己的方向,打算做渲染,并且学了小半年,从23年3月开始投递简历,准备冲23暑期实习;

我决定这样准备的起因是22年8月看到了21年秋招的两篇网易互娱图形工程师入职面经,我发现图形岗的知识和我目前已经学的东西较为重合,我对图形学知识比较感兴趣,而且图形岗不需要刷C++算法题。

21秋招网易互娱图形工程师 20秋招网易互娱图形工程师

当然事后证明,这个规划是非常糟糕的。原因如下:

  1. 图形岗是一个需求较少且非常具体的岗位,各个厂对于引擎、客户端、图形几个区块的划分是不同的,很多厂并不会要不会引擎只做渲染的人
  2. 过分看中个例,而忽视了对全行业的普遍调研。各个厂分别在做什么、用什么,各个岗在不同的厂之间的共性和个性是什么,这些我完全说不上来,就盲目地开始学了
  3. 照这两篇面经学,有一个比较大的问题:对引擎 毫无认知,而 C++ 也不过硬,且完全押宝网易互娱一家(结果互娱今年根本没招),那么等于是把自己和引擎岗和C++客户端岗这两个游戏工业程序口较大的机会全丢了,以UE来说,其实在UE中已经不很需要自己编写shader了,因此仅仅抱着openGL学着色器编程实在是一个脱离现实的事情,换句话说几乎没有厂商需要一个只会写shader的程序员。

22年9月时我会什么

22年初学了一段时间DX12,搞来了经典的D3D12红龙书,但是代码深介绍短,最后弃了,因此后来在面试的时候这部分=0 22年5月-6月在研究Unity,重点搞了一段时间Unity动画,但是只是做了一个前进跑步跳跃的人物动作的demo,不足以写上简历,也没找到很好的进一步钻研的方向

22年8月-9月听说骨骼动画很重要,总是在面经里面看到IK解算算法什么的,又学了两个多月3dsMax动画,并且做了3dsMax的一个导入导出,能导给自己games101的作业项目,最后能在unity,3ds和自己的项目之间三段互传

22年8月-9月与此同时还写完了Games101的作业,中途有很多自己的想法,也尝试性做了一些拓展,比如从3dsMax输出的obj文件里面读取模型load到我的101作业场景里 (吐槽一下:现在回顾,感觉101的作业其实做的也不是特别合适,因为101的作业系统是一个虚拟机下的C++软渲框架,好处是避免了配环境,坏处是助教自己写的关键逻辑一大堆,经常在这堆原创代码里翻来翻去找关键逻辑最后晕眩,与其这样还不如直接去配个openGL环境,openGL项目是GPU运行的,当初的小奶牛项目在CPU上已经开始卡了;使用openGL还可以加深学生对于渲染管线的理解)

23年3月时我又会了什么

22年9月-22年12月 因为学校的事情很忙,分身乏术,但是也是此时接触了一些openGL,感觉可以学但没怎么学,但还是把101的作业整理了一下,做了一个自己的C++软渲染光栅器程序 22年9月-22年12月 同时我意识到了求职功夫在平时,三个月间坚持刷掉了一遍代码随想录,同时9月里的腾讯面试让我意识到自己的问题,我的C++根本就是0分水平,所以开始认真看C++ Primer,到22年底我看了除去16章以后的所有内容,整理出了自己的C++面经本子

学完了learn openGL, 一直学到pbr;因此会写shader,知道图形渲染管线的过程,但依然说不上熟悉和精通。learnopenGL是一个很好的资料,远胜于红龙书对DX的介绍,虽然红龙书在深度上略胜一筹,但是初学难度太大,并不适合仅仅学习了图形学基础知识的选手作为第一款图形API入门。

用了一款图形Debug软件RenderDoc,是一个很了不起的生产力工具,对于渲染管线进一步加深了理解

正好是chatgpt热潮,这是一个更了不起的生产力工具, 最关键的倒不是能帮我在游戏开发上做什么,关键在于他能帮我查文献 + 秒面经,很多时候刷到一个没见过的面经,只要问chatgpt非常有帮助

因为学完了learn openGL,我得到了一个勉强能写进简历的图形项目:一个实现了PCSS、环境贴图和PBR等效果的简单场景,这个项目看着比较唬人,实际上根据我的时间管理软件,一直到不含IBL的PBR学完,我大约在openGL上花了不到100个小时,其实如果拿出点强度来,这些工作是可以在三周时间内高强度工作做完的,而我花了三个月……

我开始高度关注自己时间管理软件上的统计结果,工作日的平均专注时间来到了六个多小时,我逐渐感觉到高强度的实干让我心里的焦虑有所缓解,尽管面对面试还是很紧张,但是我心里有种开始做实事的踏实感。

我的情况

一年多的游戏开发自学之路,走过了漫长的学习,经历了很多折磨。我是一个研究生专业不太好的跨专业自学者,211本+普985硕,本以为硕士身份在求职者的海洋中位列前茅,谁知道实际上今年的行情,清北亦有不少折戟沉沙,更不要说我了。

我22年下半年其实学的不太好,而且有用的都没学。当时在导师厂里打工,做的是传统web项目,厂里有点怪,需求一天一个样,前期做了两三个月APP突然就转头让做小程序,想要东西的时候急匆匆催着要,但是常常你上去跟进的时候对面又嫌烦。最后12月的时候因为宿舍问题我就离开公司居家办公了,结果一从公司离开对接的人直接开始不理我了,最终整个项目不了了之,开发了一套微信小程序项目就此流产,我为此浪费了将近四个月的时间。这让我23年3月陷入了血崩:我一面要准备暑期实习、一面要搞毕业课题,一面还要上课,本来也是水课,可以混一混交齐作业就过的,但是不同往年,今年学校突然让我们所有人必须去学校线下上课,课多老师事儿还多,这样一来我的压力一下子顶上来了。

一边三线程,早上上课晚上参加笔面夜里补每周汇报,这就是我的暑期实习求职实况。

2023年春天,无论是打开b站还是招聘群,到处都弥漫着一种焦虑而绝望的气息。一些视频和文章说23年是最坏就业年,大学毕业应届生来到10M,而且疫情宅家延后就业的往届生也会加入招聘大潮。另一方面,牛客热搜《笑话》这样说:暑期实习是个笑话,研究生工作是个笑话,读研是个笑话,我是个笑话,也有看到同方向oc的同学,但是更多的是被挂,挂笔试挂一面甚至挂简历的同学,大家在各个招聘信息团体里传播着这种绝望。

我倾向于认为今年确实是寒气确实波及到游戏行业了,我的几个证据如下:

  1. 网易互娱今年没声音,实习春招都没有
  2. 网易雷火先是没给回复,一个月后改投了客户端,笔试也非常难;官网hc个位数
  3. 腾讯招聘群里top2大哥数量非常多;其他公司但凡有群的,打开就能闻见味听见声,定睛一看字里行间写满了我是fw
  4. 腾讯笔试后,在各个其他群里看到有很多人A3 A4,而我只A2;剑心、雷火、吉比特甚至都挂了笔试
  5. 听闻各家在近两三年开展的元宇宙项目纷纷在解散,一些强力的选手从一线退下来回到游戏工业
  6. 长衫脱无可脱,一线进不去,二线不对口,三线四线不招实习(盛趣和畅游本都计划要投,但是都是要Unity客户端,一不会Unity而不会客户端,寄)
  7. 总体参加这几家一线厂的实习,给我的感觉是对实习生的要求不像往年对实习生的要求了,腾讯看到一篇面经,ACM牌佬四面oc,四轮面试加起来问了快100个问题,让我觉得大受震撼
  8. 一种流行的说法,疫情三年对于游戏行业反而是红利,23年是游戏行业红利褪去的一年,叠加版号危机大背景,纵使今年开始发了,资本市场对于游戏工业普遍是不看好的,从而游戏厂商更倾向于维护现有项目而不敢新开项目,只有头部厂商有资格上新

腾讯IEG - 图形渲染研究型实习生

背景

背景:22年7月,此时学了两个多月杂学,没有系统看C++;看了一些图形学网课,但是很多细节没有深入去想,比如shadowmap的过程,我在101网课里跟着刷妙啊,觉得自己会了,但是因为没有上手实践,面试官问到如何用深度纹理与实际shading point形成映射我就答不出了

一面内容

  • 经典八股 C++和C#的区别? C#没有指针,如何管理内存? 讲讲看List容器和Vector容器的差别? new 的用法,一个new的对象内存如果不回收会怎样? 智能指针了解如何? public,private,protected各自的权限范围,有没有例外(友元) map的底层? 红黑树? 虚函数、虚表? 32位浮点数的结构? struct 和 class的区别? 用过哪些设计模式?

  • 图形学 有无实时渲染项目经历 Unity Shader里面顶点着色器和像素着色器的输入输出分别是? 像素着色器的输出除了颜色还有什么? z值的作用? shadowmap的过程?如何用UV计算光源出发形成的深度对应哪个实际点?

结果与反思

学的太差了,基本属于是没有参加选拔的资格,项目是现凑的,简历是吹牛的,面试是爆炸的 但是勇敢地去参加面试确实让我学到了很多东西,我抓紧机会问技术面老师我的问题在哪,我后面应该怎么调整,她建议我把一些基础搞搞清楚,然后做一些实时渲染项目

完美世界 - 游戏引擎研发工程师实习

背景

投的所有公司里完美是回复最快的,3.10写了申请,发过去半个小时就发来了笔试邀请,当天就考 我选的这个方向看起来是引擎向,但是我做了一下笔试认为和我想做的方向是比较接近的,并没有问引擎架构、unity/ue使用这些知识,当中60%都是图形学和渲染知识,剩下30%是和图形编程密切相关的C++基础,并没有铺天盖地乱问八股,我认为试卷考察的知识点和我所学的非常匹配,因此重燃了一段时间的自信

笔试内容

笔试内容只能凭回忆说一下了,题型是选择题+问答题,重点聊一下问答题把,六道题60分

  1. 简述两个容器的原理和易错点, 比较简单
  2. malloc和new的区别 这题答得也不太好,其实是八股老熟人了
  3. 布林冯模型原理
  4. 根据摄像机信息手写view矩阵 这个我真不该错的,我记不得旋转矩阵的结论了,实际编程都是直接用lookat,当时手推没推出来,按理说真的,但凡云过一两节games101的也不至于写不出来,但是我后来学了其他的这些基础真的没怎么看
  5. 根据model矩阵推算平移旋转和缩放 后来回忆的时候感觉这题怪怪的,是不是我读题出了问题,我不太理解从model当中分离出这仨有什么意义,但是也不能否认,平移旋转和缩放矩阵在数型上肯定是有特征的,他问了十有八九就是能分开的
  6. 忘了

考完试第一反应是不错,终于有一张试卷和自己知识比较匹配了,之前面了一些岗都是没搞清楚游戏岗位的侧重点,重点问系统原理和C++;但是总体上答得还是不太行,两道大题明确没写出来,其他题也有一些细节没说好,就,这个试卷真的很简单,如果这些东西都答不好真就有点说不过去了,比较自责

一面内容

笔试完了感觉还行,我等,等到第三周感觉自己已经寄了,结果3/30接到北京电话(求职季真的不敢不接电话),果然是完美,你还记得我啊完美,约了第二天一面 一面非常短:

  1. 说说你软光栅项目的过程,能不能通过移植shader改效果(我说我两个shader都是C++编码成一个函数实现的,没有实现shaderprogram的那种过程)
  2. 你写了IBL,讲讲你IBL的输入是什么
  3. IBL的光照输入是怎样的
  4. 镜面反射部分又是怎么算的
  5. 你写了shadowmap,说说原理
  6. onepass的结果怎么和twopass对应的
  7. 在shadowmap实现期间,比如背面剔除,openGL使用了哪些gl状态?(这个我直接被问懵,平时一般openGL程序里的状态配置都是抄过来就完事儿了,具体几个状态我真的记不得了)
  8. 继续追问alphatest等几个过程中的gl状态(答不出来)
  9. 什么是延时渲染?

到这里面试大概也就问了四五个问题,这个时候如果是腾讯的一面还没开始问项目呢,结果面试官这个时候来了这样一段对话: 面试官:行,我知道了,你做过UE吗 我:UE自己玩过,说不上会用,Unity接触更多一点 面试官,哦,我们这主要是做一些UE源码的更改工作啊 我:啊,这, 面试官:行吧,我了解完了,那你回去等HR通知吧

回来以后我对这番对话反反复复地揣摩,老师到底是什么意思?他是说我的技术栈和岗位不匹配,HR会发感谢信的,还是说虽然你技术栈不行,但是我看你还行,你等HR通知你二面或者HR面吧

百思不得其解,其实完美这个岗位的招聘要求是没有写引擎经历需求的,只是说了工作内容是搞引擎,这也正是我所看中的,所以才来投递,因为引擎学起来又多又杂,跟着网课看内容太长且缺乏动手反馈,自己琢磨又难以形成体系知识,我更希望能让图形学知识和写过shader的经历发挥作用。

结果与反思

4.10 通知没有过一面 完美全程的流程并不慢,HR老师比较尽责,回答了很多问题,我也很满意其在流程上和笔试命题上的安排;

但是完美的技术面也是给我造成最大心理阴影的。我在等一面结果期间看到了问的很简单的完美客户端oc帖子,也碰到了oc腾讯引擎岗的同学,这些分享让我看到了希望的曙光,我觉得自己学的东西也很多,也许找到暑期实习是有指望的。然而最后还是通知我一面挂了,我心有不甘,请HR帮我联系一下面试官,给我一些问题和建议,面试官的回复是:“距离能实现渲染全过程有一定差距”。

这个回复再一次对我造成了巨大的打击。我觉得如果是“缺乏UE实践经历”,我或许还能比较坦然地接受,并且在接下来五个月努力学习UE来弥补自身差距,而这里认为我不能实践渲染全过程,是让我很失望的一个评价。也许是面试官问我软渲器项目时,我没听懂他的问题,他问能不能通过修改着色器代码改变显示效果,我说我的软渲器里着色器是C++语言的函数,并不是编译shader。软渲器经历的时间也有点久了,并没有展示出其亮点,甚至没能成功把话题引导到渲染管线上。

腾讯IEG - 游戏引擎开发方向/客户端开发实习生

背景

不知道为什么鹅收到申请之后立马给我回了个综合素质测评的链接,我做了一下,大多数都是职场价值选择,逻辑思辨和智力题,做的头晕,据说是随便写,不太考察得分(可能主要用于为海投增加一些成本) 3/10投简历,之后到3/21收到电话面试通知,约了3/24电话面

这里电话面碰到一个状况,我投的是游戏引擎开发方向实习生,发来的面试邀请是客户端开发实习生,我碰到这个情况是很紧张的,立刻想起了许多剧本(看的面经多了,哭惨的确实很多),害怕遭遇kpi面,一直很紧张

我并不是第一次参加腾讯的面试,22年暑假的时候有一个腾讯研究性实习生的面试,我当时答得简直是烂穿了全程拷打,但是我也因此能稍微知道腾讯会问一些什么,一般会用多一轮面试来考察一些基础,把C++,数据结构这方面的经典bg考一考

3/24参加了电话一面,感觉还是比较基础的,有一些问题没回答好;

一面内容

  • C++
  1. C++多态?
  2. virtual关键字?
  3. virtual的函数如何确定执行哪个版本?(这里我也说的不好,其实设计virtual这个关键字,父类的virtual函数是没有功能的)
  4. 虚表是什么,什么功能(干,复盘时候发现全说反了,而且虚表里父类版本已经被覆盖掉了,我简直在说胡话,C++内存布局真的得好好补一补了)
  5. C++对象内存布局?堆和栈?
  6. 虚表里存的是什么,存在哪里?(代码区这个概念说的不好)
  7. new的时候发生什么
  8. 动态内存管理的手段
  9. 说说allocator和vector如何管理动态内存
  10. allocator为什么比new/delete管理好(没答出来)
  11. 讲讲智能指针的底层
  12. refcount为什么要放在动态内存里
  13. shared_ptr线程不安全问题,如何保证多个shared_ptr的读写安全
  14. 除了mutex,还有更高效的方法吗(学的很差对不起对不起我真不知道有什么其他方法了大概提了一句读者写者算法)
  • 现场算法
  1. 如何用两个栈实现一个队列(这个也挺简单的,但是我撕了快五分钟,有点紧张,唉)
  • 图形学
  1. 软光栅项目的输入和输出是什么,过程(光栅生成讲的不好,从三角形怎么到片元这块讲的很烂)
  2. 果然发现我光栅讲的不好,追问我从顶点的坐标怎么进一步插值给像素并决定画给哪个像素的
  3. 从顶点到屏幕坐标的过程?
  4. 法线矩阵?
  5. 不透明和半透明物体的绘制?
  6. (既然你写了)IBL的输入?
  7. IBL的过程?
  8. 环境贴图?
  9. 为什么要把环境贴图mipmap?
  10. 环境贴图的mipmap的每一级是怎么生成的

总结: 老师比较不满的主要是有几次我在用库和工具回避问题,比如view和projection是怎么算的我说glm::lookAt + glm::perspective、然后mipmap我说是openGL做好了的不用我们做,其实老师是想要考察原理而不想听我说这个,我完全可以说一下虽然可以调库但我可以说一下原理 有几个问题有瑕疵,混叠其实没学到所以寄了,然后光栅化过程说的很烂,绕的面试官感觉有点丢失耐心

笔试内容

随后又接到腾讯的通知,让我去补一个笔试,我是初筛-行测-一面-笔试,腾讯的笔试题目很不错,见我在经验贴里订正的内容:github我的笔试订正

这次笔试A2/5,加之后来回忆起来面试有几个问题也不好,感觉寄了

一面和笔试后又陷入了等待,我隐约觉得自己要寄了,腾讯的面试回答答了几个缺陷,而且我在群里看到有人一面结束立刻接电话说接着二面,第二天又通知隔日三面,而我等了十来天还是没有后续的通知。

挂的反思

挂在一面/笔试之后,我反思了一下,自己项目最亮点的是用openGL实现了IBL,但是IBL的细节居然没讲清楚,只是抱着IBL specular项当中的cos-roughness预计算贴图大讲特讲,这非常糟糕。前面答的漂亮的C++面经,其实在项目经历面前没什么含金量,而我没答好IBL,这直接杀死了我的一面。

加之我投腾讯投的有点迟,我参加笔试的时候一轮的oc都已经拿到一周了,总结为寄

吉比特/雷霆游戏 - 游戏研发实习生

背景

3/7 投递,3/22回复说进了笔试,但是笔试时间另行通知;3/31通知4/2晚上笔试,不接受时间调整,至此过了快一个月了。

笔试内容

这里聊一下笔试内容,笔试做的我有点不开心,简单是确实简单,但是完全是计算机基础知识+智力题,做到选择题最后几题甚至开始甲乙丙是山东策划福建程序湖北测试的逻辑推理题,又花时间分又少;填空题后面也是巨长无比的代码,一段代码里面四五个函数,每个函数三四个参数,堆在一起看得人想吐,而且点名批评第五题程序阅读题,命题人似乎生怕不能在一道题里把C++的所有运算符全用上,各种下标符套函数套位运算,非常浪费时间,别跟我说这是阅读代码的能力,这很显然是一个没有实际意义的教学代码,我本科C语言期末考试老师出这种题也被大家骂惨了

其实也不该抱怨,毕竟这个考试可能就想筛选计算机基础知识学得不错的本科生,但是题量又大、时间又短,20条选择6个程序阅读2个编程只给90分钟,这就非常难受了,心理上知道这个试卷很rz但是自己又做不了多好

感觉吉比特的笔试和其他家确实有比较大的差异,不是说今年巨卷吗,不是海笔海筛吗,同为海笔,我宁愿是四道编码题A0条技不如人输给acm金牌哥啊。回想起来感觉自己还能做得更好,心态上怎样从来不会左右最终的结果,反思一下整个春招实习求职已经过半,还是没有一家比较有希望,不禁一阵凄凉

雷火伏羲精英实习 - 游戏研发工程师(客户端引擎方向)

背景

3/13投递,今天4/11,还是没有回复,官网进度也是等待筛选结果;但是发现4月1号起雷火又更新了一些实习岗位,我又补充投了雷火的客户端岗。面到这个时候,手头的机会基本全都凋零了 4/13 发邮件约了客户端的 4/22笔试 4/22 笔试也不理想,当初为了逃避刷算法跑来学渲染,果然遭报应了 笔试里面算亵渎给我整吐了,当初刷视频刷到过某老师讲算亵渎,刷到过戴佳伟对的对的对的不对不对不对,当一个梗开始攻击你,你会发现你只会玩梗

春季实习求职心得

在之前的半年里,除了学校毕业课题、实验室任务、开题等不得不花很长时间应对的挑战,我剩余的能够支配的约四个月时间全部用来学习了图形开发,用了将近100小时系统学习了Learn OpenGL这个专业性与学习难度都非常适合的教程,做了一些自己当时很满意的效果。虽然也在刷C++算法,但是现在大厂的原创题确实很难,还有很长的路要走 总结几个心得:

  1. 补充认知。游戏技术岗这块,我发现我自己是这样的, 群里很多人也是这样的:对各个厂各个岗位认知很少,看了几个面经就觉得只要学了xx就行,甚至有时候会看到一些懂哥的暴论:某某岗进去现学都行,啥都不用之类。点击就送的神话在2023年还是听听笑笑罢了。我没有思考过我进厂做什么,做这件事需要的核心技能是什么。推荐一个TA职业规划经验:技术美术职业概述及入坑指南Kerry佬。一句话:任何时候,如果你觉得自己这个岗位这个方向已经找不到东西学了,那么很可能你已经陷入了重大的错误中了。 我之前过于迷信互娱图形面经,觉得自己学完了openGL,又看了一批图形面经,和这个面经作者比相差无几,甚至他是秋招我是实习,那我已经无敌了。这种想法真的很搞笑。
  2. 不要因补充认知感到担忧和焦虑。即便看三四个小时经验贴,搜一两天游戏入职员工的分享,也不要感觉焦虑。就像考研不调研就冲进去考一样,求职如果不能知晓学什么更重要,注定会浪费大量时间。补充认知 before 补充知识。如果真的会焦虑,也可以把资讯调研和技能学习穿插起来进行。
  3. 反复锤炼自己的项目,千万不要有在项目中的细节没答出来。我的openGL确确实实是我自己手写的,但是其中一些openGL状态的配置是我抄书的,没有记住,完美面试中吃了大亏;IBL作为图形项目的最大亮点,在腾讯面试中却没有说清楚,这非常糟糕。
  4. 谨防基础知识不扎实,对于渲染管线了解不全面。很巧的是完美和腾讯的面试官都问到了两个知识盲点:透明和半透物体的渲染/alpha-test; 还有延迟渲染。两个面试官,这两个问题都问了,我都没有回答好。这中间我有很大的责任:腾讯面试结束后我自我感觉良好,对于alpha-test和混叠没有答上来根本没有去订正补缺,而是忙着刷力扣准备算法笔试;同时由于只看openGL,openGL对于延迟渲染这个话题的介绍其实讲到了early-Z这个比较接近的topic,而延迟渲染确实没有系统介绍。openGL管线是属于前向渲染的。虽然我说几场面试都比较基础,不难,但是事实上如果有两三个关键问题没有答出来,这次面试是99%寄了——基础搞不懂是没有借口的。虚表内容说不清,透明物体渲染说不清,项目细节说不清,哪怕剩下来20个问题都答出来了,你告诉我面试官凭什么要你呢。
  5. 心态非常重要。我在整个招聘的两个月期间,一会儿自信到飞起觉得自己稳了,一会儿一场面挂了心如死灰感觉学什么也没用了。这让我想起考研中我也是个心态非常浮动的选手,经常因为旁边人一句话心态爆炸。学任何东西都不是一天三天十天的事儿,连续干很长时间才能在这个领域从0到1实现突破。

下面打算学什么

  1. 最近认识到,游戏是一个对性能天然有着偏执追求的行业。我以前觉得C++面经都是真正的八股文,为了考人而考人,现在我觉得我当初大错特错了。C++面经,尤其是对于内存布局、stl库的底层的了解是非常重要的,如果不了解这些内容,对于系统的性能优化几乎是无从做起的。因此后面会进一步精进C++,《C++ Primer》之后打算学习《深度探索C++对象模型》
  2. 打磨项目,目前最倾向的两个方向一是重构一下软渲器,自己实现一个延时渲染的、能够有效处理多光源复杂场景的实时渲染项目;二是做一个引擎内嵌,仿照上面TA经验贴中刷权重的工具
  3. 广刷面经,多补基础,绝不再允许自己秋招时出现诸如延时渲染这种关键概念都不知道的情况
  4. 《游戏引擎架构》是一本非常badass的书,颇有点一书讲完游戏引擎的意思,甚至还附带了包括C++ best practice、渲染引擎代码的知识,打算除了音频等专精章节全书通读一下
#23届春招[话题]#
全部评论
...同岗位,同经历,只能说真的很真实 学计算机的不想搞CPU算法+对游戏感兴趣->来学图形学->发现是个巨坑->慢慢学管线学技术细节学引擎->发现东西永远学不完,从一个技术贴链接到另一个技术贴,再继续链接下去,以至于最开始想学的东西是什么都忘了->与时间赛跑,学是学不完的,先投再说->看面经发现自己什么都不会->做笔试被cpu算法拷打->面试被技术深度和技术细节拷打->刷b站,知乎发现比自己厉害的人都早已填满hc->万念俱灰,怀疑自己到底适不适合这个行业和职位->被捞面试和笔试,重燃侥幸心理->循环
32 回复
分享
发布于 2023-04-24 16:26 重庆
楼主强👍完整的看完了全文,游戏引擎和渲染是我至今都不知道有没有资格能力接触的方向,只能是目前往门槛低一点的客户端发展,慢慢接触引擎知识,一年多能学这么多领域做这么多实践,由衷敬佩
6 回复
分享
发布于 2023-04-24 15:45 广东
联想
校招火热招聘中
官网直投
楼主的反省能力很强啊,看你的凉经也让我收获良多。谢谢你的分享。
5 回复
分享
发布于 2023-05-08 03:30 北京
我也是面了腾讯,才知道cpp很多东西根本没掌握,被吊锤
3 回复
分享
发布于 2023-04-24 13:51 四川
其实真要做图形学研究,建模-仿真-渲染这三个图形学图形学方向都得涉猎,把知识面扩宽,知识面深入的话,就是数学、物理、C++、操作系统等等的底层知识了
3 回复
分享
发布于 2023-04-25 13:33 北京
很透彻理性的自省,985✌一定会有好的结果的!
3 回复
分享
发布于 2023-04-25 14:13 上海
感同身受,我最后悔的事情就是当时大二暑假去学dx12,当时我还在腾讯的公开课中,还有个大作业,整天看dx12根本没去管这个大作业,后来也因为这个丢掉了一次天美的面试机会,主要是龙书上的代码你根本不好理解,学了两个月相当于啥都没学,大伙想学api最好还是听楼主的去看learnopengl,龙书真不行,对新手一点都不友好
3 回复
分享
发布于 2023-04-26 08:08 重庆
只能说楼主准备的真的很不充分吧,我也是24届的,大概一年多前开始转码,985本硕保研。分享一下目前掌握的知识叭:c++ primer plus、effective c++、effective modern c++、101、202、104、自己写软渲染、软光栅、OpenGL蓝宝书(学了一半多)、typescript、23种设计模式及代码重构、unity方面(去年腾讯非应届暑期实习)、UE用蓝图做了个fps的demo、数学物理方面高中物竞省一数竞省二大学也一直物理数学保持较高水平、深度学习和机器学习都有较深的理解研究生毕设开的cv。游戏或者说图形学行业真的很卷,看楼主过去一年学的东西,这样的学习能力在现在的大环境下真的不建议走游戏,或者楼主真的认真卷一卷吧。目前oc的腾讯游开、蚂蚁图形学算法,网易引擎二面挂了,客户端约面拒了,其他的也没怎么投了。哦还有个达摩院ue引擎开发在走流程,但估计是凉了
3 回复
分享
发布于 2023-05-06 22:09 北京
老哥,感谢你这篇感想和面经,很有意义。但是说实话,unity客户端其实也可以投的,c++是根本,渲染方面的知识也会给你加分,你需要的只是多做一个demo罢了。
2 回复
分享
发布于 2023-04-24 14:40 新加坡
感谢分享
1 回复
分享
发布于 2023-04-24 15:42 江苏
我也不知道今年是咋回事,感觉各家都倾向于要有相关经验的,不过感觉你已经很棒了,只是差了点运气,我这种废物今年倒是运气拉满😪
1 回复
分享
发布于 2023-04-24 23:41 上海
楼主现在是什么打算,全力冲刺秋招了吗。经历和楼主太像了
1 回复
分享
发布于 2023-04-25 16:47 江苏
感谢分享,(歪个题楼主文笔也好好啊,追更)
1 回复
分享
发布于 2023-04-25 18:43 江苏
今年太难了,我米哈游hr面完排序挂估计,然后其他的也基本是最后一面挂。现在就只有一个畅游的引擎岗。
1 回复
分享
发布于 2023-04-26 16:52 上海
面试官问的环境贴图为什么要mipmap其实并不是在考你mipmap,而是在考察IBL,因为场景中的对象会有很多粗糙度,你需要对0-1区间内的粗糙度分层级进行预计算,例如生成5张对应不同粗糙度α的prefilter map,因为不不同层级的prefilter所需要的像素数不一样,越粗糙就越模糊,那么模糊就不用浪费内存去存了,刚好可以用mipmap进行存储,并且用mipmap能够很好在texturesample阶段去进行三线性插值。这是为什么需要对环境贴图进行mipmap。并且初始的环境贴图我们最好先先转换成cubemap来用。
1 回复
分享
发布于 2023-05-10 17:21 四川
楼主的执行力很强,相信会有好的结果的,加油
点赞 回复
分享
发布于 2023-04-24 14:17 上海
阿里刚开始春招,欢迎同学踊跃报名。查看这个帖子 查看部门介绍和扫码线上投递简历。 https://www.nowcoder.com/discuss/474899666987909120
点赞 回复
分享
发布于 2023-04-25 11:58 浙江
大佬加油
点赞 回复
分享
发布于 2023-04-25 14:33 浙江
哎,感觉我得从cpp润了,有这时间学java,都可能进大厂了
点赞 回复
分享
发布于 2023-04-25 16:36 北京
大佬,考虑米哈游不
点赞 回复
分享
发布于 2023-04-26 12:40 上海

相关推荐

头像
04-11 19:06
已编辑
门头沟学院 材料类
包含了腾讯一二面,搜狐一面,雷火一二面,快手(游戏图形学)一二面等等内容,只记录一部分有意思的问题,图形学八股和cpp八股不在此处。我自己项目做的比较细,我不是实现了一个引擎而是实现了一些图形算法优化,这导致面试官都会对优化细节,实现细节细细拷问,同时夹杂一些面试官自己的思考(你是这么实现的,但我觉得你这样会有blabla问题 or 你是这么实现的,你遇到某某问题怎么办,能处理吗能优化吗)。延迟管线中需要处理复杂材质和光照模型怎么办?比如这一部分物体是某种shading model而另一部分物体是另一种model?csm如何处理每级之间分辨率突变的情况?csm每渲染一帧都要渲染4 or 8张阴影图吗?这样性能开销过大,怎么解决?(帧间)遮挡剔除的实现算法介绍一些?AA算法,RTGI算法介绍一些?原神是如何处理实时全局光照的你了解吗,均匀的在场景内布置光照探针如何应付大场景渲染?你是如何分析性能瓶颈,统计性能情况并进行优化的,怎么看出你实现了优化?bsdf和brdf的区别?各自的应用场景?介绍一些gpu driven的方法?半透物体如何在延迟管线中渲染(此题有坑)?(忘了,想起来再更)总结:一半的面试官会提到原神,建议去好好看看原神的图形算法实现(好像某乎上有大佬介绍)。我自己项目中大量使用compute shader但从未被问到(所以引擎岗不会太侧重编写shader的细节)。面试官还都特别喜欢问场景题,只能说纯背八股做项目是不行的,还是要多看别人文章,自己多思考总结举一反三。还有,一定要学一下renderdoc!这也是基础! #牛客解忧铺# #我的成功项目解析# #如何判断面试是否凉了#
点赞 评论 收藏
转发
99 415 评论
分享
牛客网
牛客企业服务