AddCommandBuffer() private method

private AddCommandBuffer ( LightEvent evt, CommandBuffer buffer ) : void
evt LightEvent
buffer CommandBuffer
return void
コード例 #1
0
    /// <summary>
    ///
    /// </summary>
    public void EnableLightShafts()
    {
        if (_lightShaftsCommandBuffer == null)
        {
            InitializeLightShafts();
        }

        Sun.RemoveCommandBuffer(LightEvent.AfterShadowMap, _cascadeShadowCommandBuffer);
        Sun.RemoveCommandBuffer(LightEvent.BeforeScreenspaceMask, _lightShaftsCommandBuffer);

        Sun.AddCommandBuffer(LightEvent.AfterShadowMap, _cascadeShadowCommandBuffer);
        Sun.AddCommandBuffer(LightEvent.BeforeScreenspaceMask, _lightShaftsCommandBuffer);
    }
コード例 #2
0
    static int AddCommandBuffer(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 3 && TypeChecker.CheckTypes(L, 1, typeof(UnityEngine.Light), typeof(UnityEngine.Rendering.LightEvent), typeof(UnityEngine.Rendering.CommandBuffer)))
            {
                UnityEngine.Light obj = (UnityEngine.Light)ToLua.ToObject(L, 1);
                UnityEngine.Rendering.LightEvent    arg0 = (UnityEngine.Rendering.LightEvent)ToLua.ToObject(L, 2);
                UnityEngine.Rendering.CommandBuffer arg1 = (UnityEngine.Rendering.CommandBuffer)ToLua.ToObject(L, 3);
                obj.AddCommandBuffer(arg0, arg1);
                return(0);
            }
            else if (count == 4 && TypeChecker.CheckTypes(L, 1, typeof(UnityEngine.Light), typeof(UnityEngine.Rendering.LightEvent), typeof(UnityEngine.Rendering.CommandBuffer), typeof(UnityEngine.Rendering.ShadowMapPass)))
            {
                UnityEngine.Light obj = (UnityEngine.Light)ToLua.ToObject(L, 1);
                UnityEngine.Rendering.LightEvent    arg0 = (UnityEngine.Rendering.LightEvent)ToLua.ToObject(L, 2);
                UnityEngine.Rendering.CommandBuffer arg1 = (UnityEngine.Rendering.CommandBuffer)ToLua.ToObject(L, 3);
                UnityEngine.Rendering.ShadowMapPass arg2 = (UnityEngine.Rendering.ShadowMapPass)ToLua.ToObject(L, 4);
                obj.AddCommandBuffer(arg0, arg1, arg2);
                return(0);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to method: UnityEngine.Light.AddCommandBuffer"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
コード例 #3
0
 static public int AddCommandBuffer(IntPtr l)
 {
     try {
         int argc = LuaDLL.lua_gettop(l);
         if (argc == 3)
         {
             UnityEngine.Light self = (UnityEngine.Light)checkSelf(l);
             UnityEngine.Rendering.LightEvent a1;
             checkEnum(l, 2, out a1);
             UnityEngine.Rendering.CommandBuffer a2;
             checkType(l, 3, out a2);
             self.AddCommandBuffer(a1, a2);
             return(0);
         }
         else if (argc == 4)
         {
             UnityEngine.Light self = (UnityEngine.Light)checkSelf(l);
             UnityEngine.Rendering.LightEvent a1;
             checkEnum(l, 2, out a1);
             UnityEngine.Rendering.CommandBuffer a2;
             checkType(l, 3, out a2);
             UnityEngine.Rendering.ShadowMapPass a3;
             checkEnum(l, 4, out a3);
             self.AddCommandBuffer(a1, a2, a3);
             return(0);
         }
         return(error(l, "No matched override function to call"));
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
コード例 #4
0
    static int AddCommandBuffer(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 3)
            {
                UnityEngine.Light obj = (UnityEngine.Light)ToLua.CheckObject <UnityEngine.Light>(L, 1);
                UnityEngine.Rendering.LightEvent    arg0 = (UnityEngine.Rendering.LightEvent)ToLua.CheckObject(L, 2, TypeTraits <UnityEngine.Rendering.LightEvent> .type);
                UnityEngine.Rendering.CommandBuffer arg1 = (UnityEngine.Rendering.CommandBuffer)ToLua.CheckObject <UnityEngine.Rendering.CommandBuffer>(L, 3);
                obj.AddCommandBuffer(arg0, arg1);
                return(0);
            }
            else if (count == 4)
            {
                UnityEngine.Light obj = (UnityEngine.Light)ToLua.CheckObject <UnityEngine.Light>(L, 1);
                UnityEngine.Rendering.LightEvent    arg0 = (UnityEngine.Rendering.LightEvent)ToLua.CheckObject(L, 2, TypeTraits <UnityEngine.Rendering.LightEvent> .type);
                UnityEngine.Rendering.CommandBuffer arg1 = (UnityEngine.Rendering.CommandBuffer)ToLua.CheckObject <UnityEngine.Rendering.CommandBuffer>(L, 3);
                UnityEngine.Rendering.ShadowMapPass arg2 = (UnityEngine.Rendering.ShadowMapPass)ToLua.CheckObject(L, 4, TypeTraits <UnityEngine.Rendering.ShadowMapPass> .type);
                obj.AddCommandBuffer(arg0, arg1, arg2);
                return(0);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to method: UnityEngine.Light.AddCommandBuffer"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
コード例 #5
0
 static int AddCommandBuffer(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 3);
         UnityEngine.Light obj = (UnityEngine.Light)ToLua.CheckObject(L, 1, typeof(UnityEngine.Light));
         UnityEngine.Rendering.LightEvent    arg0 = (UnityEngine.Rendering.LightEvent)ToLua.CheckObject(L, 2, typeof(UnityEngine.Rendering.LightEvent));
         UnityEngine.Rendering.CommandBuffer arg1 = (UnityEngine.Rendering.CommandBuffer)ToLua.CheckObject(L, 3, typeof(UnityEngine.Rendering.CommandBuffer));
         obj.AddCommandBuffer(arg0, arg1);
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
コード例 #6
0
 static public int AddCommandBuffer(IntPtr l)
 {
     try {
         UnityEngine.Light self = (UnityEngine.Light)checkSelf(l);
         UnityEngine.Rendering.LightEvent a1;
         checkEnum(l, 2, out a1);
         UnityEngine.Rendering.CommandBuffer a2;
         checkType(l, 3, out a2);
         self.AddCommandBuffer(a1, a2);
         pushValue(l, true);
         return(1);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
コード例 #7
0
 public static int AddCommandBuffer_wrap(long L)
 {
     try
     {
         long nThisPtr         = FCLibHelper.fc_get_inport_obj_ptr(L);
         UnityEngine.Light obj = get_obj(nThisPtr);
         UnityEngine.Rendering.LightEvent    arg0 = (UnityEngine.Rendering.LightEvent)(FCLibHelper.fc_get_int(L, 0));
         UnityEngine.Rendering.CommandBuffer arg1 = FCGetObj.GetObj <UnityEngine.Rendering.CommandBuffer>(FCLibHelper.fc_get_wrap_objptr(L, 1));
         obj.AddCommandBuffer(arg0, arg1);
     }
     catch (Exception e)
     {
         Debug.LogException(e);
     }
     return(0);
 }
コード例 #8
0
    static int AddCommandBuffer(IntPtr L)
    {
#if UNITY_EDITOR
        ToluaProfiler.AddCallRecord("UnityEngine.Light.Register");
#endif
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 3)
            {
                UnityEngine.Light obj = (UnityEngine.Light)ToLua.CheckObject(L, 1, typeof(UnityEngine.Light));
                UnityEngine.Rendering.LightEvent    arg0 = (UnityEngine.Rendering.LightEvent)ToLua.CheckObject(L, 2, typeof(UnityEngine.Rendering.LightEvent));
                UnityEngine.Rendering.CommandBuffer arg1 = (UnityEngine.Rendering.CommandBuffer)ToLua.CheckObject(L, 3, typeof(UnityEngine.Rendering.CommandBuffer));
                obj.AddCommandBuffer(arg0, arg1);
                return(0);
            }
            else if (count == 4)
            {
                UnityEngine.Light obj = (UnityEngine.Light)ToLua.CheckObject(L, 1, typeof(UnityEngine.Light));
                UnityEngine.Rendering.LightEvent    arg0 = (UnityEngine.Rendering.LightEvent)ToLua.CheckObject(L, 2, typeof(UnityEngine.Rendering.LightEvent));
                UnityEngine.Rendering.CommandBuffer arg1 = (UnityEngine.Rendering.CommandBuffer)ToLua.CheckObject(L, 3, typeof(UnityEngine.Rendering.CommandBuffer));
                UnityEngine.Rendering.ShadowMapPass arg2 = (UnityEngine.Rendering.ShadowMapPass)ToLua.CheckObject(L, 4, typeof(UnityEngine.Rendering.ShadowMapPass));
                obj.AddCommandBuffer(arg0, arg1, arg2);
                return(0);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to method: UnityEngine.Light.AddCommandBuffer"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
コード例 #9
0
	void EnsureHookedLightSource(Light light) {
		if(!light)
			return;

		if(light.commandBufferCount == 2)
			return;

		//Debug.Log("Hooking scattering command buffers on light source: " + light.name);

		// NOTE: This doesn't really play nicely with other users of light events.
		//       Currently not an issue since this code was written pre-5.1 (and light events
		//       are a new feature in 5.1), but might need a proper solution in the future.
		light.RemoveAllCommandBuffers();

		if(m_occlusionCmdAfterShadows != null)
			m_occlusionCmdAfterShadows.Dispose();
		if(m_occlusionCmdBeforeScreen != null)
			m_occlusionCmdBeforeScreen.Dispose();

		m_occlusionCmdAfterShadows = new UnityEngine.Rendering.CommandBuffer();
		m_occlusionCmdAfterShadows.name = "Scatter Occlusion Pass 1";
		m_occlusionCmdAfterShadows.SetGlobalTexture("u_CascadedShadowMap", new UnityEngine.Rendering.RenderTargetIdentifier(UnityEngine.Rendering.BuiltinRenderTextureType.CurrentActive));
		m_occlusionCmdBeforeScreen = new UnityEngine.Rendering.CommandBuffer();
		m_occlusionCmdBeforeScreen.name = "Scatter Occlusion Pass 2";

		light.AddCommandBuffer(UnityEngine.Rendering.LightEvent.AfterShadowMap, m_occlusionCmdAfterShadows);
		light.AddCommandBuffer(UnityEngine.Rendering.LightEvent.BeforeScreenspaceMask, m_occlusionCmdBeforeScreen);
	}
コード例 #10
0
    /// <summary>
    /// 
    /// </summary>
    void Start()
    {
        _commandBuffer = new CommandBuffer();
        _commandBuffer.name = "Light Command Buffer";

        _cascadeShadowCommandBuffer = new CommandBuffer();
        _cascadeShadowCommandBuffer.name = "Dir Light Command Buffer";
        _cascadeShadowCommandBuffer.SetGlobalTexture("_CascadeShadowMapTexture", new UnityEngine.Rendering.RenderTargetIdentifier(UnityEngine.Rendering.BuiltinRenderTextureType.CurrentActive));

        _light = GetComponent<Light>();
        _light.RemoveAllCommandBuffers();
        if(_light.type == LightType.Directional)
        {
            _light.AddCommandBuffer(LightEvent.BeforeScreenspaceMask, _commandBuffer);
            _light.AddCommandBuffer(LightEvent.AfterShadowMap, _cascadeShadowCommandBuffer);

        }
        else
            _light.AddCommandBuffer(LightEvent.AfterShadowMap, _commandBuffer);

        _material = new Material(Shader.Find("Sandbox/VolumetricLight")); // new Material(VolumetricLightRenderer.GetLightMaterial());
    }