Unity的渲染管线

渲染管线

概念

Unity的渲染管线是在图形学渲染管线的基础上,加上了高度可配置可扩展的框架,允许开发者自定义渲染流程。

渲染管线(渲染流水线)概述:将数据阶段的变为屏幕图像的过程。

  • 数据指的是模型、光源和摄像机等内容的顶点、纹理、光照等数据。

  • 阶段:应用阶段—>几何阶段—>光栅化阶段

    image-20240617175319915

CPU和GPU

  • CPU:中央处理器,负责逻辑处理。
  • GPU:图形处理器,搭载在显卡上,负责渲染逻辑处理。

图元

在渲染管线中,图元是几何数据的基本单元,是构成几何体的最小可绘制单元。

图元可以是点、线、三角形,在几何阶段,顶点数据会被组合成图元。

这些图元将在光栅化阶段转换为像素,最终呈现在屏幕上。

像素

像素组成图像的最小可控单位。

具有位置和属性,用于表示颜色和其他信息。

二维图像中的一个点,每个像素都占据屏幕的固定位置。

片元

片元是光栅化阶段生成的像素或像素片段。

片元是渲染管线中进行像素级别操作和计算的基本单位。

其实片元就是像素加上了一些其他信息,如颜色、深度值、法线等。

应用阶段

概述:CPU将渲染数据传递给GPU,用于后两个阶段的处理。

应用阶段CPU为渲染准备了什么?

  1. 剔除不可见(相机外)的物体数据。
  2. 准备好模型相关的数据,如顶点、法线、切线、贴图、着色器等。
  3. 把数据加载到显存中。显存就是显卡的专用内存,用来存储显卡芯片处理过或者即将提取的渲染数据。
  4. 设置渲染状态,如网格需要使用哪个着色器、材质、光源属性等。
  5. 调用DrawCall,DrawCall就是CPU通知GPU用上面准备的数据和渲染状态进行渲染的命令。

image-20240614210459107

应该尽可能避免多的DrawCall

因为它会影响性能。每次调用DrawCall,CPU就会给GPU发送大量的内容,效率就慢了,可能会造成卡顿。

怎么减少呢?批处理技术

  • 将多个静态物体的网格合并为一个网格,变为一次DrawCall。
  • 使不同网格使用同一种材质。
  • 合并图集:将多张图片合并成一张大图。(2D游戏和UI中常用)

几何阶段

几何阶段是GPU主导的阶段,它的主要工作为:顶点处理、坐标转换、裁剪画面外图元

概述:在几何阶段,我们主要通过自定义顶点着色器阶段,带来不同的画面表现效果。

image-20240617171522020

顶点着色器:是完全可编程的,进行一些操作就能带来如水波纹、布料等表现效果。

image-20240617172841403

image-20240617172937407

光栅化阶段

GPU主导,确定片元是否被渲染,并且确定片元的最终渲染颜色效果等。

我们主要通过自定义片元着色器阶段,带来如水面、火焰、黑白或模糊等效果。

image-20240617174032679

  • 三角形设置:计算三角形网格的表示数据,人话就是把顶点连成三角形。

  • 三角形遍历:检查哪些像素被三角形网格覆盖了,覆盖就生成为一个片元,最终获得片元序列。

    • image-20240617175824695
  • 片元着色器(可编程):

    • image-20240617175937464
  • 逐片元操作(输出合并阶段,可配置):

    • image-20240617180058393

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/356220.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用LabVIEW和机器学习实现无规律物体识别

针对变化无规律的物体识别,LabVIEW结合机器学习算法提供了一种高效的解决方案。介绍如何使用LabVIEW编程实现此功能,包括所需工具包、算法选择和实现步骤,帮助开发者在无规律的复杂环境中实现高精度的物体识别。 1. 项目概述 无规律物体的识…

『FPGA通信接口』LVDS接口(2)硬件设计

