参考 †
Translucency Lighting Modeを追加してみた †
- Editor\MaterialEditor\Private\MaterialEditorInstanceDetailCustomization.cpp
- FMaterialInstanceParameterDetails::CreateBasePropertyOverrideWidgets
#code(c,nomenu){
1
2
3
4
5
6
7
8
9
10
|
| #spanend
TAttribute<bool> IsOverrideOpacityClipMaskValueEnabled = TAttribute<bool>::Create(TAttribute<bool>::FGetter::CreateSP(this, &FMaterialInstanceParameterDetails::OverrideOpacityClipMaskValueEnabled));
TAttribute<bool> IsOverrideBlendModeEnabled = TAttribute<bool>::Create(TAttribute<bool>::FGetter::CreateSP(this, &FMaterialInstanceParameterDetails::OverrideBlendModeEnabled));
TAttribute<bool> IsOverrideShadingModelEnabled = TAttribute<bool>::Create(TAttribute<bool>::FGetter::CreateSP(this, &FMaterialInstanceParameterDetails::OverrideShadingModelEnabled));
TAttribute<bool> IsOverrideTranslucencyLightingModeEnabled = TAttribute<bool>::Create(TAttribute<bool>::FGetter::CreateSP(this, &FMaterialInstanceParameterDetails::OverrideTranslucencyLightingModeEnabled));
TAttribute<bool> IsOverrideTwoSidedEnabled = TAttribute<bool>::Create(TAttribute<bool>::FGetter::CreateSP(this, &FMaterialInstanceParameterDetails::OverrideTwoSidedEnabled));
TAttribute<bool> IsOverrideDitheredLODTransitionEnabled = TAttribute<bool>::Create(TAttribute<bool>::FGetter::CreateSP(this, &FMaterialInstanceParameterDetails::OverrideDitheredLODTransitionEnabled));
#spanadd
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
| #spanend
#spanadd
TSharedRef<IPropertyHandle> BasePropertyOverridePropery = DetailLayout.GetProperty("BasePropertyOverrides");
#spanend
#spanadd
TSharedPtr<IPropertyHandle> OpacityClipMaskValueProperty = BasePropertyOverridePropery->GetChildHandle("OpacityMaskClipValue");
#spanend
#spanadd
TSharedPtr<IPropertyHandle> BlendModeProperty = BasePropertyOverridePropery->GetChildHandle("BlendMode");
#spanend
#spanadd
TSharedPtr<IPropertyHandle> ShadingModelProperty = BasePropertyOverridePropery->GetChildHandle("ShadingModel");
#spanend
#spanadd
#spanend
#spanadd
TSharedPtr<IPropertyHandle> TranslucencyLightingModeProperty = BasePropertyOverridePropery->GetChildHandle("TranslucencyLightingMode");
#spanend
#spanadd
#spanend
#spanadd
TSharedPtr<IPropertyHandle> TwoSidedProperty = BasePropertyOverridePropery->GetChildHandle("TwoSided");
#spanend
#spanadd
TSharedPtr<IPropertyHandle> DitheredLODTransitionProperty = BasePropertyOverridePropery->GetChildHandle("DitheredLODTransition");
#spanend
#spanadd
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
| #spanend
#spanadd
IDetailPropertyRow& ShadingModelPropertyRow = BasePropertyOverrideGroup.AddPropertyRow(ShadingModelProperty.ToSharedRef());
#spanend
#spanadd
ShadingModelPropertyRow
#spanend
#spanadd
.DisplayName(ShadingModelProperty->GetPropertyDisplayName())
#spanend
#spanadd
.ToolTip(ShadingModelProperty->GetToolTipText())
#spanend
#spanadd
.EditCondition(IsOverrideShadingModelEnabled, FOnBooleanValueChanged::CreateSP(this, &FMaterialInstanceParameterDetails::OnOverrideShadingModelChanged));
#spanend
#spanadd
#spanend
#spanadd
#spanend
#spanadd
IDetailPropertyRow& TranslucencyLightingModePropertyRow = BasePropertyOverrideGroup.AddPropertyRow(TranslucencyLightingModeProperty.ToSharedRef());
#spanend
#spanadd
TranslucencyLightingModePropertyRow
#spanend
#spanadd
.DisplayName(TranslucencyLightingModeProperty->GetPropertyDisplayName())
#spanend
#spanadd
.ToolTip(TranslucencyLightingModeProperty->GetToolTipText())
#spanend
#spanadd
.EditCondition(IsOverrideTranslucencyLightingModeEnabled, FOnBooleanValueChanged::CreateSP(this, &FMaterialInstanceParameterDetails::OnOverrideTranslucencyLightingModeChanged));
#spanend
#spanadd
#spanend
#spanadd
|
- メソッド追加
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
-
|
|
|
|
!
| #spanend
#spanadd
#spanend
#spanadd
bool FMaterialInstanceParameterDetails::OverrideTranslucencyLightingModeEnabled() const
#spanend
#spanadd
{
#spanend
#spanadd
return MaterialEditorInstance->BasePropertyOverrides.bOverride_TranslucencyLightingMode;
#spanend
}
#spanadd
#spanend
#spanadd
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
-
|
|
|
|
|
|
|
|
|
|
|
!
| #spanend
#spanadd
#spanend
#spanadd
void FMaterialInstanceParameterDetails::OnOverrideTranslucencyLightingModeChanged(bool NewValue)
#spanend
#spanadd
{
#spanend
#spanadd
MaterialEditorInstance->BasePropertyOverrides.bOverride_TranslucencyLightingMode = NewValue;
#spanend
#spanadd
MaterialEditorInstance->PostEditChange();
#spanend
#spanadd
FEditorSupportDelegates::RedrawAllViewports.Broadcast();
#spanend
#spanadd
}
#spanend
#spanadd
#spanend
#spanadd
|
- Editor\MaterialEditor\Private\MaterialEditorInstanceDetailCustomization.h
- FMaterialInstanceParameterDetails
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
| #spanend
#spanadd
bool OverrideOpacityClipMaskValueEnabled() const;
#spanend
#spanadd
bool OverrideBlendModeEnabled() const;
#spanend
#spanadd
bool OverrideShadingModelEnabled() const;
#spanend
#spanadd
#spanend
#spanadd
bool OverrideTranslucencyLightingModeEnabled() const;
#spanend
#spanadd
#spanend
#spanadd
bool OverrideTwoSidedEnabled() const;
#spanend
#spanadd
bool OverrideDitheredLODTransitionEnabled() const;
#spanend
#spanadd
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
| #spanend
#spanadd
void OnOverrideOpacityClipMaskValueChanged(bool NewValue);
#spanend
#spanadd
void OnOverrideBlendModeChanged(bool NewValue);
#spanend
#spanadd
void OnOverrideShadingModelChanged(bool NewValue);
#spanend
#spanadd
#spanend
#spanadd
void OnOverrideTranslucencyLightingModeChanged(bool NewValue);
#spanend
#spanadd
#spanend
#spanadd
void OnOverrideTwoSidedChanged(bool NewValue);
#spanend
#spanadd
void OnOverrideDitheredLODTransitionChanged(bool NewValue);
#spanend
#spanadd
|
- Runtime\Engine\Classes\Materials\Material.h
- UMaterial
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
| #spanend
#spanadd
ENGINE_API virtual float GetOpacityMaskClipValue() const override;
#spanend
#spanadd
ENGINE_API virtual EBlendMode GetBlendMode() const override;
#spanend
#spanadd
ENGINE_API virtual EMaterialShadingModel GetShadingModel() const override;
#spanend
#spanadd
#spanend
#spanadd
ENGINE_API virtual enum ETranslucencyLightingMode GetTranslucencyLightingMode() const override;
#spanend
#spanadd
#spanend
#spanadd
ENGINE_API virtual bool IsTwoSided() const override;
#spanend
#spanadd
ENGINE_API virtual bool IsDitheredLODTransition() const override;
#spanend
#spanadd
|
- Runtime\Engine\Classes\Materials\MaterialInstance.h
- UMaterialInstance
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
| #spanend
#spanadd
float OpacityMaskClipValue;
#spanend
#spanadd
TEnumAsByte<EBlendMode> BlendMode;
#spanend
#spanadd
TEnumAsByte<EMaterialShadingModel> ShadingModel;
#spanend
#spanadd
#spanend
#spanadd
TEnumAsByte<enum ETranslucencyLightingMode> TranslucencyLightingMode;
#spanend
#spanadd
#spanend
#spanadd
uint32 TwoSided : 1;
#spanend
#spanadd
uint32 DitheredLODTransition : 1;
#spanend
#spanadd
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
| #spanend
#spanadd
ENGINE_API virtual float GetOpacityMaskClipValue() const override;
#spanend
#spanadd
ENGINE_API virtual EBlendMode GetBlendMode() const override;
#spanend
#spanadd
ENGINE_API virtual EMaterialShadingModel GetShadingModel() const override;
#spanend
#spanadd
#spanend
#spanadd
ENGINE_API virtual enum ETranslucencyLightingMode GetTranslucencyLightingMode() const override;
#spanend
#spanadd
#spanend
#spanadd
ENGINE_API virtual bool IsTwoSided() const override;
#spanend
#spanadd
ENGINE_API virtual bool IsDitheredLODTransition() const override;
#spanend
#spanadd
ENGINE_API virtual bool IsMasked() const override;;
#spanend
#spanadd
|
- Runtime\Engine\Classes\Materials\MaterialInstanceBasePropertyOverrides.h
- FMaterialInstanceBasePropertyOverrides
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
| #spanend
#spanadd
#spanend
#spanadd
UPROPERTY(EditAnywhere, Category = Material)
#spanend
#spanadd
bool bOverride_TwoSided;
#spanend
#spanadd
#spanend
#spanadd
#spanend
#spanadd
UPROPERTY(EditAnywhere, Category = Material)
#spanend
#spanadd
bool bOverride_TranslucencyLightingMode;
#spanend
#spanadd
#spanend
#spanadd
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
| #spanend
#spanadd
#spanend
#spanadd
UPROPERTY(EditAnywhere, Category = Material, meta = (editcondition = "bOverride_ShadingModel"))
#spanend
#spanadd
TEnumAsByte<EMaterialShadingModel> ShadingModel;
#spanend
#spanadd
#spanend
#spanadd
#spanend
#spanadd
#spanend
#spanadd
UPROPERTY(EditAnywhere, Category = Material, meta = (editcondition = "bOverride_TranslucencyLightingMode"))
#spanend
#spanadd
TEnumAsByte<enum ETranslucencyLightingMode> TranslucencyLightingMode;
#spanend
#spanadd
#spanend
#spanadd
|
- Runtime\Engine\Classes\Materials\MaterialInstanceDynamic.h
- UMaterialInstanceDynamic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
| #spanend
#spanadd
#spanend
#spanadd
virtual float GetOpacityMaskClipValue() const override;
#spanend
#spanadd
virtual EBlendMode GetBlendMode() const override;
#spanend
#spanadd
virtual EMaterialShadingModel GetShadingModel() const override;
#spanend
#spanadd
#spanend
#spanadd
virtual enum ETranslucencyLightingMode GetTranslucencyLightingMode() const override;
#spanend
#spanadd
#spanend
#spanadd
virtual bool IsTwoSided() const override;
#spanend
#spanadd
virtual bool IsDitheredLODTransition() const override;
#spanend
#spanadd
virtual bool IsMasked() const override;
#spanend
#spanadd
|
- Runtime\Engine\Classes\Materials\MaterialInterface.h
- UMaterialInterface
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
| #spanend
#spanadd
ENGINE_API virtual float GetOpacityMaskClipValue() const;
#spanend
#spanadd
ENGINE_API virtual EBlendMode GetBlendMode() const;
#spanend
#spanadd
ENGINE_API virtual EMaterialShadingModel GetShadingModel() const;
#spanend
#spanadd
#spanend
#spanadd
ENGINE_API virtual enum ETranslucencyLightingMode GetTranslucencyLightingMode() const;
#spanend
#spanadd
#spanend
#spanadd
ENGINE_API virtual bool IsTwoSided() const;
#spanend
#spanadd
ENGINE_API virtual bool IsDitheredLODTransition() const;
#spanend
#spanadd
ENGINE_API virtual bool IsTranslucencyWritingCustomDepth() const;
#spanend
#spanadd
ENGINE_API virtual bool IsMasked() const;
#spanend
#spanadd
ENGINE_API virtual bool IsDeferredDecal() const;
#spanend
#spanadd
|
- Runtime\Engine\Private\Materials\Material.cpp
- メソッド追加
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
-
|
|
|
|
|
!
| #spanend
#spanadd
#spanend
#spanadd
ETranslucencyLightingMode UMaterial::GetTranslucencyLightingMode() const
#spanend
#spanadd
{
#spanend
#spanadd
return TranslucencyLightingMode;
#spanend
#spanadd
}
#spanend
#spanadd
#spanend
#spanadd
|
- Runtime\Engine\Private\Materials\MaterialInstance.cpp
- メソッド追加
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
-
|
|
|
|
|
!
| #spanend
#spanadd
#spanend
#spanadd
ETranslucencyLightingMode UMaterialInstanceDynamic::GetTranslucencyLightingMode() const
#spanend
#spanadd
{
#spanend
#spanadd
return Parent ? Parent->GetTranslucencyLightingMode() : TLM_VolumetricNonDirectional;
#spanend
#spanadd
}
#spanend
#spanadd
#spanend
#spanadd
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
-
|
|
|
|
|
!
| #spanend
#spanadd
#spanend
#spanadd
ETranslucencyLightingMode UMaterialInstance::GetTranslucencyLightingMode() const
#spanend
#spanadd
{
#spanend
#spanadd
return TranslucencyLightingMode;
#spanend
#spanadd
}
#spanend
#spanadd
#spanend
#spanadd
|
- UMaterialInstance::UpdateOverridableBaseProperties
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
| #spanend
#spanadd
OpacityMaskClipValue = 0.0f;
#spanend
#spanadd
BlendMode = BLEND_Opaque;
#spanend
#spanadd
ShadingModel = MSM_DefaultLit;
#spanend
#spanadd
#spanend
#spanadd
TranslucencyLightingMode = TLM_VolumetricNonDirectional;
#spanend
#spanadd
#spanend
#spanadd
TwoSided = 0;
#spanend
#spanadd
DitheredLODTransition = 0;
#spanend
#spanadd
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
-
|
|
|
|
|
!
-
|
|
|
|
|
!
-
|
|
|
|
|
!
-
|
|
|
|
|
!
| #spanend
#spanadd
if (BasePropertyOverrides.bOverride_ShadingModel)
#spanend
#spanadd
{
#spanend
#spanadd
ShadingModel = BasePropertyOverrides.ShadingModel;
#spanend
#spanadd
}
#spanend
#spanadd
else
#spanend
#spanadd
{
#spanend
#spanadd
ShadingModel = Parent->GetShadingModel();
#spanend
#spanadd
}
#spanend
#spanadd
#spanend
#spanadd
#spanend
#spanadd
if (BasePropertyOverrides.bOverride_TranslucencyLightingMode)
#spanend
#spanadd
{
#spanend
#spanadd
TranslucencyLightingMode = BasePropertyOverrides.TranslucencyLightingMode;
#spanend
#spanadd
}
#spanend
#spanadd
else
#spanend
#spanadd
{
#spanend
#spanadd
TranslucencyLightingMode = Parent->GetTranslucencyLightingMode();
#spanend
#spanadd
}
#spanend
#spanadd
#spanend
#spanadd
|
- UMaterialInstance::Serialize
- 「VER_LIC_COM04_VER01」は自分の改造バージョンを記述する→エンジン改造-アセットのエンジンバージョン管理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
-
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
|
!
|
|
!
-
|
|
|
|
|
!
| #spanend
#spanadd
#spanend
#spanadd
if( Ar.UE4Ver() < VER_UE4_STATIC_SHADOW_DEPTH_MAPS )
#spanend
#spanadd
{
#spanend
#spanadd
#spanend
#spanadd
switch( BasePropertyOverrides.ShadingModel )
#spanend
#spanadd
{
#spanend
#spanadd
case MSM_Unlit: BasePropertyOverrides.ShadingModel = MSM_DefaultLit; break;
#spanend
#spanadd
case MSM_DefaultLit: BasePropertyOverrides.ShadingModel = MSM_Unlit; break;
#spanend
#spanadd
}
#spanend
#spanadd
}
#spanend
#spanadd
#spanend
#spanadd
if( Ar.LicenseeUE4Ver() >= VER_LIC_COM04_VER01) {
#spanend
#spanadd
Ar << BasePropertyOverrides.bOverride_TranslucencyLightingMode << BasePropertyOverrides.TranslucencyLightingMode;
#spanend
#spanadd
}
#spanend
#spanadd
#spanend
#spanadd
|
- UMaterialInstance::GetBasePropertyOverridesHash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
-
|
|
|
|
|
|
|
|
|
|
|
|
|
!
-
|
|
|
|
|
|
|
|
|
|
|
|
|
!
| #spanend
#spanadd
EMaterialShadingModel UsedShadingModel = GetShadingModel();
#spanend
if (UsedShadingModel != Mat->GetShadingModel())
{
#spanadd
const FString HashString = TEXT("bOverride_ShadingModel");
#spanend
#spanadd
Hash.UpdateWithString(*HashString, HashString.Len());
#spanend
#spanadd
Hash.Update((const uint8*)&UsedShadingModel, sizeof(UsedShadingModel));
#spanend
#spanadd
bHasOverrides = true;
#spanend
#spanadd
}
#spanend
#spanadd
#spanend
#spanadd
#spanend
#spanadd
ETranslucencyLightingMode UsedTranslucencyLightingMode = GetTranslucencyLightingMode();
#spanend
if (UsedTranslucencyLightingMode != Mat->GetTranslucencyLightingMode())
{
#spanadd
const FString HashString = TEXT("bOverride_TranslucencyLightingMode");
#spanend
#spanadd
Hash.UpdateWithString(*HashString, HashString.Len());
#spanend
#spanadd
Hash.Update((const uint8*)&UsedTranslucencyLightingMode, sizeof(UsedTranslucencyLightingMode));
#spanend
#spanadd
bHasOverrides = true;
#spanend
#spanadd
}
#spanend
#spanadd
#spanend
#spanadd
|
- UMaterialInstance::HasOverridenBaseProperties
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
| #spanend
#spanadd
if (Parent && Material && Material->bUsedAsSpecialEngineMaterial == false &&
#spanend
#spanadd
((FMath::Abs(GetOpacityMaskClipValue() - Parent->GetOpacityMaskClipValue()) > SMALL_NUMBER) ||
#spanend
#spanadd
(GetBlendMode() != Parent->GetBlendMode()) ||
#spanend
#spanadd
(GetShadingModel() != Parent->GetShadingModel()) ||
#spanend
#spanadd
#spanend
#spanadd
(GetTranslucencyLightingMode() != Parent->GetTranslucencyLightingMode()) ||
#spanend
#spanadd
#spanend
#spanadd
(IsTwoSided() != Parent->IsTwoSided()) ||
#spanend
#spanadd
(IsDitheredLODTransition() != Parent->IsDitheredLODTransition()))
#spanend
#spanadd
)
#spanend
#spanadd
|
- Runtime\Engine\Private\Materials\MaterialInterface.cpp
- メソッド追加
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
-
|
|
|
|
|
!
| #spanend
#spanadd
#spanend
#spanadd
ETranslucencyLightingMode UMaterialInterface::GetTranslucencyLightingMode() const
#spanend
#spanadd
{
#spanend
#spanadd
return TLM_VolumetricNonDirectional;
#spanend
#spanadd
}
#spanend
#spanadd
#spanend
#spanadd
|
- Runtime\Engine\Private\Materials\MaterialShared.cpp
- FMaterialResource::GetTranslucencyLightingMode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
-
|
|
|
|
|
|
|
|
|
|
|
!
| #spanend
#spanadd
ETranslucencyLightingMode FMaterialResource::GetTranslucencyLightingMode() const
#spanend
#spanadd
{
#spanend
#spanadd
#spanend
#spanadd
return (ETranslucencyLightingMode)(MaterialInstance ? MaterialInstance->GetTranslucencyLightingMode() : Material->GetTranslucencyLightingMode());
#spanend
#spanadd
#spanend
#spanadd
}
#spanend
#spanadd
|
- FMaterialInstanceBasePropertyOverrides::FMaterialInstanceBasePropertyOverrides
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
| #spanend
#spanadd
,bOverride_ShadingModel(false)
#spanend
#spanadd
,bOverride_DitheredLODTransition(false)
#spanend
#spanadd
,bOverride_TwoSided(false)
#spanend
#spanadd
#spanend
#spanadd
,bOverride_TranslucencyLightingMode(false)
#spanend
#spanadd
#spanend
#spanadd
,OpacityMaskClipValue(.333333f)
#spanend
#spanadd
|
- FMaterialInstanceBasePropertyOverrides::operator==
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
| #spanend
#spanadd
bOverride_ShadingModel == Other.bOverride_ShadingModel &&
#spanend
#spanadd
bOverride_TwoSided == Other.bOverride_TwoSided &&
#spanend
#spanadd
bOverride_DitheredLODTransition == Other.bOverride_DitheredLODTransition &&
#spanend
#spanadd
#spanend
#spanadd
bOverride_TranslucencyLightingMode == Other.bOverride_TranslucencyLightingMode &&
#spanend
#spanadd
#spanend
#spanadd
OpacityMaskClipValue == Other.OpacityMaskClipValue &&
#spanend
#spanadd
|
|