还原水插件

This commit is contained in:
2026-03-05 00:14:42 +08:00
parent 0de35591e7
commit e82f2ea6b7
270 changed files with 2773 additions and 12445 deletions

View File

@@ -57,10 +57,10 @@ namespace WaveHarmonic.Crest.Editor
public override void OnPreviewGUI(Rect rect, GUIStyle background)
{
var texture = (RenderTexture)OriginalTexture;
var texture = Lod.DataTexture;
var descriptor = texture.descriptor;
_TemporaryTexture = RenderTexture.GetTemporary(descriptor);
_TemporaryTexture.name = texture.name;
_TemporaryTexture.name = "Crest Preview (Temporary)";
Graphics.CopyTexture(texture, _TemporaryTexture);
if (VisualizeNegatives)
@@ -80,16 +80,15 @@ namespace WaveHarmonic.Crest.Editor
if (ForceAlpha)
{
// Set alpha to one otherwise it shows nothing when set to RGB.
if (WaterResources.Instance.Compute._Clear != null)
var clear = WaterResources.Instance.Compute._Clear;
if (clear != null)
{
var compute = WaterResources.Instance._ComputeLibrary._ClearCompute;
var wrapper = new PropertyWrapperComputeStandalone(compute._Shader, compute._KernelClearTarget);
compute.SetVariantForFormat(wrapper, _TemporaryTexture.graphicsFormat);
wrapper.SetTexture(ShaderIDs.s_Target, _TemporaryTexture);
wrapper.SetVector(ShaderIDs.s_ClearMask, Color.black);
wrapper.SetVector(ShaderIDs.s_ClearColor, Color.black);
wrapper.Dispatch
clear.SetTexture(0, ShaderIDs.s_Target, _TemporaryTexture);
clear.SetVector(ShaderIDs.s_ClearMask, Color.black);
clear.SetVector(ShaderIDs.s_ClearColor, Color.black);
clear.Dispatch
(
0,
Lod.Resolution / Lod.k_ThreadGroupSizeX,
Lod.Resolution / Lod.k_ThreadGroupSizeY,
Lod.Slices
@@ -291,16 +290,7 @@ namespace WaveHarmonic.Crest.Editor
public override GUIContent GetPreviewTitle() => new("Water Reflections");
protected override Texture OriginalTexture => (target as WaterRenderer)._Reflections._Enabled
? (target as WaterRenderer)._Reflections.ColorTexture
? (target as WaterRenderer)._Reflections.ReflectionTexture
: s_DefaultReflection?.GetValue(null) as Texture;
}
#if CREST_DEBUG
[CustomPreview(typeof(WaterRenderer))]
sealed class ReflectionDepthPreview : TexturePreview
{
public override GUIContent GetPreviewTitle() => new("Water Reflections (Depth)");
protected override Texture OriginalTexture => (target as WaterRenderer)._Reflections.DepthTexture;
}
#endif
}