/// <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); }
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)); } }
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)); } }
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)); } }
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)); } }
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)); } }
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); }
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)); } }
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); }
/// <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()); }