图形学之Unity渲染管线流程分析

文章来源: 学习通http://www.bdgxy.com/

普学网http://www.boxinghulanban.cn/

智学网http://www.jaxp.net/

表格制作excel教程http://www.tpyjn.cn/

学习通http://www.tsgmyy.cn/


下图是《Unity Shader 入门精要》一书中的渲染流程图;

ApplicationStage阶段:准备场景信息(视景体,摄像机参数)、粗粒度剔除、定义每个模型的渲染命令(材质,shader)——由开发者定义,不做讨论;

GemetryStage阶段:顶点着色器、曲面细分着色器、几何着色器、裁剪、屏幕映射;

RasterizerStage阶段:三角形设置遍历,片元着色器、逐片元操作;

每个阶段具体操作如下图(虚线框是可选阶段):

模型空间——矩阵变换——齐次裁剪空间——透视除法——NDC标准设备坐标——屏幕映射

齐次裁剪空间是视景体空间(台体);

CVV:标准视体-也就是NDC坐标系对应的空间;

透视除法:顶点坐标除以w分量,将当前z深度所在的截面缩放为(2,2,2)的截面坐标;所以w分量记录了z深度信息;

硬件做透视除法获得NDC归一化设备坐标——再经过屏幕映射获得屏幕坐标系下顶点坐标;

Unity使用OpenGL的NDC,z分量在[-1,1];

OpenGL和DirectX差异

NDC空间——OpenGL为[-1,1],DirectX为[0,1],深度z范围不同;

窗口坐标系——DirectX左上角原点,OpenGL左下角原点;

投影平面——DirectX投影平面就是视景体近截面,OpenGL有视平面;

左右手坐标系——DirectX左手,OpenGL右手,叉乘顺序;

问题:

为什么片元不叫像素?

片元是很多状态的集合,记录了该像素的屏幕坐标,深度信息,法线,UV等;

DrawCall为什么会影响性能?

DrawCall是CPU向GPU添加渲染命令的过程,过程会由CPU向GPU发送数据(模型信息),DrawCall的次数越多CPU消耗性能就越大,DrawCall次数过多会导致每一帧CPU来不及发送全部数据给GPU渲染;

GPU有一个命令缓存区(Command Buffer),CPU的渲染命令都会存储在这里,GPU从命令缓存区依次执行渲染命令;

两种渲染命令:渲染模型(CPU提交模型信息也就是DrawCall)和改变渲染状态(着色器纹理状态改变,更耗时);

一般情况都是GPU渲染完成等待CPU发渲染命令;

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

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

相关文章

Unity渲染工程收集

NPR 非真实渲染 UnityURP-AnimeStyleCelShader SSR 屏幕空间反射 UnitySSReflectionURP Skin 皮肤 Unity-URP-SkinSSSLUTGenerator

art-template渲染大坑,从后台接受到的数据正确,但渲染出来的都是空白

问题描述 后台使用的是art-template模板引擎和express // 部分代码如下 router.get(/advert/add, (req, res, next) > {res.render(advert_add.html); });前端使用的art-template 重点看下面画着的部分 // 代码如下 {{ extend ./layout.html }}{{ block style }} {{ /blo…

[Unity3D热更框架] LuaMVC简介

1.什么是LuaMVC 从工作以来一直从事工业三维仿真软件/AR软件的开发,每个项目开发周期短,项目从Demo到完(huang)结(le)时间较为紧凑,因此需要一个便捷的开发框架作为支撑,以适应不同的项目需求,而且需要尽可能覆盖多个终…

一张图了解OpenGL的渲染架构

初学者在初学OpenGL时,很多时候会对OpenGL的渲染架构感到困惑,不清楚它是怎么一个渲染流程,常将Arributes直接传递到片元着色器,或者为了将属性直接传递到片元着色器,而通过uniform传递到片元着色器等,这样…

GacUI:跨平台和渲染器

GacUI:跨平台和渲染器 https://github.com/vczh/GacUIBlog UI库跨平台的方法无非就是每个平台写一次。而如何把更多的共同点抽取出来,尽量的减少每个平台写一次的部分,是每一个跨平台的UI库的重点之一。GacUI的设计比较直接,所有…

Unity3D 《拥挤城市》3D房子建筑透视效果实

3D游戏,经常会看到透视效果,例如《王者荣耀》草丛透视,《拥挤城市》建筑透视。 实现原理:把3D模型MeshRenderer中Materials替换成透明材质球。 举例:《拥挤城市》3D房子建筑透视效果实现,效果如下图&…

Unity2020高清渲染管线

一、高清渲染管线加载与环境配置 这里使用2019.3.0f6版本 1、加载高清渲染管线(High Definition RP) 2、创建高清管线脚本文件 3、配置高清渲染管线环境(把色彩空间改为线性空间) 4、把高清渲染管线脚本添加到图形(G…

Unity Xlua热更新框架(一):概述与效果演示

1. 资源目录划分 资源:热更新资源和热更新步骤(Bundle),,,,资源需要打成Bundle包,通过不重新安装安装包的情况,去更新和替换资源代码:Lua与C#的交…

Unity3D教程:实现房产项目中的材质动态切换

在许多典型的房产展示项目当中,经常需要动态地实现例如墙纸、地板等材质的更换以获得不同的展示效果,下面将通过一个简单的教程介绍实现这一功能的关键技术。 首先需要场景中创建一个简易的样品房,样品房里面有一个地面和两面相互垂直的墙壁…

【GAMES-104现代游戏引擎】4、引擎渲染基础(渲染基础数据、全局光照、PBR、阴影)

Lecture04~05 1、光栅化流程2、一丢丢显卡知识3、网格绘制组件(Mesh Render Component)4、材质5、资源池(Resource Pool)6、Cluster-Based Mesh Pipeline7、渲染 游戏渲染的挑战 一个场景包含成千上万的GO需要的材质、shader、效果…

重回游戏公平,向游戏打金工作室宣战!

什么是打金工作室? 近几年中国游戏市场持续发展,国产自研精品游戏层出不穷,游戏产业精品化、高质量健康发展趋势稳定。根据中国音数协游戏工委(GPC)与中国游戏产业研究院发布的《2022年中国游戏产业报告》显示&#xf…

GPT-4 API平替?性能媲美同时成本降低98%,斯坦福提出FrugalGPT,研究却惹争议

来自:机器之心 进NLP群—>加入NLP交流群 Game Changer 还是标题党? 随着大型语言模型(LLM)的发展,人工智能正处于变革的爆发期。众所周知,LLM 可用于商业、科学和金融等应用,因而越来越多的公…

FrugalGPT

随着大型语言模型(LLM)的发展,人工智能正处于变革的爆发期。众所周知,LLM 可用于商业、科学和金融等应用,因而越来越多的公司(OpenAI、AI21、CoHere 等)都在提供 LLM 作为基础服务。虽然像 GPT-…

使用chatGPT生成一个带圆角的Container

我在项目中是想实现如图带圆角的Container,使用chatGPT生成步骤如下。 首先,生成渐变色的Container 生成的Container代码如下: Container(margin: EdgeInsets.fromLTRB(30, 0, 30, 0),height: 200.0,width: double.infinity,decoration: BoxD…

ChatGPT-4 如何改变 AI 市场及其对未来的影响?GPT版本及其差异

GPT-1 对比 GPT-2 对比 GPT-3。Chat GPT (Generative Pre-trained Transformer) 是一种高级自然语言处理模型,它使用机器学习算法来生成看起来像人类所写的文本。GPT模型的发展彻底改变了人工智能领域,特别是在语言处理领域。 多年来,已经发布了多个版本的 GPT 模型,每个版…

AI新风向标PaLm2?能否取代ChatGPT成为AI领域的老大

AI新风向标PaLm2? ​ 前几天Google发布了,PaLM2作为Google的下一代大型语言模型,它会取代ChatGPT成为更智能的AI工具吗? 关于PaLM2 ​ PaLM 2是Google的下一代大型语言模型,它建立在谷歌在机器学习和负责任的人工智能方面的突破…

部落冲突外挂

有人玩部落冲突吗,我这里有挂,加我qq3083413274,我给你。

最新最全文献下载网站:文献部落——一站式查找、下载文献!

来喽来喽! 小编带着新鲜出炉的“文献部落”来喽!同样是文献下载,凭啥只有他值得我推荐?还不是因为好用?!你以为只有SCI吗?太天真了!你往下看↓↓↓ 文献部落:http://459…

外文文献检索网站

1. Google scholar 网址: https://scholar.google.com.hk/?hlzh-CN 如今搜索论文的首选,可以在这里查看论文统计和引用参考文献,还能通过关注作者或者论文获得新论文更新提醒,以及利用自动化推荐来提供一个基本库 2. DBLP 网址…

COC部落冲突自动找鱼 python脚本

众所周知,最近COC被腾讯收购了,又整了一波活,花里胡哨的兵种都不认识了,这件事我不做评价吧。 图个新鲜感,高中几个哥们突然又玩起了部落冲突,打🐟一时爽,一直打🐟一直爽…