6场技术面。方向是游戏引擎,主要都是图形学,c++问题很少。IEG 天美 一面1. C++1.1 inline可以修饰虚函数吗?1.2 构造函数中可以调用虚函数吗?1.3 static和const在哪个内存区域?1.4 static和const什么时候初始化?1.5 虚表什么时候初始化?1.6 多态怎么实现的 ?1.7 多线程通信方式1.8 多进程通信方式2. 图形学2.1 early-z失效2.2 介绍下项目2.3 喜欢玩的游戏?效果怎么实现的?3. 闲聊3.1 游戏引擎开发需要哪些技能?3.2 学校里令人印象深刻的事情?3.3 未来方向规划4. 算法4.1 两数之和4.2 链表部分反转---------------------------------------IEG 游戏前沿(Base上海) 一面1. 图形学1.1 你的软光栅项目的实现过程?一开始怎么考虑的,然后怎么搭建出来的1.2 你这个项目是在CPU上运行的是吗?1.3 怎么去做mipmap的?(应该是想问多级渐远纹理怎么实现的)1.4 你知道在GPU上是怎么实现的吗?1.5 简单说下你的软阴影1.6 你的阴影有出现斑纹吗?(想问自遮挡问题)1.7 有用过CSM吗?知道CSM有什么好处吗?1.8 Cubemap有什么用?1.9 IBL的漫反射和镜面反射的图怎么生成的?(辐照度图和预滤波环境贴图)1.10 球谐函数了解吗?知道大概是什么用的吗?1.11 差不多。你知道有什么好处吗?1.12 色调映射是做什么的?1.13 假设图像的HDR色差范围太大了。传统的色调映射不太好。有什么更好的办法?1.14 你这个CPU的软光栅效率怎么样?1.15 你最初光栅化的模型是什么?1.16 做过什么优化吗?1.17 背面剔除怎么做的?1.18 齐次空间裁剪是怎么做的?1.19 前向渲染和延迟渲染你知道吗?在什么情况下用这两种方式呢?1.20 为什么光源比较多的时候用延迟渲染?1.21 延迟渲染是怎么渲染的?1.22 一个点光源怎么作用到G-Buffer,然后得到光照结果?比如渲染一个球1.23 你知道deferred shading 和 deferred lighting的区别吗?1.24 你知道deferred shading在移动端上的劣势是什么吗?1.25 延迟渲染有什么劣势1.26 延迟渲染输出很多g-buffer的代价是什么?1.27 你知道early-z吗?它的作用是什么?1.28 有时候会失效。失效的原因是什么?1.29 pre-z你知道吗?1.30 第二个pass的渲染策略是什么?1.31 你的光线追踪项目有什么技术点可以分享?1.32 光线的求交是自己写的算法吗?1.33 光线反弹的过程是怎样的?1.34 你要发射多少条光线1.35 怎么混合每一帧的图像?1.36 有做过什么优化吗?1.37 对移动端的渲染有所了解吗?1.38 有用过UE吗?学到什么程度?1.39 编译过源码吗?1.40 了解UE的图形学特性吗?2. C++2.1 多态性怎么实现的?2.2 析构函数可以是虚函数吗?3. 反问3.1 你们项目组是做什么的?3.2 base在哪3.3 有什么要提升的?-----------------------------------------IEG 游戏前沿(Base上海) 二面1. 图形学1.1 你的光线追踪项目有多少个光源?1.2 有没有做什么优化?1.3 你如何对光源做重要性采样?1.4 有没有什么更快速的数据结构去做CDF计算?1.5 怎么保证你的采样后是能量守恒的?1.6 Sobol低差异序列怎么保证它的样本在时域上和空域上是独立分布的?1.7 知不知道保守光栅化?1.8 这两个项目都有点类似课后作业了。有没有商业引擎开发经验。1.9 OpenGL有实现多线程吗?2. C++2.1 Map和Unordered_map的底层原理是什么?2.2 Vector删除一个元素后迭代器怎么变化?2.3 Vector的扩容机制?2.4 Vector怎么释放空间?3. 算法* 10分钟做一个合并有序链表------------------------------------------------------IEG游戏前沿(Base深圳)一面1. 图形学1.1 介绍项目1.2 软光栅的Z-Buffer怎么做的1.3 深度是用float32存储的吗?这个精度在靠近1的范围会比较低,要怎么处理?1.4 简单介绍下BVH。1.5 你的BVH的节点深度是多少?如果你的三角形个数特别多,上万个。有什么优化方法吗?1.6 你的光追的贴图是怎么存储的?1.7 你的demo上面有很多噪点,你后续有处理吗?1.8 你的帧缓冲多帧混合这一块是做了什么?具体说一下1.9 你的path tracing的终止条件是怎样的?没有加俄罗斯转盘吗?1.10 你有对直接光采样吗?直接对光源的重要性采样。1.11 如果一个光源没有实体,你要怎么做?1.12 多重重要性采样了解吗?1.13 你这个没对光源采样,加几个光源就慢了,或者黑的1.14 后续需要降噪的话。相关的降噪你了解吗?1.15 SVGF了解吗?1.16 specular部分BRDF包含哪些项1.17 游戏里面的渲染管线了解吗?1.18 讲一下延迟渲染管线1.19 deferred shadings 主要解决什么问题?1.20 那如果材质比较多的话,延迟渲染会存在什么问题?怎么解决?1.21 ray tracing这块了解什么GI方案吗?光照探针了解吗?2.算法2.1 N个字符串组成新字符串从N个字符串序列中每个字符串取一个字符组成新的字符串,新的字符串中没有相同字符示例:输入N=3, "ab", "ca", "ccb"输出:"acb", "bac"2.2 乘积和异或相等的子序列给定一个正整数序列,输出其子序列,字序列满足其所有元素的乘机与其所有元素的异或相等。示例: 输入[1,2,1,3,4] 输出[1, 2, 1], [1,3,1]3. 反问3.1 base在哪3.2 问了很多光追方面的。主要工作是光追吗?-----------------------------------------------------------IEG游戏前沿(Base深圳)二面1. 图形学1.1 软光栅的数学库是自己实现的吗?1.2 光栅化算法怎么实现的?(扫描线算法)1.3 三角形重心坐标怎么算?1.4 有哪些坐标转换呢?1.5 纹理贴图的读取也是cpu做的吗?1.6 你的MipMap怎么实现的?1.7 你怎么知道用哪一级mipmap的纹理呢?1.8 阴影怎么实现的?1.9 阴影有什么优化的算法?(CSM)1.10 IBL的BRDF重要性采样是什么意思?1.11 BVH是在cpu上创建的吗?1.12 蒙特卡洛积分是怎么算的?2. C++2.1 智能指针了解吗?---------------------------------IEG游戏前沿(Base深圳)三面1. 图形学1.1 介绍项目。项目什么时候做的?1.2 gamma矫正是处理什么问题?色调映射是处理什么问题?1.3 从人眼角度来看为什么我们都是用RGB空间?1.4 为什么RGB分三个通道。而印刷的时候分成四个通道?1.5 我们对颜色在RGB空间做加减乘除。加的物理含义?减的物理含义?乘的物理含义?1.6 为什么RGB三个通道是独立的?G通道对R通道没有影响吗?1.7 MipMap和纹理映射解决什么问题?1.8 远距离用高分辨率的贴图会发生什么失真?1.9 如果远距离但是没有mipmap,你要怎么去渲染?1.10 怎么实现mipmap的?1.11 mipmapping是怎么做的?你怎么计算对应级别的?1.12 你在光栅化的时候做了哪些事情?1.13 插值有什么需要注意的地方吗?1.14 你的mipmap是怎么存储的?1.15 实际在显卡中存储都是按block存储的。为什么要用block存储?1.16 sobol低差异序列为什么能够让采样更准确,效率更加高。#腾讯##腾讯面经##面经##面经腾讯美团百度##图形学##游戏引擎#