摘要:
一、YUV格式介绍 首先,YUV格式有两大类,一类是planar,一类是packed。planar格式是先存储所有像素点的Y,然后是所有像素点的U,最后是所有像素点的V;packed格式是每个像素点的YUV连续交叉存储。 YUV三个分量中,Y表示明亮度(Luminance),表示灰度值;UV表示色度 阅读全文
随笔分类 - OpenGL Metal
Metal笔记(二) Metal Shader Language
2021-07-26 13:00 by jiayayao, 287 阅读, 收藏, 编辑
摘要:
使用Clang和LLVM编译;Metal中的纹理或者帧缓冲区attachment的像素使用的坐标系统的原点是左上角。 一、纹理 纹理类型 纹理类型是一个句柄,指向一维/二维/三维纹理数据,而纹理数据对应一个纹理的某个level的mipmap的全部或者一部分; 纹理的访问权限 sample, read 阅读全文
Metal笔记(一) 基础代码调用
2021-07-26 11:18 by jiayayao, 624 阅读, 收藏, 编辑
摘要:
Metal根据不同的CommandBufferEncoder可以提供不同的能力,除了3D渲染能力,还可以提供强大的计算能力。 Metal、MetalKit。Metal提供对GPU的访问,MetalKit提供了常用的实用程序,可以更轻松的开发Metal应用程序。 分离渲染循环 将渲染循环分离到自己的类 阅读全文
OpenGL笔记(六) 坐标系统
2020-01-12 17:12 by jiayayao, 247 阅读, 收藏, 编辑
摘要:
1. local space局部空间 局部空间是指物体所在的坐标空间,即对象最开始所在的地方。 2. world space世界空间 是指顶点相对于(游戏)世界的坐标。 3. view space观察空间 观察空间是将世界空间坐标转化为用户视野前方的坐标而产生的结果。因此观察空间就是从摄像机的视角所 阅读全文
OpenGL笔记(五) 着色器渲染(以Android为例)
2018-08-19 19:08 by jiayayao, 2702 阅读, 收藏, 编辑
摘要:
一、Android平台上下文环境的创建及初始化 1. 首先实例化Android上下文环境,即EGL的初始化。 2. 将EGL和设备的屏幕连接起来。使用EGLSurface,通过EGL库提供的eglCreateWindowSurface可以创建一个可实际显示的Surface,通过EGL库提供的eglC 阅读全文
OpenGL笔记(四) 关键API及VAO、VBO、EBO、FBO等名词解释
2018-08-11 14:29 by jiayayao, 1445 阅读, 收藏, 编辑
摘要:
一、一些重要的 GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count) 顶点法绘制:使用顶点数组方式绘制图形。第一个参数是绘制方式,第二个是顶点数组的起点,第三个是从顶点数组读取的个数。 v 阅读全文
OpenGL笔记(三) GLSL语法与内建函数
2018-08-08 23:06 by jiayayao, 2457 阅读, 收藏, 编辑
摘要:
GLSL,OpenGL Shading Language,GLSL中没有指针,并且没有任何类型的字符串或字符。 (1)GLSL的修饰符与基本数据类型 const:用于声明非可写的编译时常量变量; attribute:用于经常更改的信息,只能在顶点着色器中使用; uniform:用于外部程序传递给sh 阅读全文
OpenGL笔记(二) 渲染管线
2018-08-07 23:37 by jiayayao, 490 阅读, 收藏, 编辑
摘要:
GLSL着色器代码分为两个部分,即Vertex Shader(顶点着色器)与Fragment Shader(片元着色器)。 上下文环境搭建 OGL不负责窗口管理与上下文环境管理,该职责由平台完成。在Android平台,该职责由EGL来完成,iOS平台是EAGL完成。 OGL渲染管线分为如下几个阶段: 阅读全文
OpenGL笔记(一) 关键知识点
2018-03-03 16:26 by jiayayao, 2614 阅读, 收藏, 编辑
摘要:
一、一些概念: GLTools: 一些有用且可复用的函数 GLEW: OpenGL API的一些扩展机制 GLUT: OpenGL Utility toolkit, OpenGL跨平台相关,隐藏平台相关细节 RC代表渲染环境(Rendering Context),是运行中的OpenGL状态机句柄 固 阅读全文
使用Android的OpenGL编写视频播放器
2017-03-07 20:35 by jiayayao, 6623 阅读, 收藏, 编辑
摘要:
Android自身有MediaPlayer播放器,为什么还要使用OpenGL?因为使用OpenGL可以实现更多的效果,比如对视频翻转一定角度,加任意特效,多视频合并播放等,类似“激萌”的APP应该就是这样做的;相比之下,直接调用MediaPlayer的功能就少太多了。 OpenGL ES剔除了Ope 阅读全文