Skip to content

Commit

Permalink
基本的な処理の実装
Browse files Browse the repository at this point in the history
(cherry picked from commit 5d2bd00)
  • Loading branch information
CA-Tatami committed Aug 5, 2024
1 parent d4e2ebc commit 456f490
Show file tree
Hide file tree
Showing 15 changed files with 233 additions and 10 deletions.
20 changes: 19 additions & 1 deletion Assets/Demo/Demo00/Materials/mat_demo_fade_edgeemission.mat
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ Material:
m_Name: mat_demo_fade_edgeemission
m_Shader: {fileID: 4800000, guid: 1bc5c6a70411243779ce486a98012125, type: 3}
m_ValidKeywords:
- _ALPHA_TRANSITION_BLEND_SECOND_TEX_ADDITIVE
- _ALPHA_TRANSITION_MAP_MODE_2D
- _BASE_MAP_MODE_2D
- _EMISSION_AREA_ALPHA
Expand Down Expand Up @@ -43,6 +44,18 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _AlphaTransitionMapSecondTexture:
m_Texture: {fileID: 2800000, guid: e5c1bb044a69c48868c1f381762bbcea, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _AlphaTransitionMapSecondTexture2DArray:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _AlphaTransitionMapSecondTexture3D:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseMap:
m_Texture: {fileID: 2800000, guid: cac707016af934ee5a416cab14da7246, type: 3}
m_Scale: {x: 1, y: 1}
Expand Down Expand Up @@ -72,7 +85,7 @@ Material:
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionColorRamp:
m_Texture: {fileID: 2800000, guid: ad948d6c337974eff945b4e9670f88f3, type: 3}
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
Expand Down Expand Up @@ -156,10 +169,14 @@ Material:
- _AlphaTransitionMapOffsetYCoord: 0
- _AlphaTransitionMapProgress: 0
- _AlphaTransitionMapProgressCoord: 0
- _AlphaTransitionMapSecondTextureChannelsX: 1
- _AlphaTransitionMapSecondTextureOffsetXCoord: 0
- _AlphaTransitionMapSecondTextureOffsetYCoord: 0
- _AlphaTransitionMapSliceCount: 4
- _AlphaTransitionMode: 1
- _AlphaTransitionProgress: 0
- _AlphaTransitionProgressCoord: 1
- _AlphaTransitionSecondTextureBlendMode: 1
- _BaseMapMirrorSampling: 0
- _BaseMapMode: 0
- _BaseMapOffsetXCoord: 0
Expand Down Expand Up @@ -259,6 +276,7 @@ Material:
- _ShadowCasterAlphaEffectedByTransparencyLuminance: 0
- _ShadowCasterAlphaEffectedByTransparencySoftParticles: 0
- _ShadowCasterAlphaTestEnabled: 1
- _ShadowCasterApplyVertexDeformation: 0
- _ShadowCasterEnabled: 1
- _ShadowCasterVertexDeformationEnabled: 0
- _Smoothness: 0.5
Expand Down
27 changes: 26 additions & 1 deletion Assets/Demo/Demo00/Materials/mat_demo_flowmap.mat
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@ Material:
m_CustomRenderQueue: 3000
stringTagMap:
RenderType: Transparent
disabledShaderPasses: []
disabledShaderPasses:
- SHADOWCASTER
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
Expand All @@ -53,6 +54,18 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _AlphaTransitionMapSecondTexture:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _AlphaTransitionMapSecondTexture2DArray:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _AlphaTransitionMapSecondTexture3D:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseMap:
m_Texture: {fileID: 2800000, guid: f4fa818b17f5d4014a924801d07cd980, type: 3}
m_Scale: {x: 1, y: 1}
Expand Down Expand Up @@ -166,10 +179,14 @@ Material:
- _AlphaTransitionMapOffsetYCoord: 0
- _AlphaTransitionMapProgress: 0
- _AlphaTransitionMapProgressCoord: 0
- _AlphaTransitionMapSecondTextureChannelsX: 0
- _AlphaTransitionMapSecondTextureOffsetXCoord: 0
- _AlphaTransitionMapSecondTextureOffsetYCoord: 0
- _AlphaTransitionMapSliceCount: 4
- _AlphaTransitionMode: 0
- _AlphaTransitionProgress: 0
- _AlphaTransitionProgressCoord: 0
- _AlphaTransitionSecondTextureBlendMode: 0
- _BaseMapMirrorSampling: 0
- _BaseMapMode: 0
- _BaseMapOffsetXCoord: 0
Expand Down Expand Up @@ -247,6 +264,14 @@ Material:
- _RimTransparencyProgressCoord: 0
- _RimTransparencySharpness: 0.5
- _RimTransparencySharpnessCoord: 0
- _ShadowCasterAlphaAffectedByAlphaTransitionMap: 0
- _ShadowCasterAlphaAffectedByFlowMap: 0
- _ShadowCasterAlphaAffectedByTintColor: 0
- _ShadowCasterAlphaAffectedByTransparencyLuminance: 0
- _ShadowCasterAlphaCutoff: 0.5
- _ShadowCasterAlphaTestEnabled: 0
- _ShadowCasterApplyVertexDeformation: 0
- _ShadowCasterEnabled: 0
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SoftParticlesEnabled: 0
Expand Down
13 changes: 13 additions & 0 deletions Assets/Nova/Editor/Core/Scripts/AlphaTransitionBlendMode.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// --------------------------------------------------------------
// Copyright 2021 CyberAgent, Inc.
// --------------------------------------------------------------

namespace Nova.Editor.Core.Scripts
{
public enum AlphaTransitionBlendMode
{
None,
Additive,
Multiply
}
}
11 changes: 11 additions & 0 deletions Assets/Nova/Editor/Core/Scripts/AlphaTransitionBlendMode.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions Assets/Nova/Editor/Core/Scripts/MaterialPropertyNames.cs
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,13 @@ public static class MaterialPropertyNames
public const string AlphaTransitionMapOffsetYCoord = "_AlphaTransitionMapOffsetYCoord";
public const string AlphaTransitionMapChannelsX = "_AlphaTransitionMapChannelsX";
public const string AlphaTransitionMapSliceCount = "_AlphaTransitionMapSliceCount";
public const string AlphaTransitionSecondTextureBlendMode = "_AlphaTransitionSecondTextureBlendMode";
public const string AlphaTransitionMapSecondTexture = "_AlphaTransitionMapSecondTexture";
public const string AlphaTransitionMapSecondTexture2DArray = "_AlphaTransitionMapSecondTexture2DArray";
public const string AlphaTransitionMapSecondTexture3D = "_AlphaTransitionMapSecondTexture3D";
public const string AlphaTransitionMapSecondTextureOffsetXCoord = "_AlphaTransitionMapSecondTextureOffsetXCoord";
public const string AlphaTransitionMapSecondTextureOffsetYCoord = "_AlphaTransitionMapSecondTextureOffsetYCoord";
public const string AlphaTransitionMapSecondTextureChannelsX = "_AlphaTransitionMapSecondTextureChannelsX";
public const string AlphaTransitionProgress = "_AlphaTransitionProgress";
public const string AlphaTransitionProgressCoord = "_AlphaTransitionProgressCoord";
public const string DissolveSharpness = "_DissolveSharpness";
Expand Down
17 changes: 17 additions & 0 deletions Assets/Nova/Editor/Core/Scripts/ParticlesUberCommonGUI.cs
Original file line number Diff line number Diff line change
Expand Up @@ -379,16 +379,20 @@ private void InternalDrawAlphaTransitionProperties()
props.AlphaTransitionMapModeProp.Value);
var alphaTransitionMapMode = (AlphaTransitionMapMode)props.AlphaTransitionMapModeProp.Value.floatValue;
MaterialProperty alphaTransitionMapProp;
MaterialProperty alphaTransitionMapSecondTextureProp;
switch (alphaTransitionMapMode)
{
case AlphaTransitionMapMode.SingleTexture:
alphaTransitionMapProp = props.AlphaTransitionMapProp.Value;
alphaTransitionMapSecondTextureProp = props.AlphaTransitionMapSecondTextureProp.Value;
break;
case AlphaTransitionMapMode.FlipBook:
alphaTransitionMapProp = props.AlphaTransitionMap2DArrayProp.Value;
alphaTransitionMapSecondTextureProp = props.AlphaTransitionMapSecondTexture2DArrayProp.Value;
break;
case AlphaTransitionMapMode.FlipBookBlending:
alphaTransitionMapProp = props.AlphaTransitionMap3DProp.Value;
alphaTransitionMapSecondTextureProp = props.AlphaTransitionMapSecondTexture3DProp.Value;
break;
default:
throw new ArgumentOutOfRangeException();
Expand Down Expand Up @@ -417,6 +421,19 @@ private void InternalDrawAlphaTransitionProperties()
}
}
}

