快手 游戏图形学工程师 面经

一面
先做题:链表重排,索引为奇数的在前一半,索引为偶数的在后一半

自我介绍
常规c++八股:
讲讲多态(静态:模板/重载,动态多态:虚继承,虚函数)
虚函数表存储位置,函数指针如何访问虚函数表
类B,类C都继承类A,且各自重写了A的虚函数,请问运行时有几个虚函数表
常用哪些STL容器?(vector,deque,priority_queue,set/map,unordered_set/map)
讲讲vector的底层存储形式,如何扩容
讲讲优先队列的底层存储形式
(引申)如何在一组数上构造大顶堆,如何向大顶堆插入元素
讲讲堆/栈内存布局,应用范围
了解智能指针吗(讲了c++11后有三种,各自的应用场合,解决了什么问题)
讲讲extern,static,const关键字,如何使用;指针指向const变量和const指针指向变量分别怎么写;变量可以声明为extern static吗

然后是图形学八股
详细讲讲gpu渲染管线
看你做过离线光线追踪的项目,讲讲kajiya渲染方程,(引申)渲染方程中brdf项的物理含义是什么(这里当时有点忘了,答的不好,说成是入射方向到出射方向的radiance比值,其实应该是radiance/irradiance比值,感兴趣的可以自己去搜搜)
讲讲实时渲染常用的brdf(我就说了cook Torrence pbr),diffuse能不能用lambert以外的函数(忘了,后来查了有oren nayar之类的微表面模型)

二面
给20分钟做题:链表k个一组翻转,lc原题
主要问项目,面试官很认真的听了技术细节,会从工程实际落地的角度问你遇到哪些难点,性能/表现力提升在哪,有没有难处理的corner case
八股问题有点忘了,就记得问了一个pbr(还是答cook torrence),追问只有diffuse和specular项吗?
答:可扩展为Disney brdf模型,包括sheen,clearcoat等项,看面试官似乎比较满意。(其实本来还想说sss,毛发之类的,但我对此了解甚少,怕再问一句就会爆炸,遂作罢)

hr面比较常规

9月初oc
全部评论
补充:又想到二面的几个问题 1.实时渲染IBL实现(diffuse预计算,specular split sum预计算),能否优化(针对移动端可以用球谐替代diffuse预计算贴图采样,brdf lut采样可以用近似函数替代) 2.MMO单核服务器如何支持上万用户同时访问(真不知道)
1 回复 分享
发布于 2023-09-13 12:00 香港
大佬,二面的手撕题你ac了吗
1 回复 分享
发布于 2023-09-10 21:43 江西
佬想问下哪个base,感觉我和你面试问的挺像的,不知道是不是同一个base,我是快手广州的
1 回复 分享
发布于 2023-09-10 16:53 浙江
大佬我想问一下图形学八股是从哪里找的
点赞 回复 分享
发布于 2024-05-29 17:52 吉林
大佬最后去快手了吗
点赞 回复 分享
发布于 2023-11-14 15:18 四川
感谢分享 我也投的这个岗位 另外问下老哥你笔试和面试中间隔了多长时间啊
点赞 回复 分享
发布于 2023-09-23 18:34 陕西
羡慕oc同个岗base上海的还在泡
点赞 回复 分享
发布于 2023-09-14 16:44 广东

相关推荐

05-13 15:58
已编辑
复旦大学 Unity3D客户端
背景:top3本,文科专业,23年毕业生,零游戏开发相关实习经历,无工作经验。毕业后23年下半年考研无果,24年下半年开始学习Unity游戏客户端开发的相关知识,如C++、C#、数据结构、算法、Unity引擎、图形学基础等。写了两个小项目,一个是很简单的光栅化软渲染器,另外一个是Unity开发的一个回合制RPG游戏框架。最近半个月开始找工,海投了一百多份简历,中大厂没有回应(不过也算意料之中),有回应的都是外包或者小厂小工作室。目前只有一个网易外包游戏客户端开发岗位过了,项目我觉得还可以,过两天定offer。现在很纠结和犹豫,不知道要不要接。一方面我清楚外包的各种不好,另一方面我觉得以我现在的情况,继续投简历一两个月下去,也很难找到更好的机会。为了之后更好发展的话,不知道网易外包是否算是目前的一个合理选择,或者说是,混经验的一个跳板。毕竟我零经验非科班的转行往届生,路确实难走,现在社招想要好的机会感觉无异于奢望。因此想听听大家的想法,希望大家可以给点建议,指个路。--------------------------------------------在这里顺便把面经贴出来吧,也不知道是否帮到有需要的朋友:一面(1h10min):1.自我介绍2.C++如何实现多态3.虚函数和纯虚函数,有什么特点4.C++和C#常见容器,C++中vector和list的区别,map和unordered_map底层实现5.C#垃圾回收6.多线程和进程7.IP地址,IPV4和IPV6,8.TCP和UDP,三次握手和四次挥手9.野指针10.智能指针,介绍shared_ptr11.设计模式,说了单例模式、观察者模式、对象池,然后问到MVC12.口撕LRU13.平时常玩的游戏14.游戏设置中有很多设置选项,玩家进行多个勾选、设置等修改操作,如果不想修改了,怎么实现?(我也不知道,就瞎说了个用栈记录修改选项操作,取消保存时候就弹出、恢复)15.ECS框架(不了解)16.详细说下我游戏项目的技能和Buff系统,cd怎么实现的,还有范围指示器的实现17.树的深度优先遍历和广度优先遍历18.走到n阶台阶的方法,简单说一下就行,dp方法,时间复杂度19.写了一道简单的算法题,已知n天股票价格,买卖各一次,最大利润多少。贪心、dp都行20.反问:我哪里需要提升?接触到的工作内容?(商业化功能,前期做些UI、3D模块) 工作环境?二面(1h):1.自我介绍,聊了聊为什么不想进入媒体行业,中间考研(包括半年时间准备从零跨考408,最后专业课复习不完,就又报名跨考了法硕,复试没过未果)、自学的经历2.时间复杂度和空间复杂度,举例说了说3.快排具体流程(只记得双路快排了,所以说了双路快排),时间复杂度,为什么是O(nlogn)4.最近打的游戏,问如何评价游戏性能优化做得好不好(我也不清楚,随便说了说,帧率、加载速度、DrawCall、Batches),举例说相关游戏设置选项,然后说了TAA和SMAA,问原理5.位运算6.线程和协程7.一道和专业关系不大,比较发散的脑力题8.同样和专业关系不大,问一个小团队中午点外卖,线下询问收集大家要点什么一起点,如果做一个内部小工具或者程序来改善流程,有什么思路去实现?9.leetcode41.缺失的第一个正数,问写过没,说写过,可以哈希、排序,忘记原地哈希的解法了。然后让写下排序解法10.反问:项目技术(系统向,用Python多,偏UI和模型),最快多久可以到岗11.最后又问了职业规划(继续深入游戏客户端,想学点shader和渲染)hr面:1.自我介绍,之前经历2.因为做了个Unity回合制RPG游戏的小项目,问为什么做这个?过程中遇到最难的点?怎么解决的?以后有没有要改进迭代的地方?3.找工作考虑什么?4.职业规划?5.是否顾虑外包?6.加班,是否接受工作强度?7.手上其他流程或offer?8.偏好网游还是单机?9.期望薪资10.家庭背景11.最快到岗时间12.反问:项目团队规模等等----5.13更新已拒打算再多找找,后续如果还有面经可能会再更吧
点赞 评论 收藏
分享
评论
9
94
分享

创作者周榜

更多
牛客网
牛客企业服务