零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础
零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效
零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 转场
零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 函数
零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES GPUImage 使用
零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES GLSL 编程
一.前言
OpenGLES 2.0 则是用于在移动设备上绘制图形的 API 。本文将介绍如何绘制一个纯色背景,并提供完整的代码示例。
1.我们需要安装 OpenGL ES 和 GLSL 着色器语言库。这些库可以通过各种方式获取,例如从官方网站下载或使用包管理器进行安装。
2.我们将创建一个基本的 OpenGL ES 应用程序并添加必要的代码以生成纯色背景,其中关键在于 glClearColor 函数的使用。
/*******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:OpenGL ES 绘制纯色背景
//@Time:2023/03/11 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/*******************************************************************************************/
/*
*描述:设置清屏颜色
*参数:
* [in] red:红色取值范围 0.0~1.0
* [in] green:绿色取值范围 0.0~1.0
* [in] blue:蓝色取值范围 0.0~1.0
* [in] alpha:透明度取值范围 0.0~1.0
*
*返回值:无
*/
void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
二.完整代码演示
在使用 OpenGL ES glsl 2.0 绘制图形时,我们需要编写着色器程序。在本例中,我们将编写一个简单的着色器程序来绘制任意颜色背景。该着色器程序包括一个顶点着色器和一个片段着色器。
顶点着色器代码如下
/*******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): https://www.codersrc.com/archives/22461.html
//@FileOpenGL ES 绘制纯色背景
//@Time:2023/03/11 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/*******************************************************************************************/
attribute vec4 position;
void main()
{
gl_Position = position;
}
顶点着色器代码如下:
/*******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): https://www.codersrc.com/archives/22461.html
//@FileOpenGL ES 绘制纯色背景
//@Time:2023/03/11 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/*******************************************************************************************/
precision mediump float;
uniform vec4 color;
void main()
{
gl_FragColor = color;
}
完整代码如下:
解析:
在本例中,我们定义了一个包含 4 个顶点的矩形,并将其存储在一个 GLfloat 数组中。我们还定义了一个包含6个元素的索引数组,用于绘制这个矩形。
我们创建了一个顶点缓冲对象(VBO)和一个索引缓冲对象(IBO),并将矩形数据存储在这些缓冲区中。我们还使用 glVertexAttribPointer 函数指定了顶点缓冲区的位置属性,并启用了该属性。使用 glUniform4f 函数,我们将颜色向量传递给片段着色器。
接下来,我们设置了背景颜色为黑色,并清除了颜色缓冲区。然后,我们使用 glDrawElements 函数绘制矩形。
最后,我们删除了 VBO、IBO 和着色器程序。
注意,如果在编译时提示找不到头文件或库文件,需要安装相应的开发包。在Windows 系统中可以直接在下面的参考案例中直接获取;在 Ubuntu 系统中,可以使用以下命令安装 OpenGL ES 和 EGL 的开发包:
sudo apt-get install libgles2-mesa-dev libegl1-mesa-dev
三.参考案例
1.Windows OpenGL ES 图像 lookup 色彩调整:源码下载
2.Windows OpenGL ES 色阶调节:源码下载
四.猜你喜欢
- OpenGL ES 简介
- OpenGL ES 版本介绍
- OpenGL ES 2.0 和 3.0区别
- OpenGL ES 名词解释(一)
- OpenGL ES 名词解释(二)
- OpenGL ES GLSL 着色器使用过程
- OpenGL ES EGL 简介
- OpenGL ES EGL 名词解释
- OpenGL ES EGL eglGetDisplay
- OpenGL ES EGL eglInitialize
- OpenGL ES EGL eglGetConfigs
- OpenGL ES EGL eglChooseConfig
- OpenGL ES EGL eglGetError
- OpenGL ES EGL eglCreateContext
- OpenGL ES EGL eglCreateWindowSurface
- OpenGL ES EGL eglCreatePbufferSurface
- OpenGL ES EGL eglMakeCurrent
- OpenGL ES EGL eglSwapBuffer
- OpenGL ES EGL eglDestroySurface
- OpenGL ES EGL eglDestroyContext
- OpenGL ES EGL eglQueryContext
- OpenGL ES EAGLContext 和 EGLContext
- OpenGL ES OpenGL WebGL EGL WGL 区别
- OpenGL ES freeglut 下载和使用
- OpenGL ES glew 下载和使用
- OpenGL ES glut 下载和使用
- OpenGL ES glfw 下载和使用
- OpenGL ES glad 下载和使用
- OpenGL ES glut glew glfw glad freeglut
- OpenGL ES google angle
- OpenGL Windows 搭建环境(MFC版本)
- OpenGL ES Windows 搭建环境(MFC版本)
- OpenGL ES 版本检测
- OpenGL GLES 和 GLSL
- OpenGL ES 获取最大纹理尺寸 GL_MAX_TEXTURE_SIZE
- OpenGL ES 获取最多纹理单元数量 GL_MAX_TEXTURE_IMAGE_UNITS
- OpenGL ES 纹理采样的数量限制
- OpenGL ES 视口宽高限制 GL_MAX_VIEWPORT_DIMS
- OpenGL ES 笛卡尔坐标系之纹理坐标和顶点坐标
- OpenGL ES 查看显卡信息
- OpenGL ES 正交投影和透视投影
- OpenGL ES GLSL 简介
- OpenGL ES GLSL 编译
- OpenGL ES glDrawArrays 函数
- OpenGL ES glDrawArrays 崩溃
- OpenGL ES glDrawArray 和 glDrawElements 用法区别
- OpenGL 绘制流程
- OpenGL ES 绘制流程
- OpenGL ES 绘制纯色背景
ChatGPT 3.5 国内中文镜像站免费使用啦
暂无评论内容