// 2nd Texture
{
MaterialEditorUtility.DrawEnumProperty<AlphaTransitionBlendMode>(_editor, "2nd Texture Blend Mode",
props.AlphaTransitionSecondTextureBlendModeProp.Value);
var alphaTransitionSecondTextureBlendMode = (AlphaTransitionBlendMode)props.AlphaTransitionSecondTextureBlendModeProp.Value.floatValue;
if (alphaTransitionSecondTextureBlendMode != AlphaTransitionBlendMode.None)
{
MaterialEditorUtility.DrawTexture(_editor, alphaTransitionMapSecondTextureProp,
props.AlphaTransitionMapSecondTextureOffsetXCoordProp.Value, props.AlphaTransitionMapSecondTextureOffsetYCoordProp.Value,
props.AlphaTransitionMapSecondTextureChannelsXProp.Value, null);
}
}

if (alphaTransitionMapMode == AlphaTransitionMapMode.FlipBook
|| alphaTransitionMapMode == AlphaTransitionMapMode.FlipBookBlending)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,13 @@ public void Setup(MaterialProperty[] properties)
AlphaTransitionMapOffsetYCoordProp.Setup(properties);
AlphaTransitionMapChannelsXProp.Setup(properties);
AlphaTransitionMapSliceCountProp.Setup(properties);
AlphaTransitionSecondTextureBlendModeProp.Setup(properties);
AlphaTransitionMapSecondTextureProp.Setup(properties);
AlphaTransitionMapSecondTexture2DArrayProp.Setup(properties);
AlphaTransitionMapSecondTexture3DProp.Setup(properties);
AlphaTransitionMapSecondTextureOffsetXCoordProp.Setup(properties);
AlphaTransitionMapSecondTextureOffsetYCoordProp.Setup(properties);
AlphaTransitionMapSecondTextureChannelsXProp.Setup(properties);
AlphaTransitionProgressProp.Setup(properties);
AlphaTransitionProgressCoordProp.Setup(properties);
DissolveSharpnessProp.Setup(properties);
Expand Down Expand Up @@ -373,6 +380,25 @@ public void Setup(MaterialProperty[] properties)