文章目录 1.LVDS原理2.xilinx器件对于LVDS的支持3.LVDS信号PCB布线要求4.传送门 1.LVDS原理 如上图所LVDS的工作原理示意图,其Driver驱动器由一个恒流源是LVDS发送端(通常为 3.5mA)驱动一对差分信号线组成。驱动状态会翻转就产生正负电压的变…

全球与中国汽车加热器市场:增长趋势、竞争格局与前景展望

汽车加热器是指安装在车辆上提供温暖和调节车厢温度的装置,确保乘客在各种天气条件下的舒适度。这些加热器在寒冷天气下为窗户除霜、防止起雾和保持居住者舒适的环境方面发挥着至关重要的作用。此外,智慧加热控制和预测演算法的不断整合正在引起全球汽车…

【面试干货】抽象类的意义与应用

【面试干货】抽象类的意义与应用 1、为其他子类提供一个公共的类型2、封装子类中重复定义的内容3、定义抽象方法,子类虽然有不同的实现,但是定义时一致的4、示例代码 💖The Begin💖点点关注,收藏不迷路💖 在…

STM32硬件接口I2C应用(基于FT6336)

目录 概述 1 硬件介绍 1.1 ST7796-LCD 1.2 MCU IO与LCD PIN对应关系 1.3 MCU IO与Touch PIN对应关系 2 FT6336的寄存器 2.1 FT6336寄存器列表 2.2 寄存器功能介绍 3 STM32Cube控制配置I2C 3.1 软硬件版本信息 3.2 I2C参数配置 3.3 使用STM32Cube产生工程 4 HAL库…

C#修改 EXE 文件图标和 winForm 窗口图标

修改 EXE 文件图标 1.准备好图片,转换为 Icon 图片; 2.右键工程,选择属性; 3.选择 Icon 图标即可; 4.重新生成可执行文件,查看。 修改 winForm 窗口图标 1.选中 winForm ,查看属性&#x…

你好,复变函数1.0

输入时用后缀&#xff0c;开头空格 #include <easyx.h> #include <stdio.h> #define PI 3.141592653589793 #define E 2.718281828459045 #define K (1.0 / 256.0) #define K_1 256.0 //#define LINE//决定函数是用线画还是用点画 struct C {double i;double r;…

Unity3d 游戏暂停(timeScale=0)引起的deltaTime关联的系列问题解决

问题描述 游戏暂停的功能是通过设置timeScale0实现的&#xff0c;不过在暂停游戏的时候&#xff0c;需要对角色进行预览和设置&#xff0c;为了实现这个功能&#xff0c;是通过鼠标控制相机的操作&#xff0c;为了使相机的操作丝滑&#xff0c;获取鼠标操作系数乘以Time.delta…

网络编程(TCP协议,UDP协议)

目录 网络编程三要素 IP IPv4 InetAddress类 端口号 协议 UDP协议 UDP协议发送数据 UDP协议接收数据 UDP的三种通信方式(代码实现) TCP协议 TCP通信程序 三次握手和四次挥手 练习 1、客户端:多次发送数据服务器:接收多次接收数据&#xff0c;并打印 2、客户端…

技术分享 | 基于 API 解析的 Python 爬虫

最近各大高校纷纷翻拍 Coincidence 抖肩舞&#xff0c;需要对这种流行现象进行数据分析。数据分析首先需要有数据&#xff0c;本文介绍了爬取 B 站相应视频的评论、弹幕、播放量、点赞数等数据的方法。爬虫有多种实现方法&#xff0c;大型的网络爬虫多基于成熟的爬虫框架&#…

SpringCloud 基于Nacos和Eureka 实现双注册双订阅

一、使用场景/原因 过渡期迁移: 当系统从一个服务注册中心迁移到另一个时&#xff0c;例如从 Eureka 迁移到 Nacos&#xff0c;可以在过渡期内同时使用两个注册中心&#xff0c;确保服务平稳迁移&#xff0c;逐步过渡&#xff0c;避免一次性切换带来的风险。 兼容性考虑: 不同的…

