Unity Shader 入门精要-第一章 渲染流水线

本文是《Unity Shader入门精要》的学习笔记,介绍了渲染流水线的基本概念,包括应用、几何和光栅化三个阶段。阐述了CPU与GPU的交互,如数据加载、渲染状态设置和Draw Call调用。同时,详细解析了GPU流水线中的顶点着色器、几何着色器和片元着色器等关键环节,以及如何减少Draw Call提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明:这里是个人学习《Unity Shader入门精要》这本书的学习笔记,图片文字都是书上抄下来的(文字精简了一下,图片都是书上照搬的)。并非个人原创作品,仅供学习交流使用。


  • 2-1综述

    • 2-1-1 什么是流水线
      • 流水线出现之前,一个产品需要完成所有的生产步骤,才能开始新一个产品的生产。流水线出现后,所有步骤并行进行。
      • 理想情况下,如果把一个非流水线系统分成n个流水线阶段,且每个阶段耗费时间相同,那么整个系统会得到n倍的提升。

    • 2-1-2 什么是渲染流水线
      • 三个阶段:应用阶段(Application Stage)、几何阶段(Geometry Stage)、光栅化阶段(Rasterizer Stage)
      • 应用阶段
        CPU主导阶段
        • 准备场景数据(摄像机位置,视锥体,模型,光源等)
        • 粗粒度剔除(culling)
        • 设置模型渲染状态(漫反射颜色,高光反射颜色,纹理,shader等)
      • 几何阶段
        用于处理和我们要绘制的几何相关的事,CPU进行
        • 将顶点坐标变换到屏幕空间中,再交给光栅器进行处理
        • 本阶段会输出屏幕空间的二维坐标顶点,每个顶点的深度值,着色等相关信息,并传递给下一个阶段。
      • 光栅化阶段
        使用上一个阶段传递的数据来产生屏幕上的像素,并渲染出最终的图像,CPU进行
      • 决定每个渲染图元中有哪些像素应该被绘制在屏幕上
      • 对上个阶段得到的逐顶点数据(例如纹理坐标,顶点颜色)进行差值,然后再进行逐像素处理

  • 2-2 CPU和GPU之间的通信

    • 2-2-1 把数据加载到显存中
      • 所有渲染所需的数据都要从硬盘中加载至系统内存,然后被加载至显存中


        当数据加载道显存中,RAM中的数据就可以移除了
    • 2-2-2 设置渲染状态
      渲染状态定义了场景中的网格是怎样被渲染的
      • 例如,使用哪个顶点着色器(Vertex Shader)/片元着色器(Fragment Shader)、光源属性、材质等。

    • 2-2-3 调用Draw Call
      Draw Call是一个命令,发起方为CPU,接收方为GPU
      • 当给定一个Draw Call时,GPU就会根据渲染状态(例如材质、纹理、着色器等)和所有的顶点数据来进行计算,最后输出成屏幕上显示的那些漂亮的像素。

  • 2-3 GPU流水线

    • 2-3-1 概述
      • 几何阶段&光栅化阶段

      • 几何阶段
        • 顶点着色器(Vertex Shader):完全可编程,通常用于实现顶点的空间变换、顶点着色等功能
        • 曲面细分着色器(Tessellation Shader):可选择的着色器,用于细分图元
        • 几何着色器(Geometry Shader):可选择的着色器,用于执行逐图元的着色操作
        • 剪裁(Clipping):剔除某些不在摄像机视野内的三角图元
        • 屏幕映射(Screen Mapping):不可编程与配置,负责把图元坐标转换到屏幕坐标系中
      • 光栅化阶段:
        • 三角形设置(Triangle Setup):固定设置
        • 三角形遍历(Triangle Mapping):固定设置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿萧一只

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值