CommandBuffer学习之Hello World!
一、简介
-
Unity官方解释
- CommandBuffer携带一系列的渲染命令,依赖相机,用来拓展渲染管线的渲染效果.
-
我们的解读
- 是由CPU控制提交给GPU执行的一系列命令序列.
- 可以更加灵活的方式来操纵渲染管线的流转
- 可以实现自定义渲染管线.
- 可以用更加优美性能更好的方式实现一些后处理效果
- 可以拥有更多手段去实现一些渲染效果,以及性能优化
二、那么该如何理解CommandBuffer呢?
-
官方的解释很简单也很明了,用途也很诱人,但是对于那些刚刚接触渲染管线的小伙伴们,理解还是有点困难,更不用说熟练的使用了,那么我们怎么去理解它呢?
-
在通过对CommandBuffer的使用中发现,其实我们可以从另外一个角度来去学习和理解他,比如我们把CommandBuffer当成为一种函数定义方式.并且这个函数还是可以在运行时改变的.
-
另外,在学习和接触到CommandBuffer的你,最起码我们都熟练应用至少一门编程语言,所以我们今天就以所有编程语言学习的第一节经典课,Helloword作为例子,来一步一步的理解CommandBuffer.
-
因为C#作为Unity3D的官方脚本语言,各位更不会陌生,所以我们对比的就是C#的控制器程序.
三、一个简单的Hello World程序示例
- C#的HelloWorld.
//关键代码 //这个是创建一个C#控制台程序的默认代码,就是在控制台输出Hello World!的字符串 class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } }
- CommandBuffer的HelloWorld
//关键代码 //初始化CommandBuffer private void InitCmd() { if (_cmd == null) { //创建一个Cmd的空函数,函数名称为DrawText _cmd = new CommandBuffer(); _cmd.name = "DrawText"; if(_mainCamera != null) _mainCamera.AddCommandBuffer(_event, _cmd); } }