OpenGL初体验--初始化概念

Q: OpenGL是什么?它是干什么用的?大概是一个怎样的工作方式?对于代码层面来说怎么理解?

1、OpenGL是什么?它是干什么用的?

对于程序员成说的OpenGL,是操作图形硬件的一种软件接口。对于2D、3D、动画、游戏等等图形界面,计算机主要是通过CPU的计算,然后GPU的绘制渲染呈现在屏幕上的,可是程序员不能够直接操作计算机硬件来做这些事情,所以就要通过软件来操作,那么OpenGL就是这样的软件。

OpenGL本身就是一个状态机,具体怎么理解(不明白,百度)。

2、OpenGL大概是一个怎样的工作方式\工作原理?

OpenGL被当作客户端-服务器系统来实现的,应用程序是客户端,图形硬件厂商提供的OpenGL实现是服务器。如图所示,客户端程序需要调用OpenGL的接口实现3D渲染,那么OpenGL命令和数据会缓存在RAM中,在一定条件下,会将这些命令和数据通过CPU时钟发送到VRAM,在GPU的控制下,使用VRAM中的数据和命令,完成图形的渲染,并将结果存入帧缓冲区中,帧缓冲区中的帧最终会被发送到显示器上,显示出结果。在现代的图形硬件系统中,还支持不通过CPU时钟直接将数据由RAM发送至VRAM或直接将数据由帧缓冲区发送至RAM(例如OpenGL中的VBO,PBO)。

image.png

3、对于代码层面来说怎么理解?

image.png

对于初体验的代码来说,主要有三个,main(),setupRC(),renderScene()。

main函数不用说,一切程序的入口基本都是main,定义了一些程序启动时需要配置的信息。

setupRC 按照OC的理解算是Onject的init函数,定义了一些初始化的参数。

renderScene 召唤场景,也就是渲染,当初始化数据全部完毕之后,就要把数字模型数据转换为图形数据。

setupRC相当于CPU,进行数据的计算等等,renderScene相当于GPU,进行渲染绘制。

OpenGL从代码到最终窗口的流程

1、通过矩阵定义顶点数据(setupRC函数里面的矩阵顶点初始化)—>通过着色器绘制渲染静态物体(shaderManger.useStockShader绘制模型)—>通过矩阵变换达到模型视图变换(m3dRotationMatrix44等使模型旋转)—>通过视口(viewport)得到视景体—>通过投影得到投影矩阵(GLFrustum。即通过投影得到)—>裁剪处理、透视除法处理、视点变换(没弄明白呢)—>得到window窗口

image.png

重点

这里有两个重点方法:
glClearColor():意思是设置屏幕背景颜色。
glClear():清除缓冲区数据。

怎么理解?
OpenGL对于图形的展示还是动画也好,可以比喻理解为,书角动画(动画帧),每一页的平面图形算是一帧,当要下一页图画时,上一页的肯定消失了(撕掉了还是覆盖了都可以),OpenGL也是如此,当要显示下一帧图画时,当前帧图画需要被Clear掉,也就是glClear(),背景颜色即是glClearColor()。


image.png

分割线,初体验OpenGL 函数类的理解

Batch:批次,可以理解为模型
GLBatch:OpenGL模型,绘制各种图形都需要用到
GLTriangleBatch:三角形批次类,重构的三角形模型
GLBatchBase:批次类基类(模型基类)
GLMatrixStack:矩阵堆栈,用于管理矩阵
GLShaderManager:着色器
GLFrame:就是坐标,主要是观察者(照相机)坐标和物体坐标
GLFrustum:视景体,(投影矩阵通过它来设置(正投影、透视投影))
GLGeometryTransform:几何变换管道,用于管理堆栈 GLMatrixStack

参考:

OpenGL原理http://www.twinklingstar.cn/2015/1532/introduce-to-opengl/

http://anony3721.blog.163.com/blog/static/51197420113206471827/

以下图片用于帮助理解

image.png
image.png
image.png
image.png

对于OpenGL逻辑来说,视口就是Windows窗口

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

推荐阅读更多精彩内容