iOS中 openGL常用函数记录(部分)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
注:这行代码是用于清楚屏幕。GL_DEPTH_BUFFER_BIT 清除深度缓冲
glVertexPointer(3, GL_FLOAT, 0, triangleVertices);
注:此函数告诉OpenGL的情况下我们的数据是什么格式,它是有4个参数,这个功能是很简单细分:Size-3这个值表示了每个坐标有几个数字;Data Type- GL_FLOAT 意味着我们用float点值;Stride - 这个stride告诉OpenGL 在每个坐标之间忽略哪几个点;Pointer to the Data – 数据本身,正是因为它,三角形才会出现。
glEnableClientState(GL_VERTEX_ARRAY);
注:OpenGL是一个状态机。 这意味着你打开和关闭功能的要求就是启用和禁用命令。之前,我们使用过glEnable(),这影响到OpenGL的服务。 glEnableClientState ()开启顶点数据,GL_COLOR_ARRAY颜色,GL_TEXTURE_COORD_ARRAY 纹理
glTexCoordPointer(2, GL_SHORT, 0, squareTextureCoords);
注:告诉OpenGL我们的纹理坐标数组是在哪里存储并且格式是什么
glDisableClientState(GL_COLOR_ARRAY);
注:关闭颜色渲染
glDrawArrays(GL_TRIANGLES, 0, 3);
注:OpenGL绘制开始执行,Drawing Method-绘制方式: First Vertex- Vertex Count-顶点数量
glMatrixMode(GL_MODELVIEW);
注:glMatrixMode 告诉OpenGL,我们工作在顶点模式下,而不是投影
glLoadIdentity();
注:覆盖(重置)函数,它只是基本重置所有的条件(重置所有状态)
glTranslatef(GLfloat xtrans, GLfloat ytrans, GLfloat Ztrans);
注:glTranslatef(-1.5, 0.0, -6.0); X、Y、Z 3个方向上的平移
glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
注:旋转,例:glRotatef(45.0, 0.0, 0.0, 1.0),绕Z轴旋转45度
glColor4f(GLfloat red,GLfloat green, GLfloat blue,GLfloat alpha);
注: glColor4f(0.0, 0.0, 0.8, 1.0);glColor4f()告诉OpenGL开始使用蓝色这个颜色来绘制(填充)。
red,green,blue这三个参数是颜色的浮点值,0.0表示没有强度,1.0表示全强度。
glColorPointer(4, GL_FLOAT, 0, squareColours);
注:Size-数组中颜色的数目,Data Format-我们在这里使用GL_FLOAT,Stride-再次,这里告诉OpenGL在两个值之间跳多少个数字。
Arry Points-这里是数据存储的地方。
glShadeModel(GL_FLAT);
注:着色模型:GL_FLAT&GL_SMOOTH。GL_SMOOTH是一个平滑着色,这就意味着当你开始填充一个矩形的时候,OpenGL将使用在我们 squareColours[] 数组里的默认颜色去定义在 squareVertices[] 数组里的每个顶点。 使用插值中每个像素的面积之间的点,顺利改变颜色之间的四点。换句话说,这将是我们出现彩色的矩形; GL_FLAT是使用物体的的最后一个顶点的颜色去填充整个图元
glGenTextures(1, &textures[0]);
注:GLuint textures[1];复制这个纹理数据到OpenGL引擎,所以我们要告诉OpenGL为它开辟内存空间
glBindTexture(GL_TEXTURE_2D, textures[0]);
注:激活绑定我们生成的纹理:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texWidth, texHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, textureData);
注:发送纹理数据(textureData 的指针)到OpenGL
- target – 基本上,通常是 GL_TEXTURE_2D
- level – 规定纹理的详细程度。0表示允许图片的全部细节。高数字表示n级别mipmap图片细节。(这边不懂,请知道的朋友告诉我下。)
- internal_format – 这个 internal format 和 format 必须是相同的。这两个都是 GL_RGBA . width - width of the image
- height - height of the image border – 必须始终设置为0 , OpenGL ES 不支持纹理边界.
- format – 必须和 internal_format相同。
- type – 每个像素的类型。想起来没,每个像素为四个字节。因此每个像素占用1个无符号整型(4字节)
- pixels – 实际上的图片数据指针。
free(textureData);
注:释放
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glEnable(GL_TEXTURE_2D);
注:告诉OpenGL,在放大的(近距离 - GL_TEXTURE_MAG_FILTER) 及缩小的(远距离 - GL_TEXTURE_MIN_FILTER). 时候如何处理,
glPushMatrix(); glPopMatrix();
注:告诉OpenGL 将我们的矩阵变换放到堆栈中,2个函数配合使用
glEnable(GL_BLEND); glDisable()
注:开启 GL_BLEND 混合色,半透明。GL_DEPTH_TEST 深度测试。GL_CULL_FACE 面剔除
glBlendFunc(GL_ONE, GL_ONE);
注: glEnable打开混合。光混合不够的,默认状态下,不会做任何事情。glBlendFunc 告诉OpenGL混合是如何工作的。
转载于:https://www.cnblogs.com/yuxiuyi/p/10273306.html
iOS中 openGL常用函数记录(部分)相关推荐
- 全景视频播放器中OpenGL的相关记录
全景视频播放器中OpenGL的相关记录 一.OpenGL顶点数组 二.坐标系与投影 三.坐标系相关函数 四.纹理坐标 五.纹理过滤 六.深度缓冲区 七.OpenGL的glut库 OpenGL函数功能g ...
- Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介、具体案例、使用方法之详细攻略
Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介.具体案例.使用方法之详细攻略 目录 pandas中数据处理常用函数(isnull/dropna/fillna/ ...
- c语言中math的库函数,C语言中math.h库中的常用函数
C语言中math.h库中的常用函数 int abs(int i) 返回整型参数i的绝对值 double cabs(struct complex znum) 返回复数znum的绝对值 double fa ...
- php spl函数,PHP SPL标准库中的常用函数介绍
这篇文章主要介绍了PHP SPL标准库中的常用函数介绍,本文着重讲解了spl_autoload_extensions().spl_autoload_register().spl_autoload()三 ...
- json pandas 内存溢出_pandas中的常用函数
Pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具. 近年随着大数据时代的到来,产生 ...
- 开发中Docker常用容器记录
开发中Docker常用容器记录 概览 分享工作学习中常用的Docker容器使用: 比如常用数据库的使用 消息队列类的使用 用于服务发现的容器使用 还有其他工作学习中使用到的 持续更新:https:// ...
- [C++基础]队列queue中的常用函数
[C++基础]队列queue中的常用函数 本博客转载自:https://www.cnblogs.com/xuning/p/3321733.html 在C++中只要#include即可使用队列类,其中在 ...
- iOS中使用c函数快速获取一个目录所占的空间大小
在编写iOS应用时,我们都会大量把服务器的接口调用数据或者图片数据进行缓存,为了更好的使用体验,有时候我们也会把各种缓存的数据所占的空间大小告诉用户,提供给用户参考,并让用户可以手动清除缓存数据,就像 ...
- Makefile中的常用函数——wildcard,patsubst,filter
Makefile中的常用函数 wildcard 提取文件用 #拿到DIR指定目录的所有文件 SRC = $(wildcard $(DIR)) #拿到当前文件夹下的 *.cpp 文件 src=$(wil ...
最新文章
- 对于大数据大流量情况下微软架构的水平扩展的遐想(瞎想)
- html 超出部分被遮挡,div被iframe遮住的几种情况及解决方法
- 计算机cpu 和 主板型号,CPU和主板怎么搭配?intel七代/八代/九代处理器和主板搭配对照表...
- win10开机慢怎么解决_细说Win10启动慢怎么办
- 0040 Java学习笔记-多线程-线程run()方法中的异常
- 构建在线教育弹性高可用视频处理架构实战
- java中的变量是原子的_Java原子变量
- python语言程序设计西安电子科技大学答案-中国科学技术大学2019自命题科目覆盖范围及参考书目...
- SPSS使用命令语法之复制与粘贴讲解
- linux nginx环境下,网站不显示字体和图形.(图形变成了方框),解决nginx下加载eot|otf|ttf|woff|svg等404 错误问题
- Java开发手册!java项目描述模板,挥泪整理面经
- Allure自动化测试报告之修改allure测试报告logo与标题,让报告具有公司的气息
- iOS开发笔记1:ToDoList、相册、地图应用及新浪微博
- JavaScript之移动端网页特效与本地存储(57th)
- 什么是电口模块?它和光模块有什么区别?
- 11矩阵空间、秩1矩阵和小世界图
- java自动生成物流单号
- 厦门宝讯网捷:拼多多一件代发怎么做?
- 解决8K超高清视频内容匮乏难题,博冠助力百城千屏活动
- MySQL占用CPU过高
热门文章
- mysql 删除not null_从MySQL的列中删除NOT NULL限制?
- java in out 参数_总是避免Java中的in-out参数?
- navicat怎么查看数据库的url_连接数据库url怎么写
- exe解包和重新打包_Jira 批量提交问题 + 生成可执行文件exe
- 扫地机器人单扫和双扫_小米扫拖机器人体验:再见了,拖把君
- python中end 1 意思_python中“end=”是什么意思?_后端开发
- harmonyos sdk,HarmonyOS SDK对应的API版本跃迁引发的历史工程适配问题解决方案
- (斜率,点和线段)zzuli1196数星星(二)
- vue读取终端硬件信息_双通道RFID模块助力电力数据采集终端(不必多说,直接测试对比)...
- 强制关机对电脑的影响_笔记本电脑需要每天关机吗?长期开机对电脑有影响么?...