赞
踩
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
本文主要介绍 opengles3.0 所支持的绘制图元 API 相关接口, 这里主要介绍绘制三角形的接口
软硬件环境:
硬件:PC
软件:ubuntu22.04 opengles3.0
opengles3.0 中有5个绘制图元的API 调用,分别是 glDrawArrays(), glDrawElements(), glDrawRangeElements(), glDrawArraysInstanced(), glDrawElementsInstanced()
其中目前用的比较多的是前3个 API接口,特别是前2个,用的场景特别多。
glDrawArrays是一个OpenGLES函数,用于根据顶点数组中的数据进行绘制。它可以绘制一系列的图元,如点、线、三角形等,这些图元的顶点数据都存储在顶点数组中。
glDrawArrays() 函数原型如下图所示:
下图展示了opengles3.0中支持的三角形图元类型示例
这里主要介绍一下, mode 参数中的 GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN 这三者的区别
在OpenGLES中,GL_TRIANGLES、GL_TRIANGLE_STRIP和GL_TRIANGLE_FAN都是用于绘制三角形的图元类型。它们在定义和使用三角形时有一些区别:
这三种绘制方式各有其特点,选择合适的方式取决于你想要绘制的场景和顶点数据的组织方式。在实际开发中,通常会根据具体需求选择合适的绘制方式来实现所需的图元效果。
GLfloat vVertices[] = { //vertex pointer //x y z -0.8f,0.8f,0.0f, //v0 top left -0.8f,-0.8f,0.0f, //v1 bottom left 0.8f,-0.8f,0.0f, //v2 bottom right -0.8f,0.8f,0.0f, //v0 top left 0.8f,-0.8f,0.0f, //v2 bottom right 0.8f,0.8f,0.0f, //v3 top right }; glViewport(0, 0, WIDTH, HEIGHT); //set the view port glClearColor(0.00f, 0.70f, 0.67f, 1.0f); //set rgba value for backgroud glClear(GL_COLOR_BUFFER_BIT); glEnableVertexAttribArray(0); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, vVertices); glDrawArrays(GL_TRIANGLES, 0, 6); //draw a quadrilateral
GLfloat vVertices[] = {
//vertex pointer
//x y z
-0.8f,0.8f,0.0f, //v0 top left
-0.8f,-0.8f,0.0f, //v1 bottom left
0.8f,0.8f,0.0f, //v2 top right
0.8f,-0.8f,0.0f, //v3 bottom right
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。