02-OpenGL/OpenGL ES下专业名词解析

2019-05-17  本文已影响0人  SPIREJ

图形API简介

图形API目的是解决什么问题

简单来说就是实现图形的底层渲染.

比如在游戏开发中,对于游戏场景/游戏人物的渲染
比如在音视频开发中,对于视频解码后的数据渲染
比如在地图引擎,对于地图上的数据渲染
比如在动画中,实现动画的绘制
比如在视频处理中,对于视频加上滤镜效果
等等....

OpenGL 专业名词解析

类推到OpenGL 中来,可以这么理解:

  1. OpenGL可以记录自己的状态(如当前所使用的颜色、是否开启了混合功能等);

  2. OpenGL可以接收输入(当调用OpenGL函数的时候,实际上可以看成OpenGL在接收我们的输入),如我们调用glColor3f,则OpenGL接收到这个输入后会修改自己的“当前颜色”这个状态;

  3. OpenGL可以进入停止状态,不再接收输入。在程序退出前,OpenGL总会先停止工作的。

可以使用glColor*函数来选择一种颜色,以后绘制的所有物体都是这种颜色,除非再次使用glColor*函数重新设定。

可以使用glTexCoord*函数来设置一个纹理坐标,以后绘制的所有物体都是采用这种纹理坐标,除非再次使用glTexCoord*函数重新设置。

可以使用glBlendFunc函数来指定混合功能的源因子和目标因子,以后绘制的所有物体都是采用这个源因子和目标因子,除非再次使用glBlendFunc函数重新指定。

可以使用glLight*函数来指定光源的位置、颜色,以后绘制的所有物体都是采用这个光源的位置、颜色,除非再次使用glBlendFunc函数重新指定。

OpenGL是一个状态机,它保持自身的状态,除非用户输入一条命令让它改变状态。

例如:

//获取是否深度测试/混合
glIsEnabled(GL_DEPTH_TEST);
glIsEnabled(GL_BLEND);

//开启深度测试/混合
glEnable(GL_DEPTH_TEST);
glEnable(GL_BLEND);

//关闭深度测试/混合
glDisable(GL_DEPTH_TEST);
glDisable(GL_BLEND);
上一篇 下一篇

猜你喜欢

热点阅读