FunPlus游戏引擎开发实习 一面
- 一个顶点从局部坐标怎么到屏幕上;
- NDC 空间的范围是什么;所有平台都是这样吗;
- 在 NDC 空间的点如何变换回世界空间;
- MSAA 的原理和实现细节;为什么要用 MSAA;
- 锯齿出现的原因;走样背后的原理;
- irradiance 和 radiance 的区别;量纲分别是什么;积分表达;
- 写出渲染方程;解释下每项的含义;
- 写出 Cook-Torrance BRDF 公式;
- 解释漫反射型;兰伯特项为什么要除以 PI;
- 解释镜面反射项;漫反射项和镜面反射项的权重取决于什么;
- 菲涅尔项是什么决定的;解释 f0 和 f90;单位;取值范围;
- D 项是什么;自变量;值域;能大于 1 吗; G 项是什么;
- 数学角度解释重要性采样;收敛速度和什么成正比;什么是有偏无偏,估计一致性;
- 左值右值是什么;move 和 forward 的原理和实现;引用折叠是什么
- 讲一下 unique 指针;可以传自定义的析构函数吗;占用额外空间吗;
- 讲讲 malloc 和 new;如何不申请内存空间只调用构造函数(placement new)(写代码);
- static_cast 和 dynamic_cast 的适用范围;转换失败;二者的开销;实现原理
- 虚表的结构;虚表里存的是什么;虚表有多大;虚表应该分配在个区域
- 为什么析构函数要声明为虚函数(写代码);
2023/02/05:很多人收藏了这篇,今天我就重新编辑了下内容,方便大家阅读
#面经##实习#