注册

OpenGL中的图片渲染流程

在OpenGL中的,我们通常对图片或者视频进行渲染或者颜色的重新的绘制,那么这些过程是怎么实现的呢?

我们通过客户端,来接收到不同的数据,坐标数据或者视频数据,根据不同的数据形式,我们选择不同的通道(传输方式)来传入到我们的接收器中,来处理不同的数据

3530f70d4dadb2e9f1c38143817b3a90.png
传递数据的三种方式

1.传递数据处理的流程:顶点着色器--->光栅化/图元装配--->片元着色器--->渲染完成

2.TextureData(纹理)、Uniforms:可以直接的传递到顶点着色器或者片元着色器中。
    Attributes(属性):只能传递到顶点着色器中,进过处理后的数据可以传递到片元着色器中

3.着色器中的是我们可以控制的,但是光栅化/图元装配是由系统来完成的,不可控

三种传输方式详解

1.Attributes:只能传递到顶点着色器中,通过处理可以传递到片元着色器中
   使用场景:当数据不停的进行变换时
   经常传递的数据:颜色数据、顶点数据、纹理坐标、关照法线

2.Uniform:可以直接传递数据到顶点/片元着色器中
   使用场景:比较统一的处理方式,不会发生太多变化时
   顶点着色器处理的场景:图形的旋转操作,每个顶点乘以旋转矩阵来完成(旋转矩阵基本是不怎么改变的)
   片元着色器处理场景:处理视频,视频解码之后是由一帧帧的图片来组成的,对视频的颜色空间进行渲染处理(在视频中常使用的颜色空间为YUV)将YUV颜色空间乘以矩阵转化为RGB颜色来处理视频

3.TextureData(纹理):颜色的填充,视频的处理。一般这里的数据不会传递到顶点着色器的,这里主要是用来处理图片的,一般不涉及到顶点数据的处理

0 个评论

要回复文章请先登录注册