GPU优化

This commit is contained in:
SoulliesOfficial
2026-04-06 09:32:56 -04:00
parent 1bc9af280b
commit f4068baf4a
108 changed files with 2813 additions and 1073 deletions

View File

@@ -1,23 +1,20 @@
using System;
using UnityEngine;
using Ichni.RhythmGame;
using Ichni.RhythmGame.Beatmap;
using System.Collections.Generic;
using Beatmap;
namespace Ichni.RhythmGame
{
// 以EnvironmentObject为基底支持伪阴影shader参数刷新
public class BasicEnvironmentObject : EnvironmentObject
{
[Header("Pseudo Shadow Settings")]
public Renderer shadowRenderer; // 指向带有伪阴影shader的Renderer
[Header("Pseudo Shadow Settings")] public Renderer shadowRenderer; // 指向带有伪阴影shader的Renderer
[Range(-1, 1)] public float shadowThreshold = 0.2f;
[Range(0, 1)] public float shadowSmoothness = 0.5f;
public bool useWorldLight = false;
public Vector3 fakeLightDir = new Vector3(0.5f, 1, 0.5f);
public override bool haveEmission => true;
public static BasicEnvironmentObject GenerateElement(string elementName, Guid id, List<string> tags,
bool isFirstGenerated, string themeBundleName, string objectName, GameElement parentElement,
bool isStatic,
@@ -33,6 +30,7 @@ namespace Ichni.RhythmGame
basicEnvObj.fakeLightDir = fakeLightDir;
return basicEnvObj;
}
public override void Refresh()
{
base.Refresh();
@@ -46,37 +44,39 @@ namespace Ichni.RhythmGame
mat.SetFloat("_UseWorldLight", useWorldLight ? 1 : 0);
}
}
}
namespace Beatmap
{
public class BasicEnvironmentObject_BM : EnvironmentObject_BM
namespace Beatmap
{
public float shadowThreshold;
public float shadowSmoothness;
public bool useWorldLight;
public Vector3 fakeLightDir;
public BasicEnvironmentObject_BM() { }
public BasicEnvironmentObject_BM(string elementName, Guid elementGuid, List<string> tags, GameElement_BM parentElement,
string themeBundleName, string objectName, bool isStatic,
float shadowThreshold, float shadowSmoothness, bool useWorldLight, Vector3 fakeLightDir)
: base(elementName, elementGuid, tags, parentElement, themeBundleName, objectName, isStatic)
public class BasicEnvironmentObject_BM : EnvironmentObject_BM
{
this.shadowThreshold = shadowThreshold;
this.shadowSmoothness = shadowSmoothness;
this.useWorldLight = useWorldLight;
this.fakeLightDir = fakeLightDir;
}
public float shadowThreshold;
public float shadowSmoothness;
public bool useWorldLight;
public Vector3 fakeLightDir;
public override void ExecuteBM()
{
matchedElement = BasicEnvironmentObject.GenerateElement(elementName, elementGuid, tags, false,
themeBundleName, objectName, GetElement(attachedElementGuid), isStatic,
shadowThreshold, shadowSmoothness, useWorldLight, fakeLightDir);
public BasicEnvironmentObject_BM()
{
}
public BasicEnvironmentObject_BM(string elementName, Guid elementGuid, List<string> tags, GameElement_BM parentElement,
string themeBundleName, string objectName, bool isStatic,
float shadowThreshold, float shadowSmoothness, bool useWorldLight, Vector3 fakeLightDir)
: base(elementName, elementGuid, tags, parentElement, themeBundleName, objectName, isStatic)
{
this.shadowThreshold = shadowThreshold;
this.shadowSmoothness = shadowSmoothness;
this.useWorldLight = useWorldLight;
this.fakeLightDir = fakeLightDir;
}
public override void ExecuteBM()
{
matchedElement = BasicEnvironmentObject.GenerateElement(elementName, elementGuid, tags, false,
themeBundleName, objectName, GetElement(attachedElementGuid), isStatic,
shadowThreshold, shadowSmoothness, useWorldLight, fakeLightDir);
}
}
}
}
}