IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 技术美术百人计划学习笔记(1)--基础渲染管线 -> 正文阅读

[游戏开发]技术美术百人计划学习笔记(1)--基础渲染管线

一、基础渲染管线

学习视频链接:https://www.bilibili.com/video/BV1L54y1s7xw?spm_id_from=333.337.search-card.all.click

开篇第一句先给自己打个气,希望自己可以坚持学习。
渲染管线的作用:就是通过一系列的处理,把场景的3D元素转化为屏幕的2D图像。

渲染流程主要分为以下阶段
1、应用阶段
2、几何阶段
3、光栅化阶段
4、逐片元操作
5、后处理

1、应用阶段

应用阶段主要是在CPU上完成的,

  • 准备基本场景数据
    包括场景数据。物体变化数据:位置旋转、缩放等;物体网格数据,顶点数据,UV贴图、法线等。
    摄像机数据,代表了观察视角。位置、方向、远近裁剪平面、摄像机模式正交或者透视等
    光源以及阴影数据。光源的类型,光源的位置,方向等参数
    其他全局数据

  • 加速算法,粗粒度剔除
    准备好上面的渲染的场景对象数据之后,我们还要做一些优化,比如算法上的加速,或者干掉一些看不见的不需要渲染的物体,做一些剔除。可见光的裁剪,可见场景物体的裁剪。
    碰撞检测
    加速算法
    遮挡剔除
    其他算法

  • 设置渲染状态,准备渲染参数
    就是采用什么样的方式去渲染物体
    绘制设置,不同的物体我们可能使用不同的shader去渲染,设置不同的合批次方式。
    绘制顺序,是由远及近渲染还是先渲染不透明物体,再渲染透明物体等绘制顺序
    渲染目标,渲染完成以后,我们要把渲染的结果输出到哪里,是RenderTexture 还是FrameBuffer
    渲染模式, 例如unity的前向渲染或者延迟渲染

  • 调用drawcall,输出渲染图片到显存
    设置好渲染状态以后,我们就会调用drawcall,把带有数据的图元输出到显存上,去交给GPU显示。
    顶点数据
    其他数据

2、几何阶段

  • 顶点着色器(可编程)
    空间变换,通过MVP矩阵变换,把物体的顶点从模型空间–世界坐标系下–观察空间–齐次裁剪坐标
    顶点顶点着色
  • 曲面着色器/几何着色器
    可选步骤
    曲面着色器是按照一定的规则和算法来生成更多的顶点,将现有的图元和网格细分,变的更加平滑。
    几何着色器是基于图元操作的,这个图元可能是一个顶点,也可能是一个线段,也可能是一个三角形,或者其他,它是通过给定的图元去生成更多的图元。
  • 投影
    正交/ 透视
    从3D空间到2D空间的一个转换过程,会在裁剪空间进行一个xyzw的透视除法,对于正交的w=1,这样顶点的位置xyz除完w都不会有变化,就不会有近大远小,而透视w为近小远大。从而把投影坐标系转换到了标准坐标系NDC
  • 裁剪
    视椎体裁剪CVV
    正面或背面剔除(可配置)
    在裁剪空间以外的,都把他干掉。openGL维度xyz(-1,1)
  • 屏幕映射
    从连续到离散,从三维变到二维
    从标准坐标系映射到屏幕坐标系中

3、光栅化阶段

  • 三角形设置
    计算图元的边界信息
  • 三角形遍历
    遍历所有像素,检查是否被三角形所覆盖,如果被覆盖,这说明这个片元属于这个三角形,会根据被三角形顶点进行线性差值得到当前的片元数据。
  • 抗锯齿
    SSAA:渲染到一个分辨率大N倍的buffer,然后对放大N倍的Buffer进行采样
    MSAA:在光栅化阶段,计算多个覆盖样本
    FXAA/TAA:后处理技术

4、逐片元操作

  • 片元着色器
    输出片元颜色,根据三角形三个顶点的颜色进行线性插值,类似还可以得到法线,uv信息,深度信息等,然后利用片元数据和其他全局数据,比如光照阴影等等去计算,得到最终的片元颜色
  • 颜色混合
    透明度测试
    透明度小于给定阈值的片元就会被舍弃不渲染
    深度测试
    深度可以选择覆盖方式 大于小于等于等,也可以设置是否写入深度缓冲区
    模板测试
    模板测试是比较模板值,也是可以大于小于等于,也可以设置是否写入模板缓冲区
  • 混合
    同一像素可能有多个片元,对不同片元颜色进行混合,得到最终颜色
  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:55:11  更:2022-07-17 16:56:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:39:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码