升级obi

This commit is contained in:
2026-01-22 22:08:21 +08:00
parent 120b8cda26
commit 20f14322bc
1067 changed files with 149894 additions and 29583 deletions

View File

@@ -1,70 +0,0 @@
using System;
using UnityEngine;
using UnityEngine.Rendering;
namespace Obi{
public class ShadowmapExposer : MonoBehaviour
{
Light unityLight;
CommandBuffer afterShadow = null;
public ObiParticleRenderer[] particleRenderers;
public void Awake(){
unityLight = GetComponent<Light>();
}
public void OnEnable(){
Cleanup();
afterShadow = new CommandBuffer();
afterShadow.name = "FluidShadows";
unityLight.AddCommandBuffer (LightEvent.AfterShadowMapPass, afterShadow);
}
public void OnDisable(){
Cleanup();
}
private void Cleanup(){
if (afterShadow != null){
unityLight.RemoveCommandBuffer (LightEvent.AfterShadowMapPass,afterShadow);
afterShadow = null;
}
}
public void SetupFluidShadowsCommandBuffer()
{
afterShadow.Clear();
if (particleRenderers == null)
return;
foreach(ObiParticleRenderer renderer in particleRenderers){
if (renderer != null){
foreach(Mesh mesh in renderer.ParticleMeshes)
afterShadow.DrawMesh(mesh,Matrix4x4.identity,renderer.ParticleMaterial,0,1);
}
}
afterShadow.SetGlobalTexture ("_MyShadowMap", new RenderTargetIdentifier(BuiltinRenderTextureType.CurrentActive));
}
// Use this for initialization
void Update()
{
bool act = gameObject.activeInHierarchy && enabled;
if (!act || particleRenderers == null || particleRenderers.Length == 0)
{
Cleanup();
return;
}
if (afterShadow != null)
{
SetupFluidShadowsCommandBuffer();
}
}
}
}