[OpenGL]纹理

纹理

纹理是一个2D图片(甚至也有1D和3D的纹理),它可以用来添加物体的细节;你可以想象纹理是墙纸,当你把墙纸贴到白色的墙上,这样你的墙就有各种图案和花纹了。列如我把下面这个三角形贴上墙砖的纹理,它看起来就有墙砖的外表了。

Read more   2020/8/28 posted in  音视频

[OpenGL]变换

变换方案

我们在OpenGL中对物体进行变换,可以尝试对所有顶点进行变换计算,得到变换后的顶点数据,并且重新渲染,得到移动后的位置。但是这样非常繁琐,而且顶点数据一多,我们的计算量将超级大。通常我们更多的是采用矩阵(Matrix)进行变换处理,在介绍矩阵前,我们先了解一下向量。

Read more   2020/8/26 posted in  音视频

[OpenGL]混合

混合


如上图所示,绿色色块有一定透明度,红色色块在移动到绿色色块下时,重叠部分的颜色进行了混合,变成了一个比较脏的颜色。混合功能在OpenGL中默认是关闭的,我们需要开启GL_BLEND来启用混合功能:

glEnable(GL_BLEND);
Read more   2020/8/21 posted in  音视频

[OpenGL ES]绘制一张图片

流程说明


使用OpenGL绘制一张图的基本流程如下:

Read more   2020/8/18 posted in  音视频

[OpenGL]隐藏面消除解决方案

隐藏面消除
观察上面的这个甜甜圈,我们会发现它在旋转的时候会出现阴影,这是因为我们在渲染的时候把对观察者不可见的面也渲染了,对于不可见的部分,应该尽早丢弃,比如在一个不透明墙壁后面的物体就不应该渲染。这种情况我们叫做隐藏面消除

Read more   2020/8/1 posted in  音视频

[OpenGL]固定存储着色器和图元连接方式

OpenGL渲染架构

  1. Client是客户端,Server是服务端,Client的所有操作都是在CPU中进行,Server的所有操作是在GPU中进行。
  2. Client主要任务是APP通过调用OpenGL的API,提供Server所需要的数据,包括Texture DataUniformsAttributes
  3. Server通过顶点着色器进行坐标数据处理,再经过图元装配光栅化,传给片元着色器,最后再进行渲染。
Read more   2020/7/24 posted in  音视频

[OpenGL]案例2-使用键盘方向键控制一个正方形移动

上一篇文章我们已经知道如何在屏幕上绘制一个简单的图形,这次我们给图形加上一点交互,根据键盘方向键进行相应的移动和旋转。效果如下:键盘控制四边形移动旋转

Read more   2020/7/18 posted in  音视频

[OpenGL]案例1-使用OpenGL绘制一个三角形

几个重要的库

OpenGL库

Read more   2020/7/16 posted in  音视频

CPU和GPU简介

CPU和GPU的区别

CPU和GPU在设计上有很大的不同,CPU需要有很强的通用性来处理各种不同类型的数据,同时又要处理大量的逻辑判断,处理各种事件的响应和流程控制,分支跳转和中断处理。GPU主要用来处理类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。
CPU

GPU

Read more   2020/7/9 posted in  音视频

[OpenGL]音视频处理中的专业术语

框架说明

  • OpenGL: 跨编程语言和跨平台的编程图形程序接口,是一种协议。
  • OpenGL ES:OpenGL的子集,针对手机和嵌入式设备设计。
  • DirectX:Windows的多媒体处理框架,不是跨平台的,可以处理显示部分、声⾳部分、输⼊部分和⽹络部分。
  • Metal:是苹果为了解决3D渲染推出的框架,暂时不能跨平台,苹果底层都改用Metal了。
  • OpenCV:主要功能是图像识别(人脸识别/身份证识别),现在和人工智能结合使用的场景比较多。
Read more   2020/7/3 posted in  音视频