UnityShader1:渲染流水线
- 前置专栏:Unity3D基础
- 前置专栏:OpenGL
- 前置:基础线代公式汇总
需要先了解简单的线性代数/数学知识,以及OpenGL/DirectX至少一种
一、渲染流水线
三个阶段:应用阶段 → 几何阶段 → 光栅化阶段
应用阶段(起点为CPU,目标为GPU):
- 把数据加载到显存中:显卡对于显存的访问速度更快,而且大多数显卡对于 RAM 没有直接的访问权利,加载到显存后对于原先在 RAM 中的数据可以选择性的移除
- 设置渲染状态:确定使用的着色器,材质等
- 调用 Draw Call:Draw Call 是 CPU 发送给 GPU 的一个命令,告诉 GPU 可以开始绘制工作,之前的 OpenGL 和 DirectX 就是上层应用程序与底层 GPU 之间的沟通桥梁,尽可能的减少 Draw Call 次数是一个非常重要的优化方向
几何阶段 & 光栅化阶段:
GPU开始渲染工作,对应渲染管线:https://blog.csdn.net/Jaihk662/article/details/105560152(OpenGL基础3:渲染管线)
二、基础渲染环节
空间变换:https://blog.csdn.net/Jaihk662/article/details/106237306
顶点着色器 & 片段着色器:https://blog.csdn.net/Jaihk662/article/details/105954230
深度测试 & 模板测试:https://blog.csdn.net/Jaihk662/article/details/107100249
https://blog.csdn.net/Jaihk662/article/details/107109788
……
三、扩展
GPU 和 CPU 是如何并行工作的:
流水线模式,命令缓冲区(Command Buffer)包含了一个缓冲队列,CPU向其中添加命令,而GPU从中读取命令,添加和读取过程是相互独立的
为什么 Draw Call 多了会影响帧率?
在每次调用 Draw Call 时,CPU 需要进行非常多的工作,包括但不限于发送状态命令和数据,检查渲染状态等,一般其提交速度要低于GPU的渲染速度,会出现性能瓶颈
HLSL、GLSL、CG 着色器语言:
- GLSL:OpenGL 的着色器语言,由显卡驱动来完成着色器的编译工作,依赖硬件而不依赖操作系统
- HLSL:DirectX 的着色器语言,由微软控制着色器的编译,因此往往只支持微软平台的产品
- CG:真正意义上的跨平台,它会根据平台的不同编译成相应的中间语言,是与微软的合作项目,与 HLSL 高度相似
在 Unity Shader 中,可以选择使用 "CG/HLSL" 或者 "GLSL"
UnityShader1:渲染流水线相关推荐
- OpenGL ---渲染流水线之世界矩阵,相机变换矩阵,透视投影变换矩阵
https://blog.csdn.net/qq_29523119/article/details/78577246 OpenGL的渲染流水线: OpenGL的坐标系 在3D图形学里,OpenGL为右 ...
- 移动端 像素渲染流水线与GPU Hack
什么是 像素渲染流水线 web页面你所写的页面代码是如何被转换成屏幕上显示的像素的.这个转换过程可以归纳为这样的一个流水线,包含五个关键步骤: 1.JavaScript:一般来说,我们会使用JavaS ...
- 使用opengl编程实现一个三维渲染实体_Unity Shader学习随记_01_渲染流水线
什么是Shader?它和Material(材质)的关系 Shader,中文翻译:着色器,是可编程图形管线的算法片段 Shader实际上就是一小段程序,它负责将输入的顶点数据以指定的方式和输入的贴图或者 ...
- 「技美之路」图形 1.1 渲染流水线
今日起开始分享学习技美之路专栏,文章来源听课笔记以及业界大佬分享的经验文章,主要来自CSDN_知乎等.技美路漫长 一定要坚持 开始吧! 一.整体流程 整体流程(渲染管线可分为四个阶段)每一个阶段的输 ...
- 浏览器渲染流水线解析
摘要: 若干年前,我写过一篇介绍浏览器渲染流水线的文章 - How Rendering Work (in WebKit and Blink),这篇文章,一来部分内容已经过时,二来缺少一个全局视角来对流 ...
- Chrome 渲染流水线演化的未来
摘要:前段时间我写了一篇文章浏览器渲染流水线解析与网页动画性能优化,对目前 60 左右版本的 Chrome 的渲染流水线进行解析,文末也讨论了当前渲染流水线的一些不足和未来演化的方向. 当前的渲染流水 ...
- unity shader入门精要_Unity Shader 入门(一):渲染流水线
一.参考与说明(需要写在开始东西): 1.1 Unity Shader 入门紧要学习 candycat1992/Unity_Shaders_Bookgithub.com 1.2 还有一些图形学的历史 ...
- OpenGL 的渲染流水线
一.渲染:计算机根据模型创建图象.模型(或物体)是由几何图元构成的,而几何图元是通过顶点来指定的.最终渲染的图象由屏幕像素组成.像素(pixel)是显示硬件能够放置到屏幕上的最小的可视元素.有关像素的 ...
- 图形 1.1渲染流水线(知识梳理笔记)
目录 前言 渲染流水线整体流程 序 应用阶段 准备基本场景数据 加速算法粗粒度剔除 设置渲染状态,准备渲染参数 调用Draw Call ,数据输出到显存 几何阶段 顶点着色 顶点处理(可选) 投影 裁 ...
最新文章
- 使用TextInputLayout分分钟构造一个酷炫登录框架
- PHP类实例教程(七):析构函数与PHP的垃圾回收
- SAP 电商云 Spartacus UI feature level directive 的工作原理
- Caffe cuDNN
- 更换计算机桌面背景的教案,桂科版三年级下册任务一 美化桌面背景免费教学设计...
- GNOME如何使用Git
- 【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记
- mysql 列换行 表设计 设计_MySql行转列、列转行
- java多线程方式轮询,深入理解JAVA多线程之线程间的通信方式
- 在集设把优秀的设计合集,轻松追寻设计灵感
- 回公司无聊和小冰聊天,很好奇她到底怎么想的
- Spring+Hibernate整合Hessian
- 开课吧Java课堂:特殊的字符串如何操作,字符串如何连接
- Django 【第一篇】基础
- 修改显卡型号软件_电脑一键修改任意CPU型号方法 装X新技能!
- 大数据环境搭建之hadoop完全分布式搭建
- 给摩托罗拉C1200数字对讲机写频
- 新编计算机组装与维护教程,新编计算机组装与维护教程/21世纪高等学校计算机科学与技术规划教材...
- 【操作系统】知识梳理(十一)多媒体操作系统
- 如何对一个网页进行测试