@@ -541,18 +541,22 @@ private static void ComputeShaderColors(CustomModelColors colors, ShaderInfo in
541
541
542
542
// New diffuse starts from regular diffuse file.
543
543
// Then factors in the player's skin color multiplied by the shader value.
544
- float skinInfluence = ByteToFloat ( baseSpecular . R ) * 0.5f ;
545
- Color skinColor = MultiplyColor ( colors . SkinColor , 1.0f ) ;
544
+ float skinInfluence = ByteToFloat ( baseSpecular . R ) ;
545
+ var coloredSkin = MultiplyColor ( baseDiffuse , colors . SkinColor ) ;
546
546
547
- newDiffuse = Blend ( baseDiffuse , skinColor , skinInfluence ) ;
547
+ newDiffuse = Blend ( baseDiffuse , coloredSkin , skinInfluence ) ;
548
548
549
549
if ( info . Preset == MtrlShaderPreset . Face )
550
550
{
551
551
// Face shaders also allow for lip color.
552
- Color lipColor = MultiplyColor ( colors . LipColor , 1.0f ) ;
552
+ var coloredLip = MultiplyColor ( baseDiffuse , colors . LipColor ) ;
553
553
float lipInfluence = ByteToFloat ( baseSpecular . B ) ;
554
- newDiffuse = Blend ( newDiffuse , lipColor , lipInfluence ) ;
555
-
554
+ newDiffuse = Blend ( newDiffuse , coloredLip , lipInfluence ) ;
555
+
556
+ // For lipstick, increase the specular value slightly.
557
+ float specAmp = 1.0f + ( lipInfluence * 0.25f ) ;
558
+ newSpecular = MultiplyColor ( newSpecular , specAmp ) ;
559
+
556
560
}
557
561
558
562
0 commit comments