Unity Shader 入门精要(01) -- 渲染流水线
发布日期:2021-06-29 11:13:22
浏览次数:2
分类:技术文章
本文共 1265 字,大约阅读时间需要 4 分钟。
一、什么是渲染流水线
流水线大家都了解。渲染流水线的工作任务在于从一个三维场景出发、生成(或者说渲染)一张二维图像(即我们在电脑屏幕上看到的效果)。换句话说,计算机需要从一系列的顶点数据、纹理等信息出发,把这些信息最终转换成一张人眼可见的图像。这个工作通常是由CPU和GPU共同完成。
渲染流程分为3个阶段:应用阶段、几何阶段、光栅化阶段
应用阶段(cpu):①准备好场景数据,例如摄像机的位置、视椎体、场景中包含了那些模型、使用了那些光源等等 ②为了提高渲染性能我们往往需要做一个粗粒度剔除工作,可以把那些不可见的物体剔除出去,这样就不需要在移交给几何阶段处理 ③最后,我们需要设置好每个模型的渲染状态(材质、纹理、shader)这一阶段最主要的是输出渲染需要的几何信息,即渲染图元。图元是网格的基本单位。它可以是点、线、三角面等 几何阶段(gpu):处理所有和我们要绘制的几何相关的事情。例如,决定要绘制的图元是什么,怎样绘制它们,在哪里绘制它们。这一阶段最重要的任务是把顶点坐标变换到屏幕空间中。 光栅化阶段(gpu):使用上阶段传递来的数据来产生屏幕上的像素,并渲染出最终的图像。主要任务是决定每个渲染图元中的那些像素应该被绘制在屏幕上。二 、GPU和CPU之前的通信
前面提到的应用阶段大致分为3下面三个阶段
① 把数据加载到显存中(顶点的位置信息、法线方向、顶点颜色、纹理坐标等)------ 场景数据 ② 设置渲染状态(使用哪个顶点着色器/片元着色器、光源属性、材质、纹理等)---------- 渲染成什么样子 ③ 调用Draw Call(CPU告诉GPU开始一个渲染过程。并指向本次要渲染的图元列表)------- 喂!GPU,渲染这个三 、一些基础概念的理解
OpenGL/Directx:渲染引擎(图像应用编程接口)。shader是一种渲染命令,由opengl或者Dx进行解析,最终由GPU来渲染。
显卡驱动:显卡的操作系统。 显卡:GPU + 显存。四 、什么是Draw Call
Draw Call:CPU调用图像编程接口,以命令GPU进行渲染的操作。在Draw Call中其实造成性能问题的元凶是CPU.
cpu和gpu是如何并行工作的
为什么是Draw Call多了会影响帧率
举个例子:①创建10000个文件,每个文件大小为1KB,总共占内存10MB ②创建一个单独的文件,大小为10MB,然后各自从当前文件夹中复制到另一个文件中,第二种方案用的时间会少很多。因为每一个复制动作需要很多额外的开销,复制次数越多开销就越大。 同理,每次调用Draw Call之前,CPU需要向GPU发送很多内容,包括数据、状态、命令等,这一阶段,CPU需要完成很多工作,例如检查渲染状态等。而GPU的渲染能力是很强的,渲染200个还是2000个三角网格通常没什么区别。如何减少Draw Call
① 避免使用大量的小网格,尽量合并。比如图集打包。 ② 避免使用过多的材质,尽量在不同的网格之间公用同一个材质。转载地址:https://blog.csdn.net/zwg739424406/article/details/80889391 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月15日 06时11分06秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
网页端数据库操作界面-Html页面(1)
2019-04-29
网页端数据库操作界面-Html页面(2)
2019-04-29
网页端数据库操作界面-Html页面(3)
2019-04-29
Excel 高级筛选
2019-04-29
Python爬虫 百度热搜热点
2019-04-29
Python 百度热搜 全页面爬取
2019-04-29
爬取小说——爬取书的地址
2019-04-29
爬取小说——爬取章节地址
2019-04-29
爬取小说——爬取标题和正文
2019-04-29
爬取小说——储存为TXT格式
2019-04-29
爬取小说——主体部分
2019-04-29
Python 窗口化操作
2019-04-29
excel的常用函数(二)
2019-04-29
excel的逻辑函数
2019-04-29
excel文本函数
2019-04-29
excel时间日期函数
2019-04-29
excel查找引用函数
2019-04-29
棱镜门事件
2019-04-29
拼多多远程删除用户照片事件
2019-04-29
power BI desktop
2019-04-29