OpenGL ES的状态机说法其实也没那么云山雾照,比较容易理解!
OpenGL ES的状态机说法其实也没那么云山雾照,比较容易理解!
太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)
本文遵循“署名-非商业用途-保持一致”创作公用协议
转载请保留此句:太阳火神的美丽人生 - 本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。
OpenGL ES的学习,很多人,或者说大多数人,先了解到的是,它是一个状态机。
直到现在,我才明白状态机的真正含义,原来以为就是简单的上下文记录着所有状态,其实这是不全面的理解,更重要的上一个上下文的概念。
尤其像渲染缓冲区、纹理单元、顶点缓存对象等,相关的API操作并未提供明了的参数,指定是针对谁操作的,其实是根据状态记录来选择的。
这可能也是为什么OpenGL ES学起来要难的原因吧。
打个比方,一个屠夫,卖猪肉、牛肉、羊肉,也或者挂着羊头卖狗肉?这个不行,状态机对不上啊,哈哈哈!
当有人要买猪肉时,那么屠夫就在猪肉案板上,把一片子猪肉摆上来,开始按猪的身体结构开剔,开剁;
又来人要买另一片子猪肉,那么这个屠夫只好把前一块猪肉剩下的从案板上挪下去,再把这片子新的猪肉挪上来。
有可能有的人要的少,那么再把前一片肉卖剩下的拿上来,继续操作。
等到有买猪肉和羊肉时,猪肉得用猪肉的案板,羊肉有可能有牛肉的案板,这两个肉都有山味儿,应该问题不大,就像颜色缓存和深度缓冲一样。
好了,以上的描述太清楚不过了,无论你屠夫怎么动家伙,砍、剁、剔、割、片这些刀法,都是针对案板上的肉进行的,那么具体操作的是哪块儿肉,那就得看客人要的哪块肉,就把它拿到案板上来。
好了,到此为止,这个案板就是状态机,屠夫永远是针对案板上的肉操作,案板记录着要切的肉,这就是状态机的另一种理解。
也就是这个状态机的道理理解浅了,致使一直没有明白很多操作是干什么的只能先死记硬背,而终了还是没掌握。
噢,别忘了,我们是要理解状态机,不是来讲怎么卖猪肉的,哈哈。
OpenGL ES的状态机说法其实也没那么云山雾照,比较容易理解!相关推荐
- OPENGL ES 3.0 学习总结
Opengl ES是opengl的一个分支,opengl es集中了opengl中高效的绘图功能部分,省去了低效繁杂的绘图功能部分,主要应用于手持和嵌入式设备的3D绘图,突出的优点就是处理快,消耗小. ...
- OpenGL ES 2.0 总体概述
文章目录 OpenGL ES 2.0 总体概述 1. OpenGL ES 的两个小伙伴 1.1 EGL 1.2 GLSL 2. 屏幕图片的本质和产生过程 3. OpenGL ES pipeline 3 ...
- OPENGL ES 2.0 知识串讲 (8) ——OPENGL ES 详解II(传入绘制信息)
上节回顾 上一节讲述了如何通过 OpenGL ES 给 GPU 关联一套可以使用的 shader,这 一套 shader 是被放在一个 program 中当作一个整体供 GPU 使用的.那么 GPU ...
- OpenGL ES: (5) OpenGL的基本概念、OpenGL ES 在屏幕产生图片的过程、OpenGL管线(pipeline)...
一. OpenGL的基本概念 OpenGL 的结构可以从逻辑上划分为下面 3 个部分: 图元(Primitives) 缓冲区(Buffers) 光栅化(Rasterize) 图元(Primitives ...
- OPENGL ES 2.0 知识串讲(1)――OPENGL ES 2.0 概括
更多图形知识请关注我的公众号: 前言 电脑是做什么用的? 电脑又被称为计算机,那么最重要的工作就是计算.看过三体的同学都知道, 电脑中有无数纳米级别的计算单元,通过 0 和 1 的转换,完成加减乘除的 ...
- EGL接口介绍-----Android OpenGL ES底层开发
引自:http://www.cnitblog.com/zouzheng/archive/2011/05/30/74326.html EGL 是 OpenGL ES 和底层 Native 平台视窗系统之 ...
- 以OpenGL/ES视角介绍gfx-hal(Vulkan) Framebuffer接口使用
文档列表见:Rust 移动端跨平台复杂图形渲染项目开发系列总结(目录) 草稿状态 以OpenGL/ES Framebuffer角度看,如果用gfx-hal(Vulkan)接口实现类似OpenGL/ES ...
- cocos2d-x 2.X for Android中需要使用OpenGL ES 2.0
cocos2d-x 2.X for Android中需要使用OpenGL ES 2.0 到了2.X版本中,cocos2d-x for Android已经不再支持(或者说放弃支持)opengl es 1 ...
- OpenGL ES着色器语言之变量和数据类型
所有变量和函数在使用前必须声明.变量和函数名是标识符. 没有默认类型,所有变量和函数声明必须包含一个声明类型以及可选的修饰符.变量在声明的时候首先要标明类型,后边可以跟多个变量,之间用逗号隔开.很多情 ...
最新文章
- 选型必看:RabbitMQ 七战 Kafka,差异立现
- 帝国cms后台使用savesufer.js生成大音频audio彩色频谱数据
- 【直播回放】新手如何入门并学习计算机视觉?
- PostMessage发送字符串和结构体
- 麦森数(洛谷P1045题题解,Java语言描述)
- mysql 6位随机数_MySQL生成固定位数的随机数
- Dematel模型的指标分析
- 单片机 上传服务器协议,单片机数据上传到云服务器
- 空城计课件软件测试,空城计课件公开课.ppt
- 微软自带虚拟机Hyper—V启用
- 《大江大河2》中教科书般的精神自救-如何让反感你的人欣赏你
- matlab电解电容在哪,基于MATLAB的电容器直流局部放电检测.pdf
- SinuTrain for SINUMERIK 仿真西门子最新版仿真软件
- n1 armbian php,斐讯N1盒子armbian 5.77蓝牙连接详细步骤斐讯N1刷入armbian 5.77写入emmc...
- C++ 性能优化篇一《优化概述》
- 基于单片机的家庭火灾警报系统设计
- 《设计模式之禅》-桥梁模式
- 算法计算出股票最佳交易时间点
- python graphql_详解Python Graphql
- GCC总结、C语言关键字和运算符
热门文章
- python的matplotlib画饼状图
- 计算机系统字体变大,手把手教你如何调整电脑字体大小
- 贤者之路,Cuda block内部矩阵求逆,mxm矩阵 复杂度为O(m)
- spring引入多个properties文件
- 蜂蜜梨文案:销售水果蜂蜜梨文案,朋友圈水果文案蜂蜜梨
- 基于JAVA星星电影购票网站计算机毕业设计源码+系统+数据库+lw文档+部署
- 从成交量变化抓住股票涨跌
- Python云端系统开发——将Python数据分析代码发布到Django网站上
- 江南科友 hac linux shell,运维安全审计系统(HAC 1000E、HAC 1000P)
- rust:错误处理 Blocking waiting for file lock on package cache