From 1f1ad991ab5ed15cb8cbca0505070848a97967c3 Mon Sep 17 00:00:00 2001 From: CA-Tatami Date: Tue, 24 Dec 2024 16:15:06 +0900 Subject: [PATCH 1/4] =?UTF-8?q?Distortion=E3=81=ABBase=20Map=20Texture?= =?UTF-8?q?=E3=82=92Noraml=20Map=E3=81=A8=E3=81=97=E3=81=A6=E5=88=A9?= =?UTF-8?q?=E7=94=A8=E3=81=99=E3=82=8B=E3=81=8B=E5=90=A6=E3=81=8B=E3=81=AE?= =?UTF-8?q?=E3=83=91=E3=83=A9=E3=83=A1=E3=83=BC=E3=82=BF=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Core/Scripts/MaterialPropertyNames.cs | 1 + .../Core/Scripts/ParticlesDistortionGUI.cs | 87 ++++++++++--------- .../Core/Shaders/ParticlesDistortion.hlsl | 1 + .../Core/Shaders/ParticlesDistortion.shader | 1 + .../Shaders/ParticlesDistortionForward.hlsl | 8 ++ 5 files changed, 55 insertions(+), 43 deletions(-) diff --git a/Assets/Nova/Editor/Core/Scripts/MaterialPropertyNames.cs b/Assets/Nova/Editor/Core/Scripts/MaterialPropertyNames.cs index 1de38028..9a053ac4 100644 --- a/Assets/Nova/Editor/Core/Scripts/MaterialPropertyNames.cs +++ b/Assets/Nova/Editor/Core/Scripts/MaterialPropertyNames.cs @@ -60,6 +60,7 @@ public static class MaterialPropertyNames public const string BaseMapRotationCoord = "_BaseMapRotationCoord"; public const string BaseMapRotationOffsets = "_BaseMapRotationOffsets"; public const string BaseMapMirrorSampling = "_BaseMapMirrorSampling"; + public const string BaseMapUnpackNormal = "_BaseMapUnpackNormal"; // Tint Color public const string TintAreaMode = "_TintAreaMode"; diff --git a/Assets/Nova/Editor/Core/Scripts/ParticlesDistortionGUI.cs b/Assets/Nova/Editor/Core/Scripts/ParticlesDistortionGUI.cs index 5061daa6..f513c2b8 100644 --- a/Assets/Nova/Editor/Core/Scripts/ParticlesDistortionGUI.cs +++ b/Assets/Nova/Editor/Core/Scripts/ParticlesDistortionGUI.cs @@ -1,5 +1,5 @@ // -------------------------------------------------------------- -// Copyright 2022 CyberAgent, Inc. +// Copyright 2024 CyberAgent, Inc. // -------------------------------------------------------------- using Nova.Editor.Foundation.Scripts; @@ -14,13 +14,6 @@ namespace Nova.Editor.Core.Scripts /// internal sealed class ParticlesDistortionGUI : ParticlesGUI { - #region Render Settings Material Properties - - private readonly Property _cullProp = new Property(PropertyNames.Cull); - private readonly Property _zTestProp = new Property(PropertyNames.ZTest); - - #endregion - protected override void SetupProperties(MaterialProperty[] properties) { // Render Settings @@ -37,6 +30,7 @@ protected override void SetupProperties(MaterialProperty[] properties) _baseMapRotationCoordProp.Setup(properties); _baseMapRotationOffsetsProp.Setup(properties); _baseMapMirrorSamplingProp.Setup(properties); + _baseMapUnpackNormalProp.Setup(properties); _distortionIntensityProp.Setup(properties); _distortionIntensityCoordProp.Setup(properties); @@ -154,6 +148,7 @@ private void DrawDistortionProperties(MaterialEditor editor, MaterialProperty[] } MaterialEditorUtility.DrawToggleProperty(editor, "Mirror Sampling", _baseMapMirrorSamplingProp.Value); + MaterialEditorUtility.DrawToggleProperty(editor, "Use As Normal Map", _baseMapUnpackNormalProp.Value); } private void DrawFlowMapProperties(MaterialEditor editor, MaterialProperty[] properties) @@ -210,6 +205,13 @@ private void DrawTransparencyProperties(MaterialEditor editor, MaterialProperty[ } } + #region Render Settings Material Properties + + private readonly Property _cullProp = new(PropertyNames.Cull); + private readonly Property _zTestProp = new(PropertyNames.ZTest); + + #endregion + #region Foldout Properties private BoolEditorPrefsProperty RenderSettingsFoldout { get; set; } @@ -222,64 +224,63 @@ private void DrawTransparencyProperties(MaterialEditor editor, MaterialProperty[ #region Distortion Material Properties - private readonly Property _baseMapProp = new Property(PropertyNames.BaseMap); - private readonly Property _baseMapOffsetXCoordProp = new Property(PropertyNames.BaseMapOffsetXCoord); - private readonly Property _baseMapOffsetYCoordProp = new Property(PropertyNames.BaseMapOffsetYCoord); - private readonly Property _baseMapChannelsXProp = new Property(PropertyNames.BaseMapChannelsX); - private readonly Property _baseMapChannelsYProp = new Property(PropertyNames.BaseMapChannelsY); - private readonly Property _baseMapRotationProp = new Property(PropertyNames.BaseMapRotation); - private readonly Property _baseMapRotationCoordProp = new Property(PropertyNames.BaseMapRotationCoord); - private readonly Property _baseMapRotationOffsetsProp = new Property(PropertyNames.BaseMapRotationOffsets); - private readonly Property _baseMapMirrorSamplingProp = new Property(PropertyNames.BaseMapMirrorSampling); - private readonly Property _distortionIntensityProp = new Property(PropertyNames.DistortionIntensity); - private readonly Property _distortionIntensityCoordProp = new Property(PropertyNames.DistortionIntensityCoord); + private readonly Property _baseMapProp = new(PropertyNames.BaseMap); + private readonly Property _baseMapOffsetXCoordProp = new(PropertyNames.BaseMapOffsetXCoord); + private readonly Property _baseMapOffsetYCoordProp = new(PropertyNames.BaseMapOffsetYCoord); + private readonly Property _baseMapChannelsXProp = new(PropertyNames.BaseMapChannelsX); + private readonly Property _baseMapChannelsYProp = new(PropertyNames.BaseMapChannelsY); + private readonly Property _baseMapRotationProp = new(PropertyNames.BaseMapRotation); + private readonly Property _baseMapRotationCoordProp = new(PropertyNames.BaseMapRotationCoord); + private readonly Property _baseMapRotationOffsetsProp = new(PropertyNames.BaseMapRotationOffsets); + private readonly Property _baseMapMirrorSamplingProp = new(PropertyNames.BaseMapMirrorSampling); + private readonly Property _baseMapUnpackNormalProp = new(PropertyNames.BaseMapUnpackNormal); + private readonly Property _distortionIntensityProp = new(PropertyNames.DistortionIntensity); + private readonly Property _distortionIntensityCoordProp = new(PropertyNames.DistortionIntensityCoord); #endregion #region Flow Map Material Properties - private readonly Property _flowMapProp = new Property(PropertyNames.FlowMap); - private readonly Property _flowMapOffsetXCoordProp = new Property(PropertyNames.FlowMapOffsetXCoord); - private readonly Property _flowMapOffsetYCoordProp = new Property(PropertyNames.FlowMapOffsetYCoord); - private readonly Property _flowMapChannelsXProp = new Property(PropertyNames.FlowMapChannelsX); - private readonly Property _flowMapChannelsYProp = new Property(PropertyNames.FlowMapChannelsY); - private readonly Property _flowIntensityProp = new Property(PropertyNames.FlowIntensity); - private readonly Property _flowIntensityCoordProp = new Property(PropertyNames.FlowIntensityCoord); - private readonly Property _flowMapTargetProp = new Property(PropertyNames.FlowMapTarget); + private readonly Property _flowMapProp = new(PropertyNames.FlowMap); + private readonly Property _flowMapOffsetXCoordProp = new(PropertyNames.FlowMapOffsetXCoord); + private readonly Property _flowMapOffsetYCoordProp = new(PropertyNames.FlowMapOffsetYCoord); + private readonly Property _flowMapChannelsXProp = new(PropertyNames.FlowMapChannelsX); + private readonly Property _flowMapChannelsYProp = new(PropertyNames.FlowMapChannelsY); + private readonly Property _flowIntensityProp = new(PropertyNames.FlowIntensity); + private readonly Property _flowIntensityCoordProp = new(PropertyNames.FlowIntensityCoord); + private readonly Property _flowMapTargetProp = new(PropertyNames.FlowMapTarget); #endregion #region Alpha Transition Material Properties - private readonly Property _alphaTransitionModeProp = new Property(PropertyNames.AlphaTransitionMode); - private readonly Property _alphaTransitionMapProp = new Property(PropertyNames.AlphaTransitionMap); + private readonly Property _alphaTransitionModeProp = new(PropertyNames.AlphaTransitionMode); + private readonly Property _alphaTransitionMapProp = new(PropertyNames.AlphaTransitionMap); private readonly Property _alphaTransitionMapOffsetXCoordProp = - new Property(PropertyNames.AlphaTransitionMapOffsetXCoord); + new(PropertyNames.AlphaTransitionMapOffsetXCoord); private readonly Property _alphaTransitionMapOffsetYCoordProp = - new Property(PropertyNames.AlphaTransitionMapOffsetYCoord); + new(PropertyNames.AlphaTransitionMapOffsetYCoord); - private readonly Property _alphaTransitionMapChannelsXProp = - new Property(PropertyNames.AlphaTransitionMapChannelsX); + private readonly Property _alphaTransitionMapChannelsXProp = new(PropertyNames.AlphaTransitionMapChannelsX); - private readonly Property _alphaTransitionProgressProp = new Property(PropertyNames.AlphaTransitionProgress); + private readonly Property _alphaTransitionProgressProp = new(PropertyNames.AlphaTransitionProgress); - private readonly Property _alphaTransitionProgressCoordProp = - new Property(PropertyNames.AlphaTransitionProgressCoord); + private readonly Property _alphaTransitionProgressCoordProp = new(PropertyNames.AlphaTransitionProgressCoord); - private readonly Property _dissolveSharpnessProp = new Property(PropertyNames.DissolveSharpness); + private readonly Property _dissolveSharpnessProp = new(PropertyNames.DissolveSharpness); #endregion #region Transparency Material Properties - private readonly Property _softParticlesEnabledProp = new Property(PropertyNames.SoftParticlesEnabled); - private readonly Property _softParticlesIntensityProp = new Property(PropertyNames.SoftParticlesIntensity); - private readonly Property _depthFadeEnabledProp = new Property(PropertyNames.DepthFadeEnabled); - private readonly Property _depthFadeNearProp = new Property(PropertyNames.DepthFadeNear); - private readonly Property _depthFadeFarProp = new Property(PropertyNames.DepthFadeFar); - private readonly Property _depthFadeWidthProp = new Property(PropertyNames.DepthFadeWidth); + private readonly Property _softParticlesEnabledProp = new(PropertyNames.SoftParticlesEnabled); + private readonly Property _softParticlesIntensityProp = new(PropertyNames.SoftParticlesIntensity); + private readonly Property _depthFadeEnabledProp = new(PropertyNames.DepthFadeEnabled); + private readonly Property _depthFadeNearProp = new(PropertyNames.DepthFadeNear); + private readonly Property _depthFadeFarProp = new(PropertyNames.DepthFadeFar); + private readonly Property _depthFadeWidthProp = new(PropertyNames.DepthFadeWidth); #endregion } diff --git a/Assets/Nova/Runtime/Core/Shaders/ParticlesDistortion.hlsl b/Assets/Nova/Runtime/Core/Shaders/ParticlesDistortion.hlsl index 7b50b13b..17f53fd3 100644 --- a/Assets/Nova/Runtime/Core/Shaders/ParticlesDistortion.hlsl +++ b/Assets/Nova/Runtime/Core/Shaders/ParticlesDistortion.hlsl @@ -42,6 +42,7 @@ CBUFFER_START(UnityPerMaterial) float4 _BaseMapRotationOffsets; float _DistortionIntensity; float _DistortionIntensityCoord; + half _BaseMapUnpackNormal; float4 _FlowMap_ST; DECLARE_CUSTOM_COORD(_FlowMapOffsetXCoord); diff --git a/Assets/Nova/Runtime/Core/Shaders/ParticlesDistortion.shader b/Assets/Nova/Runtime/Core/Shaders/ParticlesDistortion.shader index 362aa8b6..d25416f0 100644 --- a/Assets/Nova/Runtime/Core/Shaders/ParticlesDistortion.shader +++ b/Assets/Nova/Runtime/Core/Shaders/ParticlesDistortion.shader @@ -16,6 +16,7 @@ Shader "Nova/Particles/Distortion" _BaseMapRotationCoord("Base Map Rotation Coord", Float) = 0.0 _BaseMapRotationOffsets("Base Map Rotation Offsets", Vector) = (0.0, 0.0, 0.0, 0.0) _BaseMapMirrorSampling("Base Map Mirror Sampling", Float) = 0 + _BaseMapUnpackNormal("Base Map Unpack Normal", Float) = 0 [PowerSlider(3)]_DistortionIntensity("Distortion Intensity", Range(0, 1)) = 0.1 _DistortionIntensityCoord("Distortion Intensity Coord", Range(0, 1)) = 0.0 diff --git a/Assets/Nova/Runtime/Core/Shaders/ParticlesDistortionForward.hlsl b/Assets/Nova/Runtime/Core/Shaders/ParticlesDistortionForward.hlsl index 888b5734..f90611ac 100644 --- a/Assets/Nova/Runtime/Core/Shaders/ParticlesDistortionForward.hlsl +++ b/Assets/Nova/Runtime/Core/Shaders/ParticlesDistortionForward.hlsl @@ -70,6 +70,14 @@ half4 frag(Varyings input) : SV_Target baseMapSamplerState = sampler_BaseMap; #endif half4 distortionSrc = SAMPLE_TEXTURE2D(_BaseMap, baseMapSamplerState, input.baseUv.xy); + if (_BaseMapUnpackNormal) + { + // [???] => [-1, 1] + half3 unpackedNormal = UnpackNormal(distortionSrc); + // [-1, 1] => [0, 1] + distortionSrc = half4((unpackedNormal + 1) * 0.5f, 1); + } + half2 distortion; distortion.x = distortionSrc[(uint)_BaseMapChannelsX]; distortion.y = distortionSrc[(uint)_BaseMapChannelsY]; From b0563cc349348717dd1e7fef4c4ff2eb38ddae65 Mon Sep 17 00:00:00 2001 From: CA-Tatami Date: Tue, 24 Dec 2024 16:36:43 +0900 Subject: [PATCH 2/4] =?UTF-8?q?=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1?= =?UTF-8?q?=E3=83=B3=E3=83=88=E3=81=AE=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Documentation~/Images/distortion.png | Bin 0 -> 37574 bytes README.md | 7 ++++++- README_JA.md | 7 ++++++- 3 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 Documentation~/Images/distortion.png diff --git a/Documentation~/Images/distortion.png b/Documentation~/Images/distortion.png new file mode 100644 index 0000000000000000000000000000000000000000..120d0d3e73ce4af9d543248a47c3d9722a5de4b8 GIT binary patch literal 37574 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%0Dade+W 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 76c41a64..d465918c 100644 --- a/README.md +++ b/README.md @@ -1124,7 +1124,7 @@ You can set ZTest value. Distortion controls how it is distorted.

