@@ -116,6 +116,9 @@ internal static void UpdateEmissiveColorFromIntensityAndEmissiveColorLDR(Materia
116
116
materialEditor . serializedObject . Update ( ) ;
117
117
}
118
118
119
+ internal static void UpdateEmissiveColorFromIntensityAndEmissiveColorLDR ( MaterialProperty emissiveColorLDR , MaterialProperty emissiveIntensity , MaterialProperty emissiveColor )
120
+ => emissiveColor . colorValue = emissiveColorLDR . colorValue . linear * emissiveIntensity . floatValue ;
121
+
119
122
internal static void UpdateEmissiveColorLDRFromIntensityAndEmissiveColor ( MaterialEditor materialEditor , Material [ ] materials )
120
123
{
121
124
materialEditor . serializedObject . ApplyModifiedProperties ( ) ;
@@ -126,6 +129,12 @@ internal static void UpdateEmissiveColorLDRFromIntensityAndEmissiveColor(Materia
126
129
materialEditor . serializedObject . Update ( ) ;
127
130
}
128
131
132
+ internal static void UpdateEmissiveColorLDRFromIntensityAndEmissiveColor ( MaterialProperty emissiveColorLDR , MaterialProperty emissiveIntensity , MaterialProperty emissiveColor )
133
+ {
134
+ Color emissiveColorLDRLinear = emissiveColorLDR . colorValue / emissiveIntensity . floatValue ;
135
+ emissiveColorLDR . colorValue = emissiveColorLDRLinear . gamma ;
136
+ }
137
+
129
138
internal static void DoEmissiveIntensityGUI ( MaterialEditor materialEditor , MaterialProperty emissiveIntensity , MaterialProperty emissiveIntensityUnit )
130
139
{
131
140
bool unitIsMixed = emissiveIntensityUnit . hasMixedValue ;
@@ -186,13 +195,13 @@ protected override void OnGUIOpen()
186
195
else
187
196
{
188
197
if ( updateEmissiveColor )
189
- UpdateEmissiveColorLDRFromIntensityAndEmissiveColor ( materialEditor , materials ) ;
198
+ UpdateEmissiveColorLDRFromIntensityAndEmissiveColor ( emissiveColorLDR , emissiveIntensity , emissiveColor ) ;
190
199
191
200
EditorGUI . BeginChangeCheck ( ) ;
192
201
DoEmissiveTextureProperty ( emissiveColorLDR ) ;
193
202
DoEmissiveIntensityGUI ( materialEditor , emissiveIntensity , emissiveIntensityUnit ) ;
194
203
if ( EditorGUI . EndChangeCheck ( ) )
195
- UpdateEmissiveColorFromIntensityAndEmissiveColorLDR ( materialEditor , materials ) ;
204
+ UpdateEmissiveColorFromIntensityAndEmissiveColorLDR ( emissiveColorLDR , emissiveIntensity , emissiveColor ) ;
196
205
}
197
206
198
207
materialEditor . ShaderProperty ( emissiveExposureWeight , Styles . emissiveExposureWeightText ) ;
0 commit comments