第二章 渲染流水线(下)---Shader语言与Draw Call
来源:互联网 发布:数据库设计工具 编辑:程序博客网 时间:2024/06/14 10:15
一.HLSL,GLSL,CG
GLSL: OpenGL支持的。跨平台,编译结果依赖于硬件供应商。
HLSL: 微软控制着色器编译,仅支持微软自己的产品。
CG: 跨平台,与HLSL的语法非常像。
在unity shader 中,可以选择'CG/HLSL"或者"GLSL",但Unity shader语言并不是真正意义上的对应着色器语言,尽管它们的语法几乎一样。
二.Draw Call
1.Draw Call其实就是调用图像编程接口,如OpenGL 中的glDrawElements或者DirectX中的DrawIndexedPrimitive命令。
2.CPU 和 GPU通过命令缓冲区执行命令。
3.为什么Draw Call影响帧率
在每次调用Draw Call前,CPU需要向GPU 发送很多内容,包括数据,状态和命令等。
GPU渲染能力很强,渲染200还是2000三角网格通常没有区别,渲染速主要取决于CPU提交命令的速度。
如果DrawCall数量太多,CPU就会把大量时间花费在提交DrawCall上,造成CPU过载。
4.如何减少Draw Call
4.1 避免使用大量很小的网格,当不可避免时考虑是否合并它们。
4.2 避免使用过多材质,尽量在不同网格之间共同使用同一个材质。
阅读全文
0 0
- 第二章 渲染流水线(下)---Shader语言与Draw Call
- 第二章 渲染流水线(上)---GPU流水线
- 第二章:渲染流水线(1)
- Shader 学习笔记(一) 渲染流水线
- 【Unity Shader】渲染流水线
- 三言两语说shader(四)渲染流水线及相关
- Unity Shader入门精要笔记(一):渲染流水线
- Unity Shader学习-1.渲染流水线
- [Unity3D]Shader学习笔记之渲染流水线
- 【Shader基础篇】之渲染流水线
- Unity Shader学习-1.渲染流水线
- 【Unity Shader入门精要】— 渲染流水线
- 第2章 渲染流水线
- 第2章 渲染流水线
- 渲染流水线
- 渲染流水线
- 渲染流水线
- 渲染流水线
- abstract class和interface的区别
- C#中的Split()函数
- 多线程的实现方式
- hive 时间格式,计算
- web前端图片懒加载
- 第二章 渲染流水线(下)---Shader语言与Draw Call
- tcp、udp观后感
- python 调试工具
- 【Java】数组不能通过toString方法转为字符串
- 根据文字长度改变text高度
- DWR的用法以及同步和异步的设置
- Redis主从配置及使用KeepAlived实现Redis高可用
- 链表问题---删除链表的中间节点和a/b处的节点
- layout_item_title_layout