OpenGL ES的状态机说法其实也没那么云山雾照,比较容易理解!

OpenGL ES的状态机说法其实也没那么云山雾照,比较容易理解!

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)

本文遵循“署名-非商业用途-保持一致”创作公用协议

转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。

OpenGL ES的学习,很多人,或者说大多数人,先了解到的是,它是一个状态机。

直到现在,我才明白状态机的真正含义,原来以为就是简单的上下文记录着所有状态,其实这是不全面的理解,更重要的上一个上下文的概念。

尤其像渲染缓冲区、纹理单元、顶点缓存对象等,相关的API操作并未提供明了的参数,指定是针对谁操作的,其实是根据状态记录来选择的。

这可能也是为什么OpenGL ES学起来要难的原因吧。

打个比方,一个屠夫,卖猪肉、牛肉、羊肉,也或者挂着羊头卖狗肉?这个不行,状态机对不上啊,哈哈哈!

当有人要买猪肉时,那么屠夫就在猪肉案板上,把一片子猪肉摆上来,开始按猪的身体结构开剔,开剁;

又来人要买另一片子猪肉,那么这个屠夫只好把前一块猪肉剩下的从案板上挪下去,再把这片子新的猪肉挪上来。

有可能有的人要的少,那么再把前一片肉卖剩下的拿上来,继续操作。

等到有买猪肉和羊肉时,猪肉得用猪肉的案板,羊肉有可能有牛肉的案板,这两个肉都有山味儿,应该问题不大,就像颜色缓存和深度缓冲一样。

好了,以上的描述太清楚不过了,无论你屠夫怎么动家伙,砍、剁、剔、割、片这些刀法,都是针对案板上的肉进行的,那么具体操作的是哪块儿肉,那就得看客人要的哪块肉,就把它拿到案板上来。

好了,到此为止,这个案板就是状态机,屠夫永远是针对案板上的肉操作,案板记录着要切的肉,这就是状态机的另一种理解。

也就是这个状态机的道理理解浅了,致使一直没有明白很多操作是干什么的只能先死记硬背,而终了还是没掌握。

噢,别忘了,我们是要理解状态机,不是来讲怎么卖猪肉的,哈哈。

时间: 2024-09-26 20:16:06

OpenGL ES的状态机说法其实也没那么云山雾照,比较容易理解!的相关文章

OpenGL ES 多个模型导入呈现的公共部分

OpenGL ES 多个模型导入呈现的公共部分 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 为什么要提这个话题呢,是因为多个模型文件obj导入到OpenGL ES中,会有多个纹理库,多个几何

OpenGL ES 纹理贴图的重复与嵌位概念理解

OpenGL ES 纹理贴图的重复与嵌位概念理解 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 以下有一篇转载的Android中关于纹理贴图规则的文章,很不多. 不过我这里是想要深入研究如果让

关于OpenGL ES纹理坐标的具体含义

关于OpenGL ES纹理坐标的具体含义 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 关于OpenGL ES的顶点属性信息,包括几何顶点坐标.纹理坐标和法线坐标. 几何顶点坐标,不用说了,用

ARKit & OpenGL ES - ARKit 原理及实现

原理篇 如果你想了解更多关于OpenGL ES的知识,请移步至 OpenGL ES相关文章目录 本文所用的代码在https://github.com/SquarePants1991/OpenGLESLearn.git的ARKit分支中. iOS11推出了新框架ARKit,通过ARKit和SceneKit可以很方便的制作AR App.苹果也提供了AR基本的应用框架,你可以直接从此开始你的AR App的开发. 不过本系列文章将使用OpenGL ES为ARKit提供渲染支持,接下来我们先去了解一下AR

OpenGL ES 中如何实现在房间中查看屋内摆设的效果

OpenGL ES 中如何实现在房间中查看屋内摆设的效果 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 如题的效果,分析一下,不难发现,当要能看到房间内的东西时,那么房间靠近观察者的墙需要打掉

基于OpenGL ES 的深度学习框架编写

背景与工程定位 背景 项目组基于深度学习实现了视频风格化和人像抠图的功能,但这是在PC/服务端上跑的,现在需要移植到移动端,因此需要一个移动端的深度学习的计算框架. 同类型的库 caffe-Android-lib 目前应该是最便于集成使用的深度学习框架库.  tensorflow和mxnet据说也有对应的android库,因时间原因暂未测试.  CNNdroid,网址https://zhuanlan.zhihu.com/p/25259452,这个是用  renderscript 作优化的深度学习

OpenGL ES 在 iOS 平台纹理贴图倒置的问题研究

OpenGL ES 在 iOS 平台纹理贴图倒置的问题研究 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. (一大疑惑,为什么android上关于OpenGL ES 开发的资料很多,确涉及该主题

OpenGL ES 在 Android 开发库中 - 能不能再牛点儿

OpenGL ES 在 Android 开发库中 - 能不能再牛点儿 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. Android 开发库中突然发现这些个东西,原来和原生的函数名一模一样,而且

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.7节蓝牙通信

2.7 蓝牙通信 Android 3D游戏开发技术宝典--OpenGL ES 2.0 随着硬件设备价格的不断降低,大部分智能手机上都已配备了蓝牙网络模块,Android设备也是如此.如果能为一些小型的休闲娱乐游戏增加蓝牙联网对战的功能,将会大大增加游戏的可玩性.本节将向读者详细介绍如何在Android平台下开发具有蓝牙互联功能的应用程序. 2.7.1 蓝牙通信的基本知识 蓝牙是一种支持设备短距离通信(一般是10m以内)的无线技术,其数据传输时不仅不需要连线,而且传输速率也比传统手持设备的红外模式