public ParticlesGUI.Property AlphaTransitionMapSliceCountProp { get; } =
new(PropertyNames.AlphaTransitionMapSliceCount);

public ParticlesGUI.Property AlphaTransitionSecondTextureBlendModeProp { get; } =
new(PropertyNames.AlphaTransitionSecondTextureBlendMode);

public ParticlesGUI.Property AlphaTransitionMapSecondTextureProp { get; } = new(PropertyNames.AlphaTransitionMapSecondTexture);

public ParticlesGUI.Property AlphaTransitionMapSecondTexture2DArrayProp { get; } =
new(PropertyNames.AlphaTransitionMapSecondTexture2DArray);

public ParticlesGUI.Property AlphaTransitionMapSecondTexture3DProp { get; } = new(PropertyNames.AlphaTransitionMapSecondTexture3D);

public ParticlesGUI.Property AlphaTransitionMapSecondTextureOffsetXCoordProp { get; } =
new(PropertyNames.AlphaTransitionMapSecondTextureOffsetXCoord);

public ParticlesGUI.Property AlphaTransitionMapSecondTextureOffsetYCoordProp { get; } =
new(PropertyNames.AlphaTransitionMapSecondTextureOffsetYCoord);

public ParticlesGUI.Property AlphaTransitionMapSecondTextureChannelsXProp { get; } =
new(PropertyNames.AlphaTransitionMapSecondTextureChannelsX);

public ParticlesGUI.Property AlphaTransitionProgressProp { get; } = new(PropertyNames.AlphaTransitionProgress);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,15 @@ public static class ParticlesUberUnlitMaterialPostProcessor

private static readonly int AlphaTransitionMap3DId =
Shader.PropertyToID(MaterialPropertyNames.AlphaTransitionMap3D);

