美文网首页
OpenGL渲染管线简单介绍

OpenGL渲染管线简单介绍

作者: hie | 来源:发表于2018-12-02 13:53 被阅读0次
OpenGL 渲染管线简化版本

上图中,通过调用OpenGL API把我们所编写的代码通过Texture Data、Uniforms、attributes三种方式,传递给顶点着色器、片元着色器,通过光栅化,最终渲染成目标图形。

OpenGL有三种方法可以向着色器传递数据:属性、uniform 值、纹理

1、属性(Attributes):

就是对每一个顶点都要作改变的数据元素。实际上,顶点位置本身 就是⼀个属性。属性值可以是浮点数、整数、布尔数据。

属性总是以四维向量的形式进行内部存储的,即使我们不会使用所有的4个分量。⼀个顶点位置可能存储(x,y,z),将占有4个分量中的3个。

实际上如果是在平面情况下:只要在xy平⾯上就能绘制,那么Z分量就会⾃动设置为0;

属性还可以是:纹理坐标、颜⾊色值、关照计算表⾯法线。

属性会从本地客户机内存中复制存储在图形硬件中的一个缓冲区上。这些属性只提供给顶点着⾊器使⽤,对于⽚元着⾊器⽊有太大意义。

声明:这些属性对每个顶点都要做改变,但并不意味着它们的值不能重复。通常情况下,它们都是不一样的,但有可能整个数组都是同一值的情况。

注意:属性值不像其他两种传输方式可以直接作用于片元着色器,必须通过中间介传递才能到片元着色器

2、Uniform值

属性是一种对整个批次属性都取统一值的单一值。它是不变的。通过设置uniform变量就紧接着发送一个图元批次命令,Uniform变量实际上可以无数次限制地使用,设置一个应⽤于整个表⾯的单个颜⾊色值,还可以设置⼀个时间值。在每次渲染某种类型的顶点动画时修改它。

注意:这⾥的uniform 变量每个批次改变一次,⽽不是每个顶点改变一 次。

uniform变量最常见的应⽤是在顶点渲染中设置变换矩阵 。

与属性相同点:可以是浮点值、整数、布尔值 。

与属性不同点:顶点着⾊器和⽚元着⾊器都可以使用uniform变量。uniform 变量还可以是标量类型、⽮量类型、uniform矩阵。

3、纹理(Texture)

在顶点着⾊器、片段着⾊器中都可以对纹理数据进行采样和筛选。 

典型的应⽤场景:⽚段着⾊器对⼀个纹理值进⾏采样,然后在⼀个三⻆形表⾯应⽤渲染纹理数据。

 纹理数据,不仅仅表现在图形,很多图形文件格式都是以无符号字节 (每个颜⾊通道8位)形式对颜⾊分量进行存储的。

相关文章

  • OpenGL渲染管线简单介绍

    上图中,通过调用OpenGL API把我们所编写的代码通过Texture Data、Uniforms、attrib...

  • 通过OpenGL理解前端渲染原理(1)

    通过OpenGL理解前端渲染原理,本文着重介绍渲染管线工作流程。 一、OpenGL OpenGL,是一套绘制3D图...

  • OpenGLES 入门(一)着色器简介

    与OpenGL ES1.x渲染管线相比,OpenGL ES 2.0渲染管线中“顶点着色器”取代了OpenGL ES...

  • 基础渲染

    opengl opengl渲染管线基础架构 3.1 基础图形管线 3.1.1 客户机-服务器 就opengl而言,...

  • 编写自己的 shader

    渲染管线工作原理 在学习shader之前首先了解一下OpenGL 渲染管线的工作原理, 对于学习 OpenGL 极...

  • OSG3.4内置Examples解析【目录】

    opengl渲染管线 从整体上解读OpenGL的渲染流程 一 从整体上解读OpenGL的渲染流程 二 osg与an...

  • OpenGL 渲染架构

    着色器渲染流程 openGL官方渲染管线流程地址[https://www.khronos.org/opengl/w...

  • 2-1.管线,投影,坐标系

    管线在OpenGL下渲染图形,就会经历⼀个⼀个节点.⽽这样的操作可以理解为管线.固定管线:在早期的OpenGL 版...

  • 自学OpenGL(六)-你好三角形

    前言 在前几篇博客里面介绍OpenGL 环境搭建、OpenGL 渲染管线和着色器基础知识,在这些基础之上我们今天来...

  • OpenGL渲染流程

    OpenGL渲染流程 渲染框架 之前学习管线的时候,我们知道OpenGL的渲染流程是有固定次序的。那么先了解下渲染...

网友评论

      本文标题:OpenGL渲染管线简单介绍

      本文链接:https://www.haomeiwen.com/subject/hllxcqtx.html