diff options
| author | yum <yum.food.vr@gmail.com> | 2025-06-13 15:44:50 -0700 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2025-06-13 15:44:50 -0700 |
| commit | f639117b1f743ab2941667b32b190dd1e715d4a5 (patch) | |
| tree | 4ade9dece93c4a7d94103c395892c44204b87027 | |
| parent | 96af8aa116b3605bccfb0efb643a4a0e20962530 (diff) | |
More optional passes get discarded when not locked
| -rw-r--r-- | 2ner.cginc | 19 | ||||
| -rw-r--r-- | 2ner.shader | 8 | ||||
| -rw-r--r-- | Scripts/BakeVertexData.py | 10 | ||||
| -rw-r--r-- | features.cginc | 16 |
4 files changed, 47 insertions, 6 deletions
@@ -34,7 +34,13 @@ v2f vert(appdata v) { // hide outlines when not locked.
return (v2f) (0.0/0.0);
#endif
+#if defined(DEPTH_PREPASS) && !defined(_DEPTH_PREPASS)
+ return (v2f) (0.0/0.0);
+#endif
#if defined(MASKED_STENCIL1_PASS)
+#if !defined(_MASKED_STENCIL1)
+ return (v2f) (0.0/0.0);
+#endif
float masked_stencil1_mask = _Masked_Stencil1_Mask.SampleLevel(linear_repeat_s, v.uv0, 0);
[branch]
if (masked_stencil1_mask < 0.5) {
@@ -42,6 +48,9 @@ v2f vert(appdata v) { }
#endif
#if defined(MASKED_STENCIL2_PASS)
+#if !defined(_MASKED_STENCIL2)
+ return (v2f) (0.0/0.0);
+#endif
float masked_stencil2_mask = _Masked_Stencil2_Mask.SampleLevel(linear_repeat_s, v.uv0, 0);
[branch]
if (masked_stencil2_mask < 0.5) {
@@ -49,6 +58,9 @@ v2f vert(appdata v) { }
#endif
#if defined(MASKED_STENCIL3_PASS)
+#if !defined(_MASKED_STENCIL3)
+ return (v2f) (0.0/0.0);
+#endif
float masked_stencil3_mask = _Masked_Stencil3_Mask.SampleLevel(linear_repeat_s, v.uv0, 0);
[branch]
if (masked_stencil3_mask < 0.5) {
@@ -56,6 +68,9 @@ v2f vert(appdata v) { }
#endif
#if defined(MASKED_STENCIL4_PASS)
+#if !defined(_MASKED_STENCIL4)
+ return (v2f) (0.0/0.0);
+#endif
float masked_stencil4_mask = _Masked_Stencil4_Mask.SampleLevel(linear_repeat_s, v.uv0, 0);
[branch]
if (masked_stencil4_mask < 0.5) {
@@ -139,7 +154,11 @@ v2f vert(appdata v) { o.tpos = v.vertex;
#endif
o.uv01.xy = v.uv0;
+#if defined(LIGHTMAP_ON)
+ o.uv01.zw = v.uv1 * unity_LightmapST.xy + unity_LightmapST.zw;
+#else
o.uv01.zw = v.uv1;
+#endif
o.uv23.xy = v.uv2;
o.uv23.zw = v.uv3;
#if defined(_MIRROR_UVS_IN_MIRROR)
diff --git a/2ner.shader b/2ner.shader index d7658af..e812c52 100644 --- a/2ner.shader +++ b/2ner.shader @@ -1594,7 +1594,7 @@ Shader "yum_food/2ner" //ifex _Masked_Stencil1_Enabled==0 [HideInInspector] m_start_Masked_Stencil1("Masked stencil 1", Float) = 0 - [ThryToggle(_)] _Masked_Stencil1_Enabled("Enable", Float) = 0 + [ThryToggle(_MASKED_STENCIL1)] _Masked_Stencil1_Enabled("Enable", Float) = 0 [ThryWideEnum(Simple, 0, Front Face vs Back Face, 1)] _Stencil1Type ("Stencil Type", Float) = 0 _Masked_Stencil1_Mask("Mask", 2D) = "white" {} [IntRange] _MaskedStencil1Ref ("Stencil Reference Value", Range(0, 255)) = 0 @@ -1623,7 +1623,7 @@ Shader "yum_food/2ner" //ifex _Masked_Stencil2_Enabled==0 [HideInInspector] m_start_Masked_Stencil2("Masked stencil 2", Float) = 0 - [ThryToggle(_)] _Masked_Stencil2_Enabled("Enable", Float) = 0 + [ThryToggle(_MASKED_STENCIL2)] _Masked_Stencil2_Enabled("Enable", Float) = 0 [ThryWideEnum(Simple, 0, Front Face vs Back Face, 1)] _Stencil2Type ("Stencil Type", Float) = 0 _Masked_Stencil2_Mask("Mask", 2D) = "white" {} [IntRange] _MaskedStencil2Ref ("Stencil Reference Value", Range(0, 255)) = 0 @@ -1652,7 +1652,7 @@ Shader "yum_food/2ner" //ifex _Masked_Stencil3_Enabled==0 [HideInInspector] m_start_Masked_Stencil3("Masked stencil 3", Float) = 0 - [ThryToggle(_)] _Masked_Stencil3_Enabled("Enable", Float) = 0 + [ThryToggle(_MASKED_STENCIL3)] _Masked_Stencil3_Enabled("Enable", Float) = 0 [ThryWideEnum(Simple, 0, Front Face vs Back Face, 1)] _Stencil3Type ("Stencil Type", Float) = 0 _Masked_Stencil3_Mask("Mask", 2D) = "white" {} [IntRange] _MaskedStencil3Ref ("Stencil Reference Value", Range(0, 255)) = 0 @@ -1681,7 +1681,7 @@ Shader "yum_food/2ner" //ifex _Masked_Stencil4_Enabled==0 [HideInInspector] m_start_Masked_Stencil4("Masked stencil 4", Float) = 0 - [ThryToggle(_)] _Masked_Stencil4_Enabled("Enable", Float) = 0 + [ThryToggle(_MASKED_STENCIL4)] _Masked_Stencil4_Enabled("Enable", Float) = 0 [ThryWideEnum(Simple, 0, Front Face vs Back Face, 1)] _Stencil4Type ("Stencil Type", Float) = 0 _Masked_Stencil4_Mask("Mask", 2D) = "white" {} [IntRange] _MaskedStencil4Ref ("Stencil Reference Value", Range(0, 255)) = 0 diff --git a/Scripts/BakeVertexData.py b/Scripts/BakeVertexData.py index 17d4b60..670e087 100644 --- a/Scripts/BakeVertexData.py +++ b/Scripts/BakeVertexData.py @@ -503,7 +503,7 @@ class MESH_OT_deduplicate_submeshes(BaseSubmeshOperator, ToleranceOperatorMixin) class MESH_OT_select_hidden_faces(BaseSubmeshOperator, ToleranceOperatorMixin): bl_idname = "mesh.select_hidden_faces" bl_label = "Select Hidden Faces" - bl_description = "Select faces that are hidden behind other faces (overlapping with opposing normals)" + bl_description = "Select faces that are hidden behind other faces (overlapping with opposing normals and same material)" position_tolerance: FloatProperty( name="Position Tolerance", @@ -600,7 +600,8 @@ class MESH_OT_select_hidden_faces(BaseSubmeshOperator, ToleranceOperatorMixin): face_data[face.index] = { 'normal': face.normal.normalized(), 'face': face, - 'center': center + 'center': center, + 'material_index': face.material_index } # Hash by center position (with boundary handling) @@ -631,6 +632,10 @@ class MESH_OT_select_hidden_faces(BaseSubmeshOperator, ToleranceOperatorMixin): face1_data = face_data[face1_idx] face2_data = face_data[face2_idx] + # Check if faces use the same material + if face1_data['material_index'] != face2_data['material_index']: + continue + # Quick check: opposing normals dot_product = face1_data['normal'].dot(face2_data['normal']) if dot_product >= 0: @@ -679,6 +684,7 @@ class MESH_OT_select_hidden_faces(BaseSubmeshOperator, ToleranceOperatorMixin): layout.prop(self, "position_tolerance") layout.prop(self, "normal_tolerance") layout.label(text="Selects overlapping faces with opposing normals", icon='INFO') + layout.label(text="Only considers faces with the same material", icon='INFO') class UVOperatorMixin: diff --git a/features.cginc b/features.cginc index 71ed9e2..589e4cf 100644 --- a/features.cginc +++ b/features.cginc @@ -334,5 +334,21 @@ #pragma shader_feature_local _UNLIT //endex +//ifex _Masked_Stencil1_Enabled==0 +#pragma shader_feature_local _MASKED_STENCIL1 +//endex + +//ifex _Masked_Stencil2_Enabled==0 +#pragma shader_feature_local _MASKED_STENCIL2 +//endex + +//ifex _Masked_Stencil3_Enabled==0 +#pragma shader_feature_local _MASKED_STENCIL3 +//endex + +//ifex _Masked_Stencil4_Enabled==0 +#pragma shader_feature_local _MASKED_STENCIL4 +//endex + #endif // __FEATURES_INC |
