unity中国 引擎研发实习生面经

一面二面连着进行,一面面了45分钟,二面差不多一个小时,都问了项目,都撕了算法。
技术栈是c++/vulkan/glsl。
一面
简要介绍项目,然后通过屏幕共享展示代码,要求解释关键算法的代码,整个过程大概20多分钟。问完项目就是一些图形学基础知识:图形管线的基本过程,屏幕空间下的透视矫正插值,深度测试(没问early-z和late-z),pbr问了cook-torrance brdf,能量守恒,使用tbn矩阵计算法线。没问光线追踪和路径追逐、gi。最后十五分钟撕一道算法简单题:所有顶点出度最高为1的图寻找最长环。
二面
简要介绍项目,没有要求展示代码。重点解释项目参考对象,使用的设计模式(我弄了个代理来将资产导入为一个自定义的渲染场景森林),在性能提升上的亮点(bindless和image aliasing)。之后就是C++八股:智能指针:weak_ptr的弱引用和shared_ptr配合使用;C++提高性能方法:我答了个用内联减少调用函数的开销,改变数组访问顺序提高缓存命中率,在类内将长度较小成员安排在前面减少内存对齐产生的气泡。操作系统的虚拟内存:虚拟内存地址转换物理内存地址、page fault,page调度算法;进程和线程的区别、认识哪些进程调度算法。最后算法问了个力扣中等题,是一个前缀和题目,不难。 #发面经攒人品#
全部评论

相关推荐

05-21 11:32
已编辑
蚌埠坦克学院 UE5
只有几篇面经,因为只有开始在记,后面挂麻了就懒得记了我是UE方向的,但很奇怪组是星铁组,所以UE内容很少,八股很多。一面场景算法题:1.如果有十二个小球,其中十一个完全相同,一个更重,有一个天平,最少几次能找出重的球?2.如果是十三个球呢?3.还是十二个球,但你只知道其中一个重量不一样,不知道是轻还是重,需要几次?(都是三次)UE引擎:1.介绍一下GAS2.介绍一下A*算法。A*算法一定能得到最优路径吗?为什么不能?怎么能让A*算法一定找到最优路径(提示:跟启发式函数相关);3.介绍一下UE的GC的底层实现方式?GC本身有什么缺点?4.对象池怎么实现的?对象池有什么缺点?怎么优化?C++高频(回忆不起来全部的了,大致):1.介绍一下static的各种用法。static函数和普通函数的区别?2.虚函数相关。介绍虚函数实现,析构函数能是虚函数吗?在构造函数和析构函数中能调用虚函数吗?3.介绍下静态多态。函数重载的返回值能不同吗?4.介绍下智能指针。控制块中为什么需要弱引用计数?unqiue_ptr不准拷贝构造,那要怎么把一个unqiue_ptr赋值给另一个?5.map和unordered_map的不同之处?红黑树和哈希的实现?什么场景选用?操作系统:1.进程和线程的区别,管理的资源,通信方式。2.什么是线程不安全?那怎么解决呢?除了加锁呢?3.32位系统和64位系统有什么不同?手撕:跳台阶、接雨水二面一个很大的手撕: C风格数组实现可扩容队列。如果要支持多线程并发呢?能不能不加锁(原子变量实现无锁队列)?计原/操作系统:1内存分页?怎么快速查询地址?TLB表在哪?tlb表在内存,那CPU怎么做到快速查表的?不停的读取新东西,是怎么做到tlb表不溢出的?2.CPU的多级缓存,线程不安全本质是什么?原子变量是如何保证原子性的?2.代码段和数据段内存里隔那么远,但在读取时经常需要一起读取,CPU是怎么优化读取的性能的?C++:1.锁和原子变量?lock_guard怎么做到函数结束自动解锁的?如果我要实现一个类似的功能函数结束自动释放资源,怎么做?计网:1。UE网络通信底层用什么实现的?UDP怎么保证稳定性?如果丢包怎么办?如果要求重发的包也丢了怎么办?怎么优化性能不堵塞信道?
查看23道真题和解析
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务