private static readonly int AlphaTransitionMapSecondTextureId =
Shader.PropertyToID(MaterialPropertyNames.AlphaTransitionMapSecondTexture);

private static readonly int AlphaTransitionMapSecondTexture2DArrayId =
Shader.PropertyToID(MaterialPropertyNames.AlphaTransitionMapSecondTexture2DArray);

private static readonly int AlphaTransitionMapSecondTexture3DId =
Shader.PropertyToID(MaterialPropertyNames.AlphaTransitionMapSecondTexture3D);

private static readonly int AlphaTransitionProgressCoordId =
Shader.PropertyToID(MaterialPropertyNames.AlphaTransitionProgressCoord);
Expand All @@ -63,6 +72,9 @@ public static class ParticlesUberUnlitMaterialPostProcessor
private static readonly int AlphaTransitionMapModeId =
Shader.PropertyToID(MaterialPropertyNames.AlphaTransitionMapMode);

private static readonly int AlphaTransitionSecondTextureBlendMode =
Shader.PropertyToID(MaterialPropertyNames.AlphaTransitionSecondTextureBlendMode);

private static readonly int EmissionAreaTypeId = Shader.PropertyToID(MaterialPropertyNames.EmissionAreaType);
private static readonly int EmissionColorTypeId = Shader.PropertyToID(MaterialPropertyNames.EmissionColorType);
private static readonly int EmissionMapModeId = Shader.PropertyToID(MaterialPropertyNames.EmissionMapMode);
Expand Down Expand Up @@ -276,14 +288,26 @@ private static void SetupAlphaTransitionMaterialKeywords(Material material)
MaterialEditorUtility.SetKeyword(material, ShaderKeywords.FadeTransitionEnabled, fadeTransitionEnabled);
MaterialEditorUtility.SetKeyword(material, ShaderKeywords.DissolveTransitionEnabled,
dissolveTransitionEnabled);

var alphaTransitionMapMode = (AlphaTransitionMapMode)material.GetFloat(AlphaTransitionMapModeId);
foreach (AlphaTransitionMapMode value in Enum.GetValues(typeof(AlphaTransitionMapMode)))
{
var isOn = alphaTransitionMapMode == value;
var keyword = value.GetShaderKeyword();
MaterialEditorUtility.SetKeyword(material, keyword, isOn);
}

// 2nd Texture
{
bool secondTexEnabled = material.GetTexture(AlphaTransitionMapSecondTextureId) != null
|| material.GetTexture(AlphaTransitionMapSecondTexture2DArrayId) != null
|| material.GetTexture(AlphaTransitionMapSecondTexture3DId) != null;
var blendMode = (AlphaTransitionBlendMode)material.GetFloat(AlphaTransitionSecondTextureBlendMode);
MaterialEditorUtility.SetKeyword(material, ShaderKeywords.AlphaTransitionBlendSecondTexAdditive,
secondTexEnabled && blendMode == AlphaTransitionBlendMode.Additive);
MaterialEditorUtility.SetKeyword(material, ShaderKeywords.AlphaTransitionBlendSecondTexMultiply,
secondTexEnabled && blendMode == AlphaTransitionBlendMode.Multiply);
}
}

private static void SetupEmissionMaterialKeywords(Material material)
Expand Down
2 changes: 2 additions & 0 deletions Assets/Nova/Editor/Core/Scripts/ShaderKeywords.cs
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ public static class ShaderKeywords
public const string AlphaTransitionMapMode2D = "_ALPHA_TRANSITION_MAP_MODE_2D";
public const string AlphaTransitionMapMode2DArray = "_ALPHA_TRANSITION_MAP_MODE_2D_ARRAY";
public const string AlphaTransitionMapMode3D = "_ALPHA_TRANSITION_MAP_MODE_3D";
public const string AlphaTransitionBlendSecondTexAdditive = "_ALPHA_TRANSITION_BLEND_SECOND_TEX_ADDITIVE";
public const string AlphaTransitionBlendSecondTexMultiply = "_ALPHA_TRANSITION_BLEND_SECOND_TEX_MULTIPLY";

// Emission
public const string EmissionAreaAll = "_EMISSION_AREA_ALL";
Expand Down
Loading

0 comments on commit 456f490

Please sign in to comment.