5.6.1四种片元测试
片元(fragment)与像素的区别
片元操作
1、片元在写入帧缓冲之前要按顺序经历一系列的测试;在写入帧缓冲时也会经历一些运算。
2、操作顺序如下:
裁剪测试 Alpha测试 模板测试 深度测试 |
|
写入帧缓冲前的操作 |
写入帧缓冲时的操作 |
混合 抖动 逻辑操作 |
|
3、如果片元在其中某个测试中被排除,后面的测试或操作就不再进行了。
裁剪测试
1、Void glScissor(Glint x, Glint y, GLsizei width, GLsizei height);
2、glEnable(GL_SCISSOR_TEST);
Alpha测试
1、glEnable(GL_ALPHA_TEST);
2、void glAlphaFunc(GLenum func, GLclampf ref);
3、func: GL_NEVER, GL_LESS, GL_LEQUAL, GL_EQUAL, GL_GREATER, GL_NOTEQUAL, GL_GEQUAL, GL_ALWAYS
问题:片元的alpha值是从哪儿来的?
放在颜色缓冲区,用glcolor
Alpha测试的一个应用
Billboarding技术
Alpha测试
Alpha片元测试在OpenGL3.0中被废弃了,并且在OpenGL3.1中替代为通过使用discard操作在fragment shader中丢弃片元。
混合 抖动 逻辑操作 |
裁剪测试 Alpha测试 模板测试 深度测试 |
片元操作