MaterialInstance_override01.jpg

参考

Translucency Lighting Modeを追加してみた

  1. 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));
      // start -------
          TAttribute<bool> IsOverrideTranslucencyLightingModeEnabled = TAttribute<bool>::Create(TAttribute<bool>::FGetter::CreateSP(this, &FMaterialInstanceParameterDetails::OverrideTranslucencyLightingModeEnabled));
      // end ---------
          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
      // start -------
      #spanend
      #spanadd
          TSharedPtr<IPropertyHandle> TranslucencyLightingModeProperty = BasePropertyOverridePropery->GetChildHandle("TranslucencyLightingMode");
      #spanend
      #spanadd
      // end ---------
      #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
      // start -------
      #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
      // end ---------
      #spanend
      #spanadd
    • メソッド追加
        1
        2
        3
        4
        5
        6
        7
        8
        9
       10
       11
       12
       13
       14
       15
       16
       17
       18
      
       
       
       
       
       
       
       
       
      -
      |
      |
      |
      |
      !
       
       
       
       
      
      #spanend
      #spanadd
      // start -------
      #spanend
      #spanadd
      bool FMaterialInstanceParameterDetails::OverrideTranslucencyLightingModeEnabled() const
      #spanend
      #spanadd
      {
      #spanend
      #spanadd
          return MaterialEditorInstance->BasePropertyOverrides.bOverride_TranslucencyLightingMode;
      #spanend
      }
      #spanadd
      // end ---------
      #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
      // start -------
      #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
      // end ---------
      #spanend
      #spanadd
  2. 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
      // start -------
      #spanend
      #spanadd
          bool OverrideTranslucencyLightingModeEnabled() const;
      #spanend
      #spanadd
      // end ---------
      #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
      // start -------
      #spanend
      #spanadd
          void OnOverrideTranslucencyLightingModeChanged(bool NewValue);
      #spanend
      #spanadd
      // end ---------
      #spanend
      #spanadd
          void OnOverrideTwoSidedChanged(bool NewValue);
      #spanend
      #spanadd
          void OnOverrideDitheredLODTransitionChanged(bool NewValue);
      #spanend
      #spanadd
  3. 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
      // start -------
      #spanend
      #spanadd
          ENGINE_API virtual enum ETranslucencyLightingMode GetTranslucencyLightingMode() const override;
      #spanend
      #spanadd
      // end ---------
      #spanend
      #spanadd
          ENGINE_API virtual bool IsTwoSided() const override;
      #spanend
      #spanadd
          ENGINE_API virtual bool IsDitheredLODTransition() const override;
      #spanend
      #spanadd
  4. 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
      // start -------
      #spanend
      #spanadd
          TEnumAsByte<enum ETranslucencyLightingMode> TranslucencyLightingMode;
      #spanend
      #spanadd
      // end ---------
      #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
      // start -------
      #spanend
      #spanadd
          ENGINE_API virtual enum ETranslucencyLightingMode GetTranslucencyLightingMode() const override;
      #spanend
      #spanadd
      // end ---------
      #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
  5. 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
          /** Enables override of the two sided property. */
      #spanend
      #spanadd
          UPROPERTY(EditAnywhere, Category = Material)
      #spanend
      #spanadd
          bool bOverride_TwoSided;
      #spanend
       
      #spanadd
      // start -------
      #spanend
      #spanadd
          /** Enables override of the two sided property. */
      #spanend
      #spanadd
          UPROPERTY(EditAnywhere, Category = Material)
      #spanend
      #spanadd
          bool bOverride_TranslucencyLightingMode;
      #spanend
      #spanadd
      // end ---------
      #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
          /** The shading model */
      #spanend
      #spanadd
          UPROPERTY(EditAnywhere, Category = Material, meta = (editcondition = "bOverride_ShadingModel"))
      #spanend
      #spanadd
          TEnumAsByte<EMaterialShadingModel> ShadingModel;
      #spanend
      #spanadd
       
      #spanend
      #spanadd
      // start -------
      #spanend
      #spanadd
          /** The shading model */
      #spanend
      #spanadd
          UPROPERTY(EditAnywhere, Category = Material, meta = (editcondition = "bOverride_TranslucencyLightingMode"))
      #spanend
      #spanadd
          TEnumAsByte<enum ETranslucencyLightingMode> TranslucencyLightingMode;
      #spanend
      #spanadd
      // end ---------
      #spanend
      #spanadd
  6. 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
          //Material base property overrides. MIDs cannot override these so they just grab from their parent.
      #spanend
      #spanadd
          virtual float GetOpacityMaskClipValue() const override;
      #spanend
      #spanadd
          virtual EBlendMode GetBlendMode() const override;
      #spanend
      #spanadd
          virtual EMaterialShadingModel GetShadingModel() const override;
      #spanend
      #spanadd
      // start -------
      #spanend
      #spanadd
          virtual enum ETranslucencyLightingMode GetTranslucencyLightingMode() const override;
      #spanend
      #spanadd
      // end ---------
      #spanend
      #spanadd
          virtual bool IsTwoSided() const override;
      #spanend
      #spanadd
          virtual bool IsDitheredLODTransition() const override;
      #spanend
      #spanadd
          virtual bool IsMasked() const override;
      #spanend
      #spanadd
  7. 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
      // start -------
      #spanend
      #spanadd
          ENGINE_API virtual enum ETranslucencyLightingMode GetTranslucencyLightingMode() const;
      #spanend
      #spanadd
      // end ---------
      #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
  8. 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
      // start -------
      #spanend
      #spanadd
      ETranslucencyLightingMode UMaterial::GetTranslucencyLightingMode() const
      #spanend
      #spanadd
      {
      #spanend
      #spanadd
          return TranslucencyLightingMode;
      #spanend
      #spanadd
      }
      #spanend
      #spanadd
      // end ---------
      #spanend
      #spanadd
  9. 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
      // start -------
      #spanend
      #spanadd
      ETranslucencyLightingMode UMaterialInstanceDynamic::GetTranslucencyLightingMode() const
      #spanend
      #spanadd
      {
      #spanend
      #spanadd
          return Parent ? Parent->GetTranslucencyLightingMode() : TLM_VolumetricNonDirectional;
      #spanend
      #spanadd
      }
      #spanend
      #spanadd
      // end ---------
      #spanend
      #spanadd
        1
        2
        3
        4
        5
        6
        7
        8
        9
       10
       11
       12
       13
       14
       15
       16
       17
       18
       19
       20
      
       
       
       
       
       
       
       
       
      -
      |
      |
      |
      |
      |
      !
       
       
       
       
       
      
      #spanend
      #spanadd
      // start -------
      #spanend
      #spanadd
      ETranslucencyLightingMode UMaterialInstance::GetTranslucencyLightingMode() const
      #spanend
      #spanadd
      {
      #spanend
      #spanadd
          return TranslucencyLightingMode;
      #spanend
      #spanadd
      }
      #spanend
      #spanadd
      // end ---------
      #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
      // start -------
      #spanend
      #spanadd
              TranslucencyLightingMode = TLM_VolumetricNonDirectional;
      #spanend
      #spanadd
      // end ---------
      #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
      // start -------
      #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
      // end ---------
      #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
                            // unrelated but closest change to bug
        #spanend
        #spanadd
                            if( Ar.UE4Ver() < VER_UE4_STATIC_SHADOW_DEPTH_MAPS )
        #spanend
        #spanadd
                            {
        #spanend
        #spanadd
                                // switched enum order
        #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
        // start -------
        #spanend
        #spanadd
                            if( Ar.LicenseeUE4Ver() >= VER_LIC_COM04_VER01) {
        #spanend
        #spanadd
                                Ar << BasePropertyOverrides.bOverride_TranslucencyLightingMode << BasePropertyOverrides.TranslucencyLightingMode;
        #spanend
        #spanadd
                            }
        #spanend
        #spanadd
        // end ---------
        #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
      // start -------
      #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
      // end ---------
      #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
      // start -------
      #spanend
      #spanadd
              (GetTranslucencyLightingMode() != Parent->GetTranslucencyLightingMode()) ||
      #spanend
      #spanadd
      // end ---------
      #spanend
      #spanadd
              (IsTwoSided() != Parent->IsTwoSided()) ||
      #spanend
      #spanadd
              (IsDitheredLODTransition() != Parent->IsDitheredLODTransition()))
      #spanend
      #spanadd
              )
      #spanend
      #spanadd
  10. 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
      // start -------
      #spanend
      #spanadd
      ETranslucencyLightingMode UMaterialInterface::GetTranslucencyLightingMode() const
      #spanend
      #spanadd
      {
      #spanend
      #spanadd
          return TLM_VolumetricNonDirectional;
      #spanend
      #spanadd
      }
      #spanend
      #spanadd
      // end ---------
      #spanend
      #spanadd
  11. 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
      // start -------
      #spanend
      #spanadd
          return (ETranslucencyLightingMode)(MaterialInstance ? MaterialInstance->GetTranslucencyLightingMode() : Material->GetTranslucencyLightingMode());
      #spanend
      #spanadd
      // end ---------
      #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
      // start -------
      #spanend
      #spanadd
          ,bOverride_TranslucencyLightingMode(false)
      #spanend
      #spanadd
      // end ---------
      #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
      // start -------
      #spanend
      #spanadd
                  bOverride_TranslucencyLightingMode == Other.bOverride_TranslucencyLightingMode &&
      #spanend
      #spanadd
      // end ---------
      #spanend
      #spanadd
                  OpacityMaskClipValue == Other.OpacityMaskClipValue &&
      #spanend
      #spanadd

    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS