当前位置: 首页 > article >正文

【实时渲染】图形渲染管线

渲染管线是什么?

渲染管线的核心功能就是利用给定的虚拟相机、三维物体、光源等信息,经过一系列不同的阶段来生成或渲染一张二维图像。渲染管线就是实时渲染的低层工具。最终图像中物体的位置和形状,由其几何结构,环境特征以及相机位置所决定。而物体的外观则会受到材质属性、光源、纹理(应用在物体表面上的图像)以及着色方程的影响。

渲染管线的架构

渲染管线的结构其实是一种流水线的思想,一组工人比作一个流水线,组内不同的工人代表着不同阶段的操作。比如要生产一个三文治,第一个工人准备面包传递给第二个工人,第二个工人使用面包把面包和火腿块叠好传给第三个工人,第三个工人把配料涂在三文治上,就这样完成了一个三文治。

在渲染管线中也是这样。我们把它方程几个粗糙的阶段。如下:
程序应用-》几何阶段-》光栅化-》片元阶段-》测试阶段

程序应用

这一阶段主要由CPU完成,主要是把虚拟相机、三维物体、光源等信息传递给GPU。其实它还会做一些物理碰撞检测的阶段。也可以把一些简单的计算交给GPU来做,也就是计算着色器(computer shader)。因为开发者对这个阶段的控制度是最高的,所以大部分程序性能优化都可以在这个阶段来完成,比如对顶点的剔除,减少GPU计算点,面的数量等。

几何阶段

这一阶段主要对图像的顶点进行坐标系转换,由三个矩阵进行叉乘转换坐标轴,这三个矩阵分别是模型(Model)、观察(View)、投影(Projection)。这三个矩阵代表了物体顶点坐标从局部空间转换到裁剪空间,最后以屏幕坐标的形式结束。再生成图元(点,三角形等)传递到下一个阶段

光栅化

拿到几何阶段传递过来的图元,对图元内的像素进行搜索,得到图元内的像素并把这些像素传递到片元着色器进行加工。

片元阶段

对传递过来的片元进行染色处理,决定片元的显示颜色。

测试阶段

可以对没有通过的片元进行屏蔽处理。


http://www.kler.cn/a/146805.html

相关文章:

  • MongoDB聚合操作
  • C#编写的日志记录组件 - 开源研究系列文章
  • 第十六届蓝桥杯模拟赛(第一期)-c++/c
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-04
  • 智慧社区平台系统提升物业管理效率与居民生活质量
  • 游戏引擎学习第12天
  • codeformer,是如何对数据进行降级处理的?是如何模糊人脸图像的?
  • quickapp_快应用_全局数据
  • Open Feign 源码解析(四) --- 请求对象构造(上)
  • 【Qt】判断QList链表内是否有重复数据
  • 微服务系列(三)--通过spring cloud zuul过滤器实现线上流量复制
  • 系统架构设计:8 论软件架构风格
  • mycat快速搭建
  • 微信小程序开发学习——小程序基本架构
  • 【设计模式-2.1】创建型——单例模式
  • HTML CSS登录网页设计
  • torch.nn.batchnorm1d,torch.nn.batchnorm2d,torch.nn.LayerNorm解释:
  • 数据结构总复习
  • React中通过children prop或者React.memo来优化子组件渲染【react性能优化】
  • scala 实现表达式解析
  • 在UE中使用C++时的Pascal命名法
  • 【服务器能干什么】二十分钟搭建一个属于自己的 RSS 服务
  • LeeCode前端算法基础100题(4)- 无重复字符的最长子串
  • 青少年CTF之PHP特性练习(1-5)
  • FlinkSql-Temporal Joins-Lookup Join
  • 基于官方YOLOv4-u5【yolov5风格实现】开发构建目标检测模型超详细实战教程【以自建缺陷检测数据集为例】