OpenGL学习-名词与纹理(-)

OpenGL名词熟悉

一:着色器.函数/方法(代码段)->CPU来使用.shader(代码段)->GPU
二:固定着色器:苹果提供Api(代码段)->调用(参数)OpenGL来提供
三:自定义着色器.自己基于GLSL语法来进行编写代码段
四:顶点着色器:用来处理顶点相关代码.1确定位置.2.缩放/平移/旋转.3手机端显示3D效果.
手机屏幕实际是2D.我们将3D转换成2D(投影换算)
五.片元着色器/像素着色器:片元(像素)处理一个个像素点.eg:120*120像素点.处理14400次.针对GPU来说不算多.因为GPU是并行运算的.
拓展一下:图片进行饱和度调整.实际就是给每一个片元点修改对应的色值
六.GLSL:自定义着色器.代码OpenGL标准调用GPU来计算
七.光栅化:2个过程(不可编程).第一个是确定图形像素范围.第二个过程:颜色附着上去
八.纹理:压缩图片->位图OpenGL.tga纹理文件.在移动端显示一张png/jpg均是转换成位图以后进行展示
九.混合:Layer.多个图层叠加.叠加部分会重新计算.如果有透明度.那么就会产生离屏渲染
十.变换矩阵:线性代数.就是旋转/平移/缩放
十一.投影矩阵:就是将3D投影到2D设备上
投影方式:
A.正投影(平行投影):不管远近.都是1:1.camera不是相机是观察者.用户显示2D效果.不是针对3D透视
B透视投影.远小近大.针对3D透视
OpenGL摄像机坐标系.就是观察者坐标系.从哪个角度观察.就会呈现不一样的视图

OpenGL着色器相关

I CRIUREMWTWERIAEW, TEO8- MIAB.png

OpenGL图元连接相关

GL LINES.png

OpenGL纹理学习

纹理是一种图形数据.主要用于在屏幕中给OpenGL显示物体贴上图形数据.就像装修时家里的墙上贴墙纸

纹理常用的API主要有三个

a.分配纹理对象

//参数1.待使用的纹理个数
//参数2.待使用的纹理数组
GLAPI void GLAPIENTRY glGenTextures (GLsizei n, GLuint *textures);

b.读取纹理.

//参数1.纹理文件名称
//参数2.纹理的宽变量地址
//参数3.纹理的高变量地址
//参数4.组件格式变量地址(获取纹理单元存储的颜色成分)
//参数5.文件格式变量地址
//返回值GLbyte *:指向图像数据的指针
GLbyte *gltReadTGABits(const char *szFileName, GLint *iWidth, GLint *iHeight, GLint *iComponents, GLenum *eFormat, GLbyte *pData = NULL);

c.载入纹理

//参数1.纹理维度.GL_TEXTURE_1D,GL_TEXTURE_2D,GL_TEXTURE_3D
//参数2.mip贴图层次.一般使用0
//参数3.纹理单元存储的颜色成分.
//参数4.纹理的宽度
//参数5.纹理的高度
//参数6.纹理的深度.一般使用0
//参数7.像素数据的数据类型.GL_UNSIGNED_BYTE无符号整型
//参数8.指向纹理图像数据的指针
GLAPI void GLAPIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);

d.绑定纹理

//参数1.纹理维度GL_TEXTURE_1D,GL_TEXTURE_2D,GL_TEXTURE_3D
//参数2.需要绑定的纹理
GLAPI void GLAPIENTRY glBindTexture (GLenum target, GLuint texture);

一般我们在绑定纹理时会设置纹理参数.包含:
1.过滤方式:常用的有临近过滤(GL_NEAREST).线性过滤(GL_LINEAR).效果如下:

image.png

过滤方式还有Mip贴图纹理过滤
image.png

2.环绕方式:即当纹理不满足填充空间时.需要使用什么样的环绕方式填充

image.png

纹理设置方式:
//参数1.纹理纬度
//参数2.纹理设置类型
//参数3.类型对象的效果
GLAPI void GLAPIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);

//纹理放大时.使用线性过滤
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
//纹理缩小时.使用临近过滤
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
//x轴使用重复环绕
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
//y轴使用拉伸填充环绕
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);

OpenGL纹理映射方式:

OpenGL纹理映射.png

这里值得注意的是.在OpenGL中.每个单元都是一个三角形.即便是四边形也是2个三角形组装起来.所以对于绘制四边形.可以让共用的对角点写在中间.这样就能实现两点共用.绘制出四边形

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容