OpenGL与Unity Shader常用基础面试题

来计一下面试的时候问的图形学相关的题目,每次面试问得并不多,所以数量不多,以后不断添加。

1.三大主流的Shader Language?
HLSL、GLSL、CG

2.OpenGL的渲染流程?
读取顶点数据→执行顶点着色器→组装图元→光栅化图元→光栅化图元→执行片段着色器→写入帧缓冲区→显示在屏幕上。(不同的管线流程应该是有去别的,大体上是这样的)
Unity Shader的详细流程(昨天又有面试官问了,感觉讲详细的话很不错)?
(1)顶点数据
(2)几何阶段:
顶点着色器→曲面细分着色器→几何着色器→裁剪→屏幕映射(→传递数据给光栅化阶段)
(3)光栅化阶段:
三角形设置→三角形遍历→片元着色器→逐片元操作
(4)屏幕图像

3.前向渲染、延迟渲染?
在我别的文章中有单独的一篇介绍这个。

4.漫反射(diffuse)、高光反射(specular)等照明模型
它们的一些公式有的面试官会问,实在记不清具体公式可以记一下思路,比如漫反射是和法线与入射光线的方向有关,高光则是和反射方向与视线方向(或者是法线与h)有关。

5.你一般使用什么Shader Language?
如果你面试的是Unity岗位,还是以CG语言为主吧。我面腾讯的某个岗位的时候我说我最常用的是CG语言,面试官还笑了,我估计那应该那边的科技树是往GLSL方向点的,可以根据想报的岗位提前重点学习某个语言。

6.OpenGL中要用到哪几种Buffer?
(1)帧缓冲(Frame Buffer)
(2)颜色缓冲(Color Buffer)
(3)模板缓冲(Stencil Buffer)
(4)顶点缓冲(Vertice Buffer)
(5)深度缓冲(Depth Buffer)

7.Unity Shader 中的常用RenderType?
(1)Opaque: 用于大多数着色器(法线着色器、自发光着色器、反射着色器以及地形的着色器)。
(2)Transparent:用于半透明着色器(透明着色器、粒子着色器、字体着色器、地形额外通道的着色器)。
(3)TransparentCutout: 蒙皮透明着色器(Transparent Cutout,两个通道的植被着色器)。
(4)Background: Skybox shaders. 天空盒着色器。
(5)Overlay: GUITexture, Halo, Flare shaders. 光晕着色器、闪光着色器。
(6)TreeOpaque: terrain engine tree bark. 地形引擎中的树皮。
(7)TreeTransparentCutout: terrain engine tree leaves. 地形引擎中的树叶。
(8)TreeBillboard: terrain engine billboarded trees. 地形引擎中的广告牌树。
(9)Grass: terrain engine grass. 地形引擎中的草。
(10)GrassBillboard: terrain engine billboarded grass. 地形引擎何中的广告牌草。

你可能感兴趣的:(Game,Develop)