笔面试记录
小红书¶
技术二面(巴克)¶
实时渲染中的复杂流程¶
- 场景中有一个镜子,要如何渲染
- 如何绘制一个圆
Shader Toy¶
实时 GI 与 Unity¶
DCC 工具¶
学习资料¶
- OpenGL 蓝宝书
网易雷火¶
- 模拟(派遣)
- 模拟()
- 贴图存储
完美世界¶
笔试题目¶
选择题¶
类的析构函数¶
32位单精度浮点数的有效数字位数(转换为十进制)¶
- 单精度浮点数使用32位来存储数字,其中1位用于符号位(表示正数或负数),8位用于指数,剩下的23位用于小数部分(也称为尾数)。由于这些位数的限制和特定规则的舍入,浮点数的精度是有限的。
例如,如果我们将0.1转换为32位单精度浮点数,它的二进制表示大致如下:0 01111011 10011001100110011001101。其中第一位是符号位(0表示正数),接下来的8位是指数,使用偏置表示法(在这种情况下是127),在二进制中表示为01111011。剩下的23位是尾数,它们代表十进制小数的二进制表示。在此示例中,尾数为10011001100110011001101。
考虑到这种32位二进制表示,可以具有7到8位的有效数字(也称为精度)。这是因为浮点数的精确度受限于指数和尾数的大小和格式。有限的尾数位限制了浮点数的分辨率和精度,而指数位限制了可以表示的数字的范围。这两个限制共同导致了一个表示数字的有限精度范围。
因此,在实际计算中,我们通常要注意舍入误差和精度损失的问题,以确保我们的计算结果在可接受的范围内(或在所需的精度内) 。
int* pa[5]
的含义¶
引用与指针的异同点¶
宏的特点(比如,宏是否进行类型检查);宏与函数的异同点¶
四个平面最多可以将三维空间划分成几部分¶
二叉树遍历(DFS,NLR,BFS,LRN)¶
short a[10]={};
sizeof(a)
的结果¶
哪些情况下不会调用构造函数¶
new
和 malloc
的异同点¶
以下程序是否一样?¶
int b;
(1)const int *a=&b;
(2)int const *a=&b;
(3)int* const a=&b;
友元函数的重载问题¶
多线程调用与加锁的问题¶
class不同构造方法的效率¶
简答题¶
什么时候会使用引用计数?需要注意什么?¶
- 智能指针与引用计数
已知某点的法向量 N 和光照方向 L,求反射向量 R¶
简述一下shadow map的原理和过程¶
已知fovY,aspect ratio,Znear,Zfar,推导一下透视投影矩阵(左手系)¶
搜狐畅游¶
1、判断点是否在三角形内 2、已知相机在世界空间中的坐标、目标点坐标和世界空间中UP向量(0,1,0),求MVP矩阵中的V 3、Shader中的if else语句对性能有什么影响,请从硬件层面描述 4、GPU Instancing、Static Batch的适用情况及各自优缺点,若了解Unity SRP Batcher技术请描述一下 5、描述一下遮挡剔除的作用,以及你知道的相关技术 6、描述一下Shadow Mapping的实现过程,PCF和PCSS有什么区别 7、描述一下SSR实现的大致过程,以及你知道的相关优化方法 8、基于Cook-Torrance的光照模型中,镜面反射部分的几何遮挡项G与什么向量计算有关,请描述一下IBL的计算过程 9、延迟渲染中(不是基于tile的延迟),Point Light和Spot Light是如何处理的,描述一下光照计算过程;Forward+或TBDS管线中,lightlist的生成有哪些方法
欧莱雅¶
网申¶
问题一¶
请回忆一次你没有达成理想结果,但不断尝试并取得进步的经历。请详细描述-你当时想要达成什么目标?-面对一次次的失败,你做了哪些分析和思考?-面对失败的原因,你是如何调整和克服的?-最后结果如何?你有什么反思?
想要达成的目标:本科毕业论文可以投稿IEEE VR学术会议。 分析和思考&结果与反思:失败一,在毕业论文开题时,我的构思是设计并实现可以在移动设备上实时运行的室内光照估计算法与物体渲染系统。但在调研和实现过程中,主要以CV领域的光照估计研究为主,并未意识到同一个任务不同领域的研究者所关注的、重点解决的问题很可能是不同的。对于光照估计来说,CV研究者与AR研究者有交叉,但也有不同。这导致我最终实现的算法,无法满足AR的基本要求—可交互性。失败二,在完成毕设项目开发的过程中,过分纠结局部的优化,造成了许多不必要的时间浪费。导致最终未能顺利在截稿前完成。 反思:从这次失败中我也收获了很多,最主要的有两点:一是在做一件任务时,首要的是确定该任务的论域,对重要的问题和现有的情况做精确的掌握,磨刀不误砍柴工;二是在完成任务的过程中,应该秉承先完成框架,再重点突破的原则,从总体到局部,这样才能拳拳到肉,少做无用功。
问题二¶
请回忆你在学习或工作中是如何不断超越自己设定并达成有挑战性的目标的经历,请详细描述: -这个有挑战性的目标具体是什么?-你为什么想要不断超越自己?你为了完成目标做了什么? -最终的结果如何? -过程当中你收获到了什么(知识/技能/经验等)?
挑战性的目标:我认为我在学习或工作的过程中,在选择时,我始终倾向于去选择具有挑战性的选项。例如,在一周多内完成投影仪的手部交互算法实现与展示应用。 为什么&为了完成目标做了什么:在做具有挑战性的任务时,我会感觉非常兴奋,非常有动力,而且一旦目标达成时,会获得巨大的成就感,即使最终不能如愿达成,复盘时也会有沉甸甸的收获感。在完成手部投影交互项目时,我首先花了二天时间尽快调研和确定最最简化的可行方案,然后花了一天时间购买硬件,二天时间进行触控实现,二天时间完成投影追踪,最后二天进行调试和可视化,最终实现了可展示的初版。 收获:我收获了如何根据限定时间对任务进行分解,以最高效稳妥的方式达成的宝贵经验。
问题三¶
请回忆一次你的团队在合作上陷入了僵局的经历。请详细描述:在这个合作过程中,你遇到了什么僵局?面对这个僵局,你是如何理解的?-你具体做了什么来打破这个僵局并促进合作的达成? -最后取得的结果如何?
合作任务:在深光公司负责手部与投影交互的算法与应用开发时,当我独自完成第一版之后。同时,上级指派了两位前后端开发人员与一位算法实习生来支援项目开发,陷入了僵局:不知道下一步的算法迭代工作应该从何切入、如何分配。 如何理解:一方面,算法实现了约定的所有功能,但另一方面,算法存在着各类问题—计算性能问题、算法的鲁棒性问题、应用展示度问题等。对算法优化路径的不清晰,再加上对新来合作者技术栈的不了解,导致我一时间无法梳理出一个满意的合作方案。 打破僵局:首先,我梳理了算法目前存在的问题,尽快与上级展开讨论,确定算法优化方向和重点,即移动端性能与展示性;另外,找到组员了解了他们之前做过的项目;然后,根据讨论与调查结果,我自己先设计了优化的方案;之后,与组员讨论,修改完善方案;最后,与上级讨论敲定最终方案。 取得的结果:顺利完成项目迭代,得到甲方认可,项目还获挑战杯全国银奖。
问题四¶
新领域及目标:手部交互算法与系统设计。目标是在一周多内完成投影仪的手部交互算法实现与展示应用。 为什么&为了完成目标做了什么:在完成手部投影交互项目时,我首先花了二天时间尽快调研和确定最最简化的可行方案,然后花了一天时间购买硬件,二天时间进行触控实现,二天时间完成投影追踪,最后二天进行调试和可视化,最终实现了可展示的初版。 收获:我收获了如何根据限定时间对任务进行分解,以最高效稳妥的方式达成的宝贵经验。
问题五¶
合作任务:在深光公司负责手部与投影交互的算法与应用开发时,当我独自完成第一版之后。同时,上级指派了两位前后端开发人员与一位算法实习生来支援项目开发,合作进行下一步的算法迭代工作。 遇到的困难:一方面,算法实现了约定的所有功能,但另一方面,算法存在着各类问题—计算性能问题、算法的鲁棒性问题、应用展示度问题等。对算法优化路径的不清晰,再加上对新来合作者技术栈的不了解,导致我一时间无法梳理出一个满意的合作方案。 做出的努力:首先,我认为有效沟通的前提,是自己已经做了充分的思考和准备,因此我第一步是梳理了算法目前存在的问题,尽快与上级展开讨论,确定算法优化方向和重点,即移动端性能与展示性;其次,在与陌生人沟通时,首先找到组员了解了他们之前做过的项目,这是最直接的了解方式;然后,根据讨论与调查结果,我自己先设计了优化的方案;之后,再次与组员讨论交流,修改完善方案,以具体任务为引导进行交流,这是更容易深入的了解方式。 取得的结果:与陌生人通力合作顺利完成项目迭代,得到甲方认可,项目还获挑战杯全国银奖。
AI面试¶
中文问题¶
成就感的经历¶
- 举例1个最有成就感的经历,描述是什么让你最有成就感、你采取了什么行动、从中收获了什么
- 学校:
- 目标是,要求在半个月内完成实时的光照估计算法的实现与集成。
- 难度是,移动端系统对算法计算效率的要求比较高,现有深度学习算法可能不适用。
- 具体过程是,我首先将已复现的代码进行测试,快速确定基于网络的算法确实不适用。然后,我调研了传统的基于线性方法的光照估计方程,同时通过学长学姐和博客等手段向有经验的人进行请教,最终确定使用基于球谐变换的线性优化方法进行光照估计,实现了较好的结果。
- 收获是,如何快速地进行排除法,锁定核心问题,才能提高效率。同时,要多利用身边的资源,站在巨人的肩膀的看世界。
- 公司:
- 目标是,在一周多内完成投影仪的手部交互算法实现与展示应用。
- 难度是,对一个陌生的领域,两周内完成技术选型、算法实现与展示系统搭建。
- 具体过程是,在完成手部投影交互项目时,我首先花了二天时间尽快调研和确定最最简化的可行方案,然后花了一天时间购买硬件,二天时间进行触控实现,二天时间完成投影追踪,最后二天进行调试和可视化,最终实现了可展示的初版。
- 收获是,我收获了如何根据限定时间对任务进行分解,以最高效稳妥的方式达成的宝贵经验。
挫折和困难¶
你在xx公司遇到了什么挫折困难?你是如何调整去应对的?你有什么复盘和反思?
你在xx公司遇到什么不熟悉的任务?你通过了什么额外的努力去完成?具体做了什么?
举例1个你在陌生的工作领域的经历,描述你遇到的挑战有哪些、怎么取得突破的
- 同上。
合作的经历¶
- 请回忆一次你的团队在合作上陷入了僵局的经历。请详细描述:在这个合作过程中,你遇到了什么僵局?面对这个僵局,你是如何理解的?-你具体做了什么来打破这个僵局并促进合作的达成?-最后取得的结果如何?
- 学校:
- 公司:
- 合作任务:在深光公司负责手部与投影交互的算法与应用开发时,当我独自完成第一版之后。同时,上级指派了两位前后端开发人员与一位算法实习生来支援项目开发,合作进行下一步的算法迭代工作。 遇到的困难:对算法优化路径的不清晰,再加上对新来合作者技术栈的不了解,导致我一时间无法梳理出一个满意的合作方案。 做出的努力:首先,我认为有效沟通的前提,是自己已经做了充分的思考和准备,因此我第一步是梳理了算法目前存在的问题,尽快与上级展开讨论,确定算法优化方向和重点,即移动端性能与展示性;其次,在与陌生人沟通时,首先找到组员了解了他们之前做过的项目,这是最直接的了解方式;然后,根据讨论与调查结果,我自己先设计了优化的方案;之后,再次与组员讨论交流,修改完善方案,以具体任务为引导进行交流,这是更容易深入的了解方式。 取得的结果:与陌生人通力合作顺利完成项目迭代,得到甲方认可,项目还获挑战杯全国银奖。
英语问题¶
why This Position? why Loreal? Why You?
- Why this position? 一直以来我都对增强现实技术以及计算机视觉、图形学技术非常感兴趣,同时也一直致力于用增强现实的相关技术来提高我们的生活体验。如果可以将增强现实、光照估计的相关技术与虚拟试妆等场景结合起来,那将是一个很酷的事情。而我有兴趣、也有信心可以做好这一系列的事情。
I've always been fascinated by augmented reality, computer vision, and graphics technology, and using these to enhance our daily life experiences. It would be awesome to combine these technologies with virtual makeup trials using lighting estimation. I'm confident and interested in doing all of this.
- Why Loreal? Loreal公司是大型的跨国美妆公司。一方面,Loreal可以为我想进行的研究和创造提供充足的资源和启发;一方面,Loreal可以提供相关技术落地的真实的、广泛的应用场景。可以更好地实现我的价值追求,我也可以为公司做出切实的贡献。
L'Oréal is a big beauty company with the resources to support my research and inspire my creativity. They offer real-world applications for related technologies, allowing me to both pursue my goals and contribute to the company.
- Why You? 一方面,我在增强现实等相关的领域做过一些不错的工作,有一定的技术和经验的积累;另一方面,我具有良好的学习能力,判断力,抗压能力,对有挑战的任务有野心和热情。
I've done some impressive work in AR and related fields. Plus, I have excellent learning agility and judgment skills, can handle pressure well, and am ambitious and passionate about tackling challenging tasks. Also, I am empathy and resilience.