• 「UnityShader入门精要」第二章 渲染流水线


    2.3 GPU流水线

    2.3.2 顶点着色器

      输入来自于CPU,处理顶点数据。输入的每个顶点都会调用一次顶点着色器,所以每次都是对单个顶点进行运算。

      主要任务:坐标变换、逐顶点光照。

      坐标变换:修改顶点的位置,例如模拟水面波纹效果、果冻效果等。

    必须完成的工作,把顶点坐标从模型空间转换到齐次裁剪空间。

    常见的如:o.pos = mul(UNITY_MVP, v.position);

    2.3.3 裁剪

      摄像机视野有限,视野外的物体不需要被处理,可以直接裁剪掉。

    2.3.4 屏幕映射

      将单位立方体内的三维坐标转换到二维屏幕坐标,与分辨率有较大关系。

    2.3.5 三角形设置

       将网格点连成线,计算得到三角形网格。

    2.3.6 三角形遍历

      计算每个像素是否被三角网格覆盖,覆盖则生成片元。

    2.3.7 片元着色器

      输入:上一个阶段(顶点着色器)对顶点信息插值的结果

      输出:一个或多个颜色值

      渲染技术:纹理采样

    2.3.8 逐片元操作

      1.决定每个片元的可见性,例如,深度测试、模版测试

      2.将通过测试的片元颜色值与缓冲区内的颜色进行混合

      3.混合,不透明物体直接覆盖原缓冲区的像素值,透明物体与原缓冲区像素值进行混合。

    2.4 一些容易困惑的地方

    2.4.3 什么是Draw Call

      CPU调用图像编程接口命令GPU进行渲染的操作,Draw Call多了导致CPU大量执行重复的命令而过载,掉帧。

  • 相关阅读:
    springboot配置springbatch+mybatisplus对mybatis sqlsessionfactory的配置
    bytes的hex和fromhex函数
    python 锁 装饰器
    socket 客户端和服务端
    socket 客户端和服务端思考
    socket 发送类
    socket 服务端
    OSError: [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。
    for循环执行顺序流程
    Chromedriver的安装教程
  • 原文地址:https://www.cnblogs.com/777777-716/p/5661947.html
Copyright © 2020-2023  润新知