码迷,mamicode.com
首页 > 数据库 > 详细

unity CommandBuffer学习

时间:2017-01-26 12:29:00      阅读:724      评论:0      收藏:0      [点我收藏+]

标签:ons   简单   ring   splay   sys   ndis   style   foreach   indicator   

unity官方的教程:https://blogs.unity3d.com/cn/2015/02/06/extending-unity-5-rendering-pipeline-command-buffers/

文章底部附带了一个demo工程

 

用官方例子改了改,作为测试脚本

技术分享
using UnityEngine;
using UnityEngine.Rendering;
using System.Collections;
using System.Collections.Generic;

public class Test : MonoBehaviour
{
    public Mesh testMesh;
    public Material testMaterial;

    Dictionary<Camera, CommandBuffer> m_Cameras = new Dictionary<Camera, CommandBuffer>();


    void OnDisable()
    {
        foreach (var cam in m_Cameras)
        {
            if (cam.Key)
            {
                cam.Key.RemoveCommandBuffer(CameraEvent.BeforeLighting, cam.Value);
            }
        }
    }

    void LateUpdate()
    {
        var act = gameObject.activeInHierarchy && enabled;
        if (!act)
        {
            OnDisable();
            return;
        }

        var cam = Camera.current;
        if (!cam)
            return;

        CommandBuffer buf = null;
        if (m_Cameras.ContainsKey(cam))
        {
            buf = m_Cameras[cam];
            buf.Clear();
        }
        else
        {
            buf = new CommandBuffer();
            buf.name = "Test Command Buffer";
            m_Cameras[cam] = buf;

            cam.AddCommandBuffer(CameraEvent.AfterFinalPass, buf);
        }

        buf.DrawMesh(testMesh, Matrix4x4.TRS(Camera.main.transform.position + Camera.main.transform.forward * 4f, Quaternion.identity, Vector3.one), testMaterial);
    }
}
View Code

 

脚本很简单,在finalpass之后绘制一个mesh

技术分享

 

 

 

CommandBuffer支持延迟渲染和正向渲染,但需要注意如果在正向渲染中用了CameraEvent.AfterGBuffer之类的延迟渲染事件,会不起作用。

Unity的FrameDebug可以对CommandBuffer进行调试

 

技术分享

 

 

有空再完善

unity CommandBuffer学习

标签:ons   简单   ring   splay   sys   ndis   style   foreach   indicator   

原文地址:http://www.cnblogs.com/hont/p/6351405.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!