视频特效学习02- OpenGL渲染基础

2020-04-12  本文已影响0人  小破孩丫
学习目标:

1.OpenGL渲染架构

2.OpenGL数据传递的3种方式

通道:Attributes、Uniforms、Texture Data
OpenGL API向GPU传递数据有三个通道,分别是Attributes属性、Uniforms和Texture Data纹理数据,根据场景合理的使用对应的管道

tips:不能为了达到目的而使用Uniform值传递颜色值到片元着色器,颜色值只能从Attributes值间接传递到片元着色器。
视频解码渲染使用到的颜色空间是YUV颜色值,需要将YUV乘以转换矩阵转换成RGBA来填充颜色以正确地渲染到屏幕上,这时的旋转矩阵可以通过Uniform传递到片元着色器。

3.OpenGL提供的着色器

固定存储着色器:早期的OpenGL版本封装的,帮助开发者完成图形渲染的程序块。

4.正投影/透视投影API的使用

5.OpenGL上常见图元

GLBatch,是GLTools中包含的一个简单容器类。

// 开始数据复制
// 参数1:图元
// 参数2:顶点数
// 参数3:一组或者两组纹理坐标(可选)
void GLBatch::Begain(GLeunm primitice, GLuint nVerts, GLuint nTexttureUnints = 0);

// 复制顶点数据(一个由3分量x,y,z顶点组成的数组)
void GLBatch::CopyVertexData3f(GLfloat *vVerts);

// 复制表面法线数据
void GLBatch::CopyNormalDataf(GLfloat *vNorms);

// 复制颜色数据
void GLBatch:CopyColorData4f(GLfloat *vColors);

// 复制纹理坐标数据
void GLBatch:CopyTextCoorData2f(GLFloat *vTextCoords,GLuint uiTextureLayer);

// 结束数据复制
void GLBatch::End(void);

//绘制图形
void GLBatch::Draw(void);
上一篇 下一篇

猜你喜欢

热点阅读