[Unity Shader学习笔记] Unity缓冲区
Posted 曾胖神父
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Unity Shader学习笔记] Unity缓冲区相关的知识,希望对你有一定的参考价值。
1 帧缓冲区
帧缓存区也叫做帧缓存,是用于存放一帧中数据信息的容器
片断着色器在写入帧缓冲之前会进行一系列测试:Alpha测试、模板测试、深度测试…,这些测试决定当前像素是否需要写入帧缓冲。
片断着色器在写入帧缓冲之时,会进行一些运算操作:混合
显示器的扫描方式:随机扫描显示器(基本被淘汰)和光栅扫描显示器(逐像素扫描显示)。
帧缓冲分为单缓冲和双缓冲两种方式,双缓冲为了解决一帧绘制数据太慢,没有绘制完就绘制下一帧的问题。
帧缓冲区包括:Depth Buffer、Color Buffer、Stencil Buffer、自定义缓冲区。
2 颜色缓冲区
存储每帧颜色信息的缓冲区
1 bit = 0 1
2 bit = 2^2 = 4
8 bit = 2^8 = 256 (1 byte)
16 bit = 2^16 = 65536 (64k色,2 byte)
24 bit = 2^24 = 16777216 (24位真彩色,3 byte)
1920 * 1080分辨率,使用24位真彩色,会占用多少显存:
1920 * 1080 * (24 / 8)(byte) / 1024 /1024 = 5.93M
3 清除缓冲
清除缓冲的内部指令为Clear(color + Z + stencil),表示清除了三种缓冲:颜色(color)缓冲,深度(Z)缓冲,
模板(stencil)缓冲。
缓冲清除是默认设置是打开的,开发者可以在摄像头(Camera)组件Clear Flags一栏中进行手动关闭或开启(如下图)。
(PS:如果关闭缓冲清除,可能出现如下图的效果,原因是因为上帧的缓冲未被清除,导致上帧渲染的模型图像未被清除)
以上是关于[Unity Shader学习笔记] Unity缓冲区的主要内容,如果未能解决你的问题,请参考以下文章
Unity Shader入门精要学习笔记 - 第5章 开始 Unity Shader 学习之旅
Unity Shader入门精要学习笔记 - 第3章 Unity Shader 基础
蛋哥的学习笔记之-基于Unity的Shader编程:X-1 音乐水波特效