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低差异序列为什么能够让采样更准确,效率更加高。
#腾讯##腾讯面经##面经##面经腾讯美团百度##图形学#
#游戏引擎#