这款跨界的软件也是非常强大!更快, 更轻, 更丝滑!

在网络世界中&#xff0c;一个好的浏览器就像一艘快速的帆船&#xff0c;帮助我们更快地到达目的地。迅雷浏览器正是这样一艘帆船&#xff0c;它不仅能够快速地带领我们浏览信息&#xff0c;还能提供安全的下载体验&#xff0c;让我们的网络生活更加丰富多彩。 迅雷浏览器&…

Python | Leetcode Python题解之第172题阶乘后的零

题目&#xff1a; 题解&#xff1a; class Solution:def trailingZeroes(self, n: int) -> int:ans 0while n:n // 5ans nreturn ans

AI播客下载:Machine Learning Street Talk(AI机器学习)

该频道由 Tim Scarfe 博士、Yannic Kilcher 博士和 Keith Duggar 博士管理。 他们做了出色的工作&#xff0c;对每个节目进行了彻底的研究&#xff0c;并与机器学习行业中一些受过最高教育、最全面的嘉宾进行了双向对话。 每一集都会教授一些新内容&#xff0c;并且提供未经过滤…

VMware Workstation安装Windows Server2019系统详细操作步骤

虚拟机版本 VMware Workstation 16 Prp 16.2.5 build-20904516 实现操作 创建虚拟机 创建新的虚拟机 自定义->下一步 默认即可&#xff0c;下一步 稍后安装操作系统->下一步 按照图下所示选择好系统->下一步 设置好虚拟机名称和位置->下一步 默认即可&#xff0…

基于uni-app和图鸟UI的智慧农业综合管控平台小程序技术实践

摘要&#xff1a; 随着信息化技术的飞速发展&#xff0c;智慧农业已成为推动农业现代化、提升农业生产效率的重要手段。本文介绍了一款基于uni-app框架和图鸟UI设计的智慧农业综合管控平台小程序&#xff0c;该平台整合了传感器控制、农业数据监测、设施管控、农业新闻传播以及…

Qt源码阅读笔记:初步了解QtCore模块目录结构

Qt框架是一个跨平台的C应用程序框架&#xff0c;广泛用于开发图形用户界面程序以及用于无界面后台操作的工具和服务器。它由多个模块组成&#xff0c;其中QtCore模块提供了核心的非GUI功能。 QtCore 提供了元对象系统&#xff0c;扩展了c 在元对象系统的基础上&#xff0c;qt又…

Redis—Hash数据类型及其常用命令详解

文章目录 Redis概述Hash类型Hash类型常用命令1 HSET&#xff1a;添加或者修改hash类型key的field的值2 HGET &#xff1a;获取一个hash类型key的field的值3 HMSET&#xff1a;批量添加多个hash类型key的field的值4 HMGET&#xff1a;批量获取多个hash类型key的field的值5 HGETA…

Windows11 24H2网络功能全新升级:全面支持Wi-Fi 7!

Windows11 24H2版本不仅推出了很多新功能&#xff0c;也全面升级了网络功能&#xff0c;全面支持Wi-Fi 7&#xff0c;带给用户最快的网速体验&#xff0c;还支持用户通过二维码分享Wi-Fi密码&#xff0c;操作更加便捷&#xff0c;也更新了SMB、LAPS和NDR协议。接下来跟随小编去…

MongoDB和AI 赋能行业应用:零售

欢迎阅读“MongoDB 和 AI 赋能行业应用”系列的第三篇。 本系列重点介绍 AI 应用于不同行业的关键用例&#xff0c;涵盖制造业和汽车行业、金融服务、零售、电信和媒体、保险以及医疗保健行业。 利用生成式 AI 技术&#xff08;Gen AI&#xff09;&#xff0c;零售商可以创造…