- Distortion
+ Distortion
Distortion

@@ -1165,6 +1165,11 @@ Shifts the center coordinate of rotation. If true, mirrors the texture to create a repeating pattern.

+Use As Normal Map +

+If true, the Texture Type is treated as a Normal Map and will be unpacked for sampling. +

+ diff --git a/README_JA.md b/README_JA.md index 2f52aac7..57ba4a0e 100644 --- a/README_JA.md +++ b/README_JA.md @@ -1133,7 +1133,7 @@ ZTestを設定できます。 Distortionでは歪ませ方を設定できます。

- Distortion
+ Distortion
Distortion

@@ -1174,6 +1174,11 @@ Distortionでは歪ませ方を設定できます。 チェックをつけるとテクスチャがミラーサンプリングされます。

+Use As Normal Map +

+チェックをつけるとTexture TypeをNormal Mapとみなし、Unpackしてサンプリングされます。 +

+ From cf283352b15025a653cd3e66b34b1591649588f8 Mon Sep 17 00:00:00 2001 From: CA-Tatami Date: Tue, 24 Dec 2024 17:54:00 +0900 Subject: [PATCH 3/4] =?UTF-8?q?Flow=20Map=E3=81=AE=E6=96=87=E8=A8=80?= =?UTF-8?q?=E3=81=AE=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Core/Scripts/ParticlesDistortionGUI.cs | 3 ++- Documentation~/Images/flow_mapping.png | Bin 0 -> 29560 bytes README.md | 4 ++-- README_JA.md | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 Documentation~/Images/flow_mapping.png diff --git a/Assets/Nova/Editor/Core/Scripts/ParticlesDistortionGUI.cs b/Assets/Nova/Editor/Core/Scripts/ParticlesDistortionGUI.cs index f513c2b8..5a023224 100644 --- a/Assets/Nova/Editor/Core/Scripts/ParticlesDistortionGUI.cs +++ b/Assets/Nova/Editor/Core/Scripts/ParticlesDistortionGUI.cs @@ -98,7 +98,8 @@ protected override void DrawGUI(MaterialEditor editor, MaterialProperty[] proper DistortionFoldout.Value = foldoutScope.Foldout; } - using (var foldoutScope = new MaterialEditorUtility.FoldoutHeaderScope(FlowMapFoldout.Value, "Flow Map")) + using (var foldoutScope = + new MaterialEditorUtility.FoldoutHeaderScope(FlowMapFoldout.Value, "Flow Mapping")) { if (foldoutScope.Foldout) DrawFlowMapProperties(editor, properties); diff --git a/Documentation~/Images/flow_mapping.png b/Documentation~/Images/flow_mapping.png new file mode 100644 index 0000000000000000000000000000000000000000..bd20902597478bac3d887bfe99bc5ec9456b2e5f GIT binary patch literal 29560 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 N)%#jXr3zM|{|jMPLJR-^ literal 0 HcmV?d00001 diff --git a/README.md b/README.md index d465918c..0b02208b 100644 --- a/README.md +++ b/README.md @@ -1173,11 +1173,11 @@ If true, the Texture Type is treated as a Normal Map and will be unpacked for sa -#### Flow Map +#### Flow Mapping You can use the Flow Map to distort the Distortion Map to the specified directions.

