zoukankan      html  css  js  c++  java
  • Unity Shader 之 渲染流水线

    Unity Shader 之渲染流水线

    什么是渲染流水线

    一个渲染流程分成3个步骤:

    • 应用阶段(Application stage)
    • 几何阶段(Geometry stage)
    • 光栅化阶段(Rasterizer stage)

    CPU 与 GPU之间的通信

    通信主要包括3个步骤:

    • 把数据加载到显存中
    • 设置渲染状态
    • 调用Draw Call

    GPU 流水线

    GPU流水线示意图

    在渲染流水线的几何阶段和光栅化阶段,开发者能做的事情很少,这里制作简单介绍。

    GPU的渲染流水线接受顶点数据作为输入。这些顶点数据应用阶段加载到显存中,再由Draw Call指定。随后传递给顶点着色器。

    顶点着色器(Vertex Shader)是完全可编程的,它通常用于实现顶点的空间变换、顶点着色。曲面细分着色器和几何着色器是可选的着色器。接下来时裁剪(Clipping),这一阶段是将那些不再摄像机视野内的顶点裁剪掉。几何着色器的最后阶段是屏幕映射(Screen Mapping)。

    光栅化阶段除了片元着色器是可编程的外,其他都是不可编程的。

    具体来说,shader就是:

    • GPU流水线上的一些可高度编程的阶段,而由着色器编译出来的最终代码是会在GPU上运行的
    • 有一些特定类型的着色器,如顶点着色器、片元着色器
    • 依靠着色器我们可以控制流水线的渲染细节,例如用顶点着色器来进行顶点变换以及传递数据,用片元着色器来进行逐像素的渲染
  • 相关阅读:
    简单好用的日历排期控件
    Ext.js create store
    Ext.js页面添加元素
    Ext.js Tree
    前端设计的七大法则
    如何写软件开发相关文档,它包含哪些种类和内容
    行内文字末尾下降
    正则表达式
    滚动加载数据
    location.hash来保持页面状态
  • 原文地址:https://www.cnblogs.com/yoyo-sincerely/p/7898363.html
Copyright © 2011-2022 走看看