自己用Laravel写的小博客和CSDN的博客以后同步更新:
OpenGL编程指南2D部分【下】
4. 颜色、像素和帧缓存
颜色
OpenGL需要RGB/sRGB格式的颜色
Fragment shader中指定颜色为顶点颜色,会使用高洛德着色填充区域
光栅
处于vertex shader和fragment shader之间
处理每个像素的buffer
多重采样
一种简洁的实现抗锯齿的方法
需要程序提供一个额外的多重采样缓存,使用时无法同时使用点线面平滑处理
可以通过glGetIntererv(GL_SAMPLE_BUFFERS)检测缓存是否存在
需要提供采样次数,最大次数通过
fragment shader中的sample关键字不知道怎么用,加上即黑屏。
glMinSampleShading使用起来并没有什么效果
缓存
OpenGL有颜色缓存,深度缓存和模板缓存,共同构成帧缓存
通过glClear[type]设置缓存清除默认值
通过gl[type]Mask来决定那些缓存可以写入
测试
一个像素点需要经过:
1. 裁剪测试
2. 多重采样操作
3. 模板测试
4. 深度测试
5. 混合
6. 抖动
7. 逻辑操作
裁剪是控制一个矩形,只能绘制在这个矩形当中。
使用glScissor设置矩形,glEnable开启测试