webgl 模拟试卷
渲染管线与着色器基础专题测试
- 可编程渲染管线流程: 顶点着色器、图元装配、光栅化到片元着色器的完整数据流转
- 顶点着色器最小实现: 编写设置 gl_Position 的顶点着色器并理解裁剪坐标取值范围
- 片元着色器与颜色输出: 编写输出 gl_FragColor 的片元着色器控制每个像素的颜色
- 着色器编译与链接流程: 使用 createShader、shaderSource、compileShader 与 linkProgram 完成程序装配
- 着色器错误信息读取: 通过 getShaderInfoLog 与 getProgramInfoLog 定位编译与链接错误
- attribute 与 uniform 的区别: 区分逐顶点 attribute 与全局 uniform 变量的数据传递语义与用途
试卷习题(20 题)
参考答案在文末判断题
1
判断题
片元着色器通过给内置变量 gl_FragColor 赋值来决定每个像素的最终颜色。
2
判断题
attribute 用于描述逐顶点数据,只能在顶点着色器中使用;uniform 用于描述整批共享数据,顶点与片元着色器都可以读取。
3
判断题
读取着色器编译日志应在编译之后立即进行,着色器对象被删除后日志也随之丢失。
4
判断题
顶点着色器必须给内置变量 gl_Position 赋值,否则该顶点的位置是未定义值。
5
判断题
WebGL 渲染管线中的图元装配与光栅化阶段由 GPU 按固定规则执行,开发者无法编程干预。
6
判断题
一个 WebGL program 只需附加顶点着色器即可完成链接,片元着色器是可选的。
单选题
7
单选题
program 链接成功后,对着色器对象最合理的处理方式是?
8
单选题
需要定位运行期 WebGL 调用出错的位置,应使用哪个接口?
9
单选题
读取某个着色器编译失败的具体原因,应使用哪个接口?
10
单选题
顶点与片元着色器都创建并配置好后,要把它们组合成一个可执行的渲染程序,应调用哪个接口?
11
单选题
顶点着色器输出的 gl_Position 经 GPU 透视除法后,归一化设备坐标的取值范围是?
12
单选题
以下哪类数据最适合通过 uniform 传入着色器?
13
单选题
WebGL 渲染管线中,决定顶点最终位置的是哪个阶段?
14
单选题
在片元着色器中声明浮点默认精度,正确的写法是?
多选题
15
多选题
关于 WebGL 错误信息的读取,以下说法正确的是?
16
多选题
关于 WebGL 渲染管线,以下说法正确的是?
17
多选题
关于 WebGL 着色器的编译与链接流程,以下说法正确的是?
18
多选题
关于 attribute 与 uniform,以下说法正确的是?
19
多选题
关于顶点着色器,以下说法正确的是?
20
多选题
关于片元着色器与 varying 变量,以下说法正确的是?
参考答案
1.正确
2.正确
3.正确
4.正确
5.正确
6.错误
7.B
8.B
9.A
10.B
11.B
12.C
13.B
14.A
15.A;B;D
16.A;B;D
17.A;B;C
18.A;B;D
19.A;C;D
20.A;B;C
