OpenGL与UnityShader常⽤基础⾯试题
来计⼀下⾯试的时候问的图形学相关的题⽬,每次⾯试问得并不多,所以数量不多,以后不断添加。
1.三⼤主流的Shader Language?
HLSL、GLSL、CG
hermes2.OpenGL的渲染流程?
读取顶点数据→执⾏顶点着⾊器→组装图元→光栅化图元→光栅化图元→执⾏⽚段着⾊器→写⼊帧缓冲区→显⽰在屏幕上。(不同的管线流程应该是有去别的,⼤体上是这样的)
Unity Shader的详细流程(昨天⼜有⾯试官问了,感觉讲详细的话很不错)?
我的歌声里英文版(1)顶点数据
津波(2)⼏何阶段:
顶点着⾊器→曲⾯细分着⾊器→⼏何着⾊器→裁剪→屏幕映射(→传递数据给光栅化阶段)
(3)光栅化阶段:
环球雅思英语三⾓形设置→三⾓形遍历→⽚元着⾊器→逐⽚元操作
(4)屏幕图像
3.前向渲染、延迟渲染?
在我别的⽂章中有单独的⼀篇介绍这个。
4.漫反射(diffu)、⾼光反射(specular)等照明模型
它们的⼀些公式有的⾯试官会问,实在记不清具体公式可以记⼀下思路,⽐如漫反射是和法线与⼊射光线的⽅向有关,⾼光则是和反射⽅向与视线⽅向(或者是法线与h)有关。
5.你⼀般使⽤什么Shader Language?
玛格丽特 希尔达 撒切尔
如果你⾯试的是Unity岗位,还是以CG语⾔为主吧。我⾯腾讯的某个岗位的时候我说我最常⽤的是CG语⾔,⾯试官还笑了,我估计那应该那边的科技树是往GLSL⽅向点的,可以根据想报的岗位提前重点学习某个语⾔。
6.OpenGL中要⽤到哪⼏种Buffer?
crows
(1)帧缓冲(Frame Buffer)
(2)颜⾊缓冲(Color Buffer)
(3)模板缓冲(Stencil Buffer)
(4)顶点缓冲(Vertice Buffer)
(5)深度缓冲(Depth Buffer)
mobile me7.Unity Shader 中的常⽤RenderType?
aeolus(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. 地形引擎何中的⼴告牌草。