summaryrefslogtreecommitdiffstats
path: root/Editor/tooner.cs
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2025-01-31 21:11:00 -0800
committeryum <yum.food.vr@gmail.com>2025-01-31 23:11:03 -0800
commit4bd9c2ba494013f292ddc14d793bc2b362aff365 (patch)
tree47467638c47c347395adbf31f54cf5b5663490b2 /Editor/tooner.cs
parentccbf41389673b61cc1d7787413588330382f3264 (diff)
Add bayer matrices & grabpass-based lens shader
Diffstat (limited to 'Editor/tooner.cs')
-rw-r--r--Editor/tooner.cs66
1 files changed, 62 insertions, 4 deletions
diff --git a/Editor/tooner.cs b/Editor/tooner.cs
index f4cd4f2..fab06e0 100644
--- a/Editor/tooner.cs
+++ b/Editor/tooner.cs
@@ -529,11 +529,11 @@ public class ToonerGUI : ShaderGUI {
enum TilingMode {
Clamp,
Repeat,
- }
+ };
enum BaseColorMode {
Color,
SDF,
- }
+ };
void DoDecal() {
show_ui.Add(AddCollapsibleMenu("Decals", "_Decal"));
EditorGUI.indentLevel += 1;
@@ -792,7 +792,7 @@ public class ToonerGUI : ShaderGUI {
Subtract,
Min,
Max,
- }
+ };
void DoMatcap() {
for (int i = 0; i < 2; i++) {
@@ -2647,7 +2647,7 @@ public class ToonerGUI : ShaderGUI {
Cylinder = 0,
Plane = 1,
Sphere = 2,
- }
+ };
void DoGimmickFog0() {
MaterialProperty bc;
@@ -3179,6 +3179,63 @@ public class ToonerGUI : ShaderGUI {
EditorGUI.indentLevel -= 1;
}
+ enum Lens00Mode {
+ Bayer,
+ InterleavedGradientNoise,
+ }
+
+ void DoLens00() {
+ MaterialProperty bc;
+
+ bc = FindProperty("_Gimmick_Lens_00_Enable_Static");
+ bool enabled = (bc.floatValue != 0.0);
+ EditorGUI.BeginChangeCheck();
+ enabled = Toggle("Lens00", enabled);
+ EditorGUI.EndChangeCheck();
+ bc.floatValue = enabled ? 1.0f : 0.0f;
+ SetKeyword("_GIMMICK_LENS_00", enabled);
+
+ if (!enabled) {
+ return;
+ }
+
+ EditorGUI.indentLevel += 1;
+
+ bc = FindProperty("_Gimmick_Lens_00_Enable_Frame_Counter");
+ enabled = (bc.floatValue != 0.0);
+ EditorGUI.BeginChangeCheck();
+ enabled = Toggle("Frame counter", enabled);
+ EditorGUI.EndChangeCheck();
+ bc.floatValue = enabled ? 1.0f : 0.0f;
+ SetKeyword("_GIMMICK_LENS_00_FRAME_COUNTER", enabled);
+
+ bc = FindProperty("_Gimmick_Lens_00_Subdivisions");
+ FloatProperty(bc, "Quantization subdivisions");
+
+ if (enabled) {
+ EditorGUI.indentLevel += 1;
+ bc = FindProperty("_Gimmick_Lens_00_Frame_Counter_Speed");
+ FloatProperty(bc, "Speed");
+ EditorGUI.indentLevel -= 1;
+ }
+
+
+ bc = FindProperty("_Gimmick_Lens_00_Scale");
+ FloatProperty(bc, "Scale");
+
+ bc = FindProperty("_Gimmick_Lens_00_Mode");
+ Lens00Mode mode = (Lens00Mode) Math.Round(bc.floatValue);
+ EditorGUI.BeginChangeCheck();
+ mode = (Lens00Mode) EnumPopup(
+ MakeLabel("Mode"), mode);
+ EditorGUI.EndChangeCheck();
+ bc.floatValue = (float) mode;
+ SetKeyword("_GIMMICK_LENS_00_BAYER", mode == Lens00Mode.Bayer);
+ SetKeyword("_GIMMICK_LENS_00_INTERLEAVED_GRADIENT_NOISE", mode == Lens00Mode.InterleavedGradientNoise);
+
+ EditorGUI.indentLevel -= 1;
+ }
+
void DoGimmicks() {
show_ui.Add(AddCollapsibleMenu("Gimmicks", "_Gimmicks"));
EditorGUI.indentLevel += 1;
@@ -3211,6 +3268,7 @@ public class ToonerGUI : ShaderGUI {
DoExplosion();
DoGeoScroll();
DoGimmickEpilepsyMode();
+ DoLens00();
EditorGUI.indentLevel -= 1;
show_ui.RemoveAt(show_ui.Count - 1);