图形学基础
- 为什么使用齐次坐标,它有什么好处?
- 纹理相关,如何在shader中采样,如何获取二维纹理中的具体像素值?
- mipmap的实现,如何确定使用哪一层?
- 如何渲染光照?
- 如何渲染半透明物体?
- 如何确定渲染顺序?
- 什么情况下fs的执行次数会小于vs的执行次数(顶点数)?
- 光栅化的作用?
- 阴影图的实现?
- 阴影图的改进?
- 如何判断点O是否在三角形ABC之内?
- 阐述opengl渲染管线
- 编写shader时,有哪些注意优化的点?
- 了解alpha blend吗?
- 如果让你做一些直播上针对人脸的美化,你会怎么做?
- 关于深度测试,有什么优化?
- phong与blinn-phong的不同点?..
- vs中的变换矩阵和空间变换。
- 如果对一个模型仅沿X轴缩放,应该如何利用model矩阵正确计算光照?
- MSAA与FSAA?
- alpha融合?
- opengl与openglES
- 正交矩阵的定义是?我们的变换矩阵中哪些是正交矩阵?
- 旋转矩阵的特征值是?
- 如何理解特征值和特征向量?写一下相关式子?
- 如果A是二阶矩阵,如何理解特征向量呢?
- 如何表示一个平面?
- 数学上如何把一个非线性问题表示成线性问题?比如把一个函数值表示成多项式的和?
- 写一下如何多元函数全微分?比如x1, x2, x3; f(x1), f(x2), f(x3)
- 如何对函数求极值?必要条件?
- 如果求f(x)的极值,但x满足约束条件H(x) = 0?
- 最小二乘法还有印象吗?
- 对四元数有了解吗?
- 为什么使用齐次坐标?
- 正交矩阵的特点?
- view矩阵的功能?如何推导?
- 世界坐标系到相机坐标系的转换。已知相机的正前方和正上方,相机视为原点,对世界坐标进行平移和旋转。
- 介绍一下渲染方程。
- mipmap的原理?各向异性mipmap?走样产生的原理?
- 射线与1w面片求交?用octree如何加速?如何判断射线与AABB相交?
- 给定一个极坐标表示的球面,给定两点,求两点间短弧的距离。
- 图形渲染管线的基本流程。
- 向量点乘和叉乘的几何意义。
- 知道欧拉角吗?有什么用?它的优点和缺点是什么?
- 图形渲染过程中哪些空间?
- 什么是模板测试?它可以用来做什么?
- 除了用模板测试做外阴影,还有什么方法?
- 如何渲染一个半透明的物体?需要注意什么。
- 如何优化着色器代码?
- 如果判断一个多边形是凸多边形。
- 如何判断光线与三角形相交。
- 知道法线贴图吗?法线贴图是怎么存储的?存储法线贴图需要注意什么?
- 知道怎么渲染阴影吗?阴影贴图怎么使用?
- HDR是什么?
- 伽马矫正是什么?
- 什么是色调映射?你有使用过什么色调映射算法吗?
- 有了解过PBR吗?
- 图形渲染的基本流程?
- 有哪些坐标空间?他们是如何进行变换的?
- 正交投影和透视投影有什么区别?
- 一般使用的向量是几维的?矩阵呢?为什么向量是三维,矩阵是四维的呢?
- 什么是齐次坐标?齐次坐标能做什么?它是怎么去区分是一个位置,还是一个方向?
- 写出一个旋转矩阵和平移矩阵,怎么叠加?
- HDR?是一开始就超出1.0这个界限吗?
- 什么是色调映射?你有使用过什么色调映射算法吗?写一下这些算法,说一下你对色调映射的理解。
- Phone模型有哪些光照分量?说一下它们的作用是什么?
- 写一下Phone模型中的镜面光和漫反射光计算的伪代码?
C++
- 多继承的实现?可能出现什么问题?
- 重载与重写?
- 纯虚函数?
- 内存泄露与智能指针。
- const的用法有哪些?
- STL容器相关
- class与struct之间的区别与联系。
- 内联函数在编译期间完成哪些事情?
- 数组与链表的对比(存储空间,增删改查)
- SLT容器相关。
- C++的多态如何体现?
- 构造函数可以是虚函数吗?析构函数呢?
- 一个类中声明了一个虚函数,取他的sizeof()应该是多少?
- 线程池和内存池了解吗?
- DLL的加载方式有哪些?
- 常用排序方法里哪些平均复杂度较高?
- 介绍下快排思想。
- STL相关,vector,set,map
- 某个类取sizeof(),各种情况
- 可以虚析构函数吗?为什么?
- 多态的种类?
- new与malloc的的区别?operator new?
- STL相关
- 指针和引用的区别?
- 无效引用?
- 调用函数的过程?
- 虚析构函数?
- 智能指针的原理?各个智能指针的特点?
- extern关键字的用法?
- 开始留了半个小时去实现一个定时器功能,要求实现定时器的注册,更新,注销三个函数。
- 有哪些常用的数据结构?
- 说一下你最熟悉的一个STL容器,讲一下你知道的具体实现细节。
- C++是如何实现多态的?
- 二叉搜索树搜索时间复杂度 最坏情况复杂度
- 快排最坏情况是什么情况?
- map底层,说一下红黑树
- 哪些stl底层是哈希表?
- 说一下智能指针,怎么实现shared ptr ?
- 两个栈实现队列,一个栈怎么实现?
- 定义一个struct,有int x,char c两个成员,这个结构体多大?为什么内存对齐?如果增加一个static int 这个结构体大小怎么变化?如果在结构体里定义一个虚函数,结构体大小怎么变化?
- 基类不使用虚析构函数,会发生什么?
- 类中静态变量初始化是什么时候?
- 函数重载和覆盖的区别?
- 拷贝构造函数和移动构造函数的区别?