本文是视频课程《Unity技术美术TA:Shader篇》,算是对自己学习的总结,也希望分享下所学知识~~
(原课程链接传送门)
帧缓冲区是啥
帧缓存,存放一帧中数据信息的容器
流程:
片断着色器< ----- >帧缓存 ----- > 显示器:
片断在写入帧缓冲之前会经历一系列的测试(Alpha测试、模板测试、深度测试)
片断在写入帧缓冲之时也会进行一些运算操作(混合)
显示器扫描方式:
1.随机扫描显示器:可以按规定图形显示(被淘汰了)
2.光栅扫描显示器:从左上角一行一行的绘制,返回左上角继续,这个流程位一帧
帧缓冲的方式
1.单缓冲:片断着色器写入到缓冲buffer中,直接刷新到显示器显示
2.双缓冲:片段着色器写入到后缓冲buffer中,再送到前缓冲buffer中,再刷新显示
(效率不高,当前帧没绘制完的时候会有拉扯,双缓冲可以等全部完毕后再交换到屏幕上)
帧缓存都有啥:
1.深度缓冲区:Depth Buffer
2.颜色缓冲区:Color Buffer
3.模板缓冲区:Stencil Buffer
4.自定义缓冲区
其中最重要的:
颜色缓冲区:存储每帧颜色信息的缓冲区
1bit,非黑即白
8bit = 256 = 1byte(老显示器)
16bit = 65535 = 64k色,2byte
24bit = 16777216 = 24位真彩色,3byte
19201080分辨率的颜色缓冲占用多少显存?
答:
19201080*3/1024/1024 = 5.93MB
(24位真彩色,3个byte)
(双缓存 * 2)
清除缓冲区
Clear( color + Z +stencil )
通过Unity 中相机选项控制
SkyBox:正常
Dont Clear:不清除,会留下来残影
帧调试器 FrameDebugger
做渲染和优化时候经常用
Toolbar,DrawCall 查看快速选择
主窗口