OpenGL-着色器语言

本文深入探讨OpenGL编程中不可或缺的着色器,包括顶点着色器和片元着色器。首先定义了图元作为图形元素的基本单元,接着介绍了GLSL,一种专为图形开发设计的语言。渲染管线,即显示芯片内部的并行处理单元,也在文中进行了阐述,帮助理解OpenGL的工作原理。
摘要由CSDN通过智能技术生成

        上篇了解了下 OpenGL,那接下来就开始进一步了解一下它吧。在开发 OpenGL 程序过程中我们会经常用到 着色器(顶点着色器、片元着色器),话不多说进入正题


着色器语言

    在这之前先来了解一下必要的名词

    图元:是图形软件中用来描述各种图形元素的函数(图像组成的基本单元)
    
    GLSL :专门为图形开发设计的编程语言

    可编程管线的编程阶段   渲染管线            

        渲染管线(又称渲染流水线:是显示芯片内部处理图形信号互相独立的并行处理单元!

         图有些糙  凸(艹皿艹 )(下图)

        

渲染流程  
流程:OpenGL首先接收用户提供的几何数据,并且将他输入的数据经过一系列着色阶 
段中进行处理,包括顶点着色 ,细分着色,以及几何着色器,然后被送入光栅化单元,光栅化负责剪切区域内的图元并生成片元数据,然后对每一个片元都执行一个片元着色器,然后产生我们最终想要的效果。 
那在这些步骤 里面都做了什么呢? 
  那前面我们也讲了,OpenGL需要将所有的数据都保存到缓存对象中,这也就相当于在OpenGL的服务端维护一块内存区域。当缓存初始化完毕后,我们通过调用OpenGL的绘制命令来渲染几何图元(例:glDrawArray命令,就是一个常用的绘制命令) 
1、那我们把数据传过来之后OpenGL首先是顶点着色, 
顶点着色器(必要) :接收顶点缓存对象的顶点数据,单独处理每个顶点 
2、当顶点处理完后,会激活细分着色器, 
细分着色器(可选) :接收到来自顶点着色阶段的输出数据,并对收到的数据进一步处理  
 (用Patch描述一个物体的形状,在OpenGL线管内部生成新的几何体,并且模型的外观也会变得更加平顺,细分作色器会用到两个阶段来分别管理patch数据,并生成最终状态) 
3、 几何着色器(可选): 在管线内部会对所有的图元进行修改,改变几何图元的类型,或者放弃所有的几何体。如果启用,那么输入可能会来自顶点着色阶段完成的几何图元,也可能来自细分阶段的图元数据 
4、 那以上的阶段都是顶点数据的处理,顶点着色决定了一个图元应该位于屏幕的什么位置,那接下来我们会用片元着色决定片元的颜色。  
接下来这些顶点数据和顶点之间如何让构成几何图元的所有信息会被传入到OpenGL当中。然后将这些顶点与相关的几何图元之间组织起来,准备光栅化( 图元装配
5、在光栅化之前,有些顶点会落在视口之外,那此时与顶点相关的图元会做出改动,来保证相关像素不会
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值