- Flow Map
+ Flow Map
Flow Map

diff --git a/README_JA.md b/README_JA.md index 57ba4a0e..cc59ba8e 100644 --- a/README_JA.md +++ b/README_JA.md @@ -1182,7 +1182,7 @@ Distortionでは歪ませ方を設定できます。 -#### Flow Map +#### Flow Mapping Flow Mapを使うとディストーションマップを指定した方向に歪ませることができます。

From 7aa37fa322e161b83e0204828e282d8ebfc87cfa Mon Sep 17 00:00:00 2001 From: CA-Tatami Date: Tue, 24 Dec 2024 08:54:15 +0000 Subject: [PATCH 4/4] chore(docs): update TOC --- README.md | 2 +- README_JA.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0b02208b..98c0b93a 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ For more information, please refer to the following documents, [Samples](Assets/ - [Distortion Shader](#distortion-shader) - [Render Settings](#render-settings-2) - [Distortion](#distortion) - - [Flow Map](#flow-map-1) + - [Flow Mapping](#flow-mapping) - [Alpha Transition](#alpha-transition-1) - [Transparency](#transparency-1) - [Uber Unlit/Lit shaders( for uGUI )](#uber-unlitlit-shaders-for-ugui-) diff --git a/README_JA.md b/README_JA.md index cc59ba8e..1a302b1b 100644 --- a/README_JA.md +++ b/README_JA.md @@ -65,7 +65,7 @@ - [Distortionシェーダ](#distortion%E3%82%B7%E3%82%A7%E3%83%BC%E3%83%80) - [Render Settings](#render-settings-2) - [Distortion](#distortion) - - [Flow Map](#flow-map-1) + - [Flow Mapping](#flow-mapping) - [Alpha Transition](#alpha-transition-1) - [Transparency](#transparency-1) - [Uber Unlit/Litシェーダ( for uGUI )](#uber-unlitlit%E3%82%B7%E3%82%A7%E3%83%BC%E3%83%80-for-ugui-)