在使用Opengl的过程中,会经常禁用或开启一些功能,这里经过一些查阅,整理一些对常用的一些功能的理解。后续会不断的补充。
1. glShadeModel
glShadeModel是设置opengl中绘制指定两点间其他点颜色的过渡模式。一般分为两种模式:GL_SMOOTH(默认)、GL_FLAT。
GL_SMOOTH: 以插值的方式,过渡两个点之间的颜色,两点颜色相同,则中间的点颜色也保持一致,效果如下:
GL_FLAT: 以指定的某一点的单一色绘制其他所有点:,如果两点颜色相同,效果就和GL_SMOOTH相同。
2. glPixelStorei
glPixelStorei的第一个参数可以是ALIGNMENT、ROW_LENGTH、IMAGE_HEIGHT和UNPACK、PACK两种版本组合的参数。
glPixelStorei(GL_UNPACK_ALIGNMENT, 4): 表示控制所读取数据的对齐方式为4个字节。包括cpu向gpu传输时以4个字节表示一个点。那么如果原数据的RGB格式的话,如果以4个自己读取的话,如果一行数据的总量不是4的整数倍就会出现读取越界的情况。如果侥幸是4的整数倍,出来的图像也不是想要的结果。
按照4自己对齐来读取一定程度的上可以提高读取效率,如果是1个字节读取的话,效率上会有所下降。
3. glEnable、glDisable
开启或关闭某项功能,这里主要总结这些功能枚举:
GL_DEPTH_TEST::深度缓冲测试,默认关闭。开启后,Opengl在绘制时会检查当前像素之前是否有别的像素,如果有,就不会绘制当前像素。绘制3D立方体图像场景时会开启。
GL_TEXTURE_2D:纹理映射,开启后,支持纹理映射。
GL_CULL_FACE:剔除操作效果。剔除操作函数glCullFace()参数包括GL_FRONT和GL_BACK。表示禁用多边形正面或者背面上的光照、阴影和颜色计算及操作,消除不必要的渲染计算。
GL_COLOR_MATERIAL:颜色材质。打开后,可以用颜色来贴物体。同时glColor3f(r,g,b)会生效,具体后续使用到会再做详细总结。
GL_LIGHTING:灯源。