美文网首页
openGL渲染管线流程随笔

openGL渲染管线流程随笔

作者: 饭后遛蜗牛 | 来源:发表于2017-10-23 00:47 被阅读0次

写在前面

  以前一直觉得自己学会的东西就没有必要再记录下来,觉得这样会浪费自己的时间,最近看了简书上的一些文章觉得写得很有意思就有了写随笔的冲动,毕竟好记性不如烂笔头嘛,把自己知道的或平时想到的东西当做随笔记下来也不失为一件趣事。

言归正传

  作为一名游戏开发人员图形学基础知识还是很重要的,下面我就介绍一下openGl渲染管线流程吧就当是自己的一次总结或许也能帮助到一些不知道渲染管线是怎么回事的人,也希望有大佬能够批评指正。

  CPU操作

  在整个渲染管线之前CPU需要做的主要操作就是将一些参数传递给gpu,这些信息主要包含但不限于顶点,法线信息。在u3d中是通过网格过滤器从资源中拿出网格信息并将其传递给网格渲染器MeshRender来在屏幕上进行渲染。网格过滤器中的mesh就是用于存放网格数据的。另外一些带有骨骼系统蒙皮信息的资源可直接用skinmeshrender进行渲染。

GPU操作

  顶点着色器

CPU将fbx文件中的顶点信息传递给顶点着色器,顶点着色器会先进行一次矩阵坐标转换将顶点从物体坐标系转移到相机坐标系并且计算好顶点的颜色信息等。

面的剔除

光栅化

光栅化简而言之就是将顶点转化为像素的过程,经过顶点着色器处理后的顶点之间的像素以插值的形式进行填充。

片元着色器

  片元着色器顾名思义就是逐片元进行处理,一般进行纹理的采样,通过采集纹理上的信息替换掉光栅化过程中进行插值填充的像素。另外片元着色器还用来处理与灯光的运算,值得注意的是顶点着色器的计算量要远远高于顶点着色器,所以能在顶点着色器进行的运算就不要放在片元着色器。有些只需要计算一次的操作就放到CPU里进行计算,也没必要放到顶点着色器里计算。

alphaTest

  经过片元着色器后,过滤掉符合alpha值的像素。

模板测试

  通过模板进行过滤

深度测试

  通过像素深度进行过滤

blend操作

  与其他纹理以怎样的形式进行混合

GBuffer

最终一个存很多信息的 float数组

frontBuffer

  计算的结果信息写入front缓存

frameBufder

显示到屏幕上


……alpha值是一个rgba8888 可用float

相关文章

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

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

  • OpenGL 渲染架构

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

  • OpenGL渲染流程

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

  • openGL渲染管线流程随笔

    写在前面 以前一直觉得自己学会的东西就没有必要再记录下来,觉得这样会浪费自己的时间,最近看了简书上的一些文章觉得...

  • OpenGL渲染流程图解析

    一、OpenGL 基础图形管线 1. 管线可以理解为OpenGL渲染图形图像的流程 2. 管线分为两部分 Cl...

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

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

  • OpenGL 基础渲染

    1、OpenGL的渲染架构 OpenGL渲染管线简化流程图 1、 客户端-服务器 管线上半部分是客户端,下半部分是...

  • OpenGL渲染流程图解, 固定存储着色器理解以及图元的基础理解

    OpenGL渲染管线简化流程图 以下图片转自OpenGL基础渲染 1. 客户端-服务器 这里的对于OpenGL而言...

  • OpenGL 渲染管线流程

    上图主要描述了OpenGL渲染的基本流程,我们在以后处理任何图形渲染,都是依据它. 基于OpenGL 封装的框架都...

  • 15.opengl高级-混合

    对渲染管线的一点理解:opengl把渲染流程设计成一套“渲染管线”,把相同的操作抽象出来设计成“黑盒”,对开发者透...

网友评论

      本文标题:openGL渲染管线流程随笔

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