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

图形渲染基础-Unity渲染管线介绍

Unity中的渲染管线渲染场景主要分为三个阶段

  •     剔除(Culling)

剔除摄像机不可见对象(视锥体剔除Frustum Culling)和被遮挡对象(遮挡剔除Occlusion Culling)。

  •     渲染(Rendering)

将可见对象经过一系列计算(如光照计算)后绘制到像素缓冲区中。

  • 后期处理(Post-Processing)

对像素缓冲区上的颜色执行后期处理操作(如景深),生成最终的输出帧。

Unity提供四种渲染管线

  • 分别为内置渲染管线(Built-in Render Pipeline)
  • 通用渲染管线(Universal Render Pipeline,URP)
  • 高清渲染管线(High Definition Render Pipeline,HDRP)
  • 可编程渲染管线(Scriptable Render Pipeline,SRP)

不同的管线具有不同的特性和限制。

内置渲染管线提供了两种渲染路径可供选择,分别是前向渲染路径(Forward Rendering Paths)和延迟渲染路径(Forward Rendering Paths)。

    在使用(多通道)前向渲染路径时,场景中的所有对象都是按顺序渲染的。每个对象根据受到的光源数量可能在多个通道中渲染,因此当光源较多时,渲染成本会急剧上升。这种类型的渲染通常提供了各种各样的着色器,并且可以轻松地处理透明度。
    在使用延迟渲染路径时,所有不透明几何体先渲染到缓冲区。然后在延迟通道中,每个像素按顺序着色。渲染顺序主要取决于像素受到的光源数量。对于透明物体以及某些使用了复杂着色器的对象,仍然需要额外的前向渲染通道。这种类型的渲染通常用于处理包含许多动态光源的场景。

HDRP是一种混合了前向和延迟渲染的瓦片/簇渲染管线。HDRP提供了先进的渲染和着色功能,是专为要求逼真视觉的PC和高端游戏主机项目设计的。

    瓦片是帧中的一个小型二维方形像素几何,而簇则是摄像机视锥体中的一个三维几何体。不管是瓦片还是簇,它们的渲染技术都依赖于一个光源列表,可以在一个单独的通道中根据这个列表进行光照计算。
    不透明对象多使用瓦片系统进行着色,而透明对象的着色则多使用簇系统。
    与内置渲染管线相比,HDRP的光照处理更快,带宽消耗更少。

URP是一种快速的单通道前向渲染管线,被设计用于不知此计算着色技术的低端设备。URP可以为中端设备提供更高质量的图形性能,有时性能消耗甚至低于内置渲染管线。URP根据每个对象来剔除光线,并允许在单个通道中计算光照,这会降低Draw Call。此外,URP也支持2D渲染和延迟渲染。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于Python+Django,开发的一个在线教育系统
  • Docker Machine 深入解析
  • qt log 输出为文件,每分钟换一个log文件
  • 2024杭电多校1——1008位运算
  • mysql的索引、事务和存储引擎
  • 大模型实战—大模型赋能网络爬虫
  • 配置文件格式 JSON 快速上手
  • 分布式 I/O 系统 BL200 Modbus TCP 耦合器
  • 数据编织 Data Fabric:解决“数据孤岛”的新思路
  • nginx的docker-compose文件
  • 《Unity3D高级编程 主程手记》第二章 C#技术要点(八) 业务逻辑优化技巧
  • 【C#】计算两条直线的交点坐标
  • 升级TrinityCore 服务器硬件
  • 内网隧道——隧道技术基础
  • Qt Creator:C++与Python混合编程
  • $translatePartialLoader加载失败及解决方式
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 11111111
  • eclipse(luna)创建web工程
  • export和import的用法总结
  • isset在php5.6-和php7.0+的一些差异
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • Java知识点总结(JavaIO-打印流)
  • js写一个简单的选项卡
  • python docx文档转html页面
  • Python学习之路13-记分
  • React Transition Group -- Transition 组件
  • Redis在Web项目中的应用与实践
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • windows下使用nginx调试简介
  • 阿里云Kubernetes容器服务上体验Knative
  • 讲清楚之javascript作用域
  • 使用API自动生成工具优化前端工作流
  • 双管齐下,VMware的容器新战略
  • 我从编程教室毕业
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • zabbix3.2监控linux磁盘IO
  • 回归生活:清理微信公众号
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • !!java web学习笔记(一到五)
  • #if #elif #endif
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (2)MFC+openGL单文档框架glFrame
  • (2024)docker-compose实战 (8)部署LAMP项目(最终版)
  • (2024,RWKV-5/6,RNN,矩阵值注意力状态,数据依赖线性插值,LoRA,多语言分词器)Eagle 和 Finch
  • (Charles)如何抓取手机http的报文
  • (C语言)球球大作战
  • (SpringBoot)第二章:Spring创建和使用
  • (八)Flask之app.route装饰器函数的参数
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB