mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Adjust star start and end tinting to look better
This commit is contained in:
parent
bb39c98411
commit
5b989100cb
@ -408,10 +408,15 @@ namespace NewHorizons.Builder.Body
|
||||
if (starModule.endTint != null)
|
||||
{
|
||||
var endColour = starModule.endTint.ToColor();
|
||||
darkenedColor = new Color(endColour.r * modifier, endColour.g * modifier, endColour.b * modifier);
|
||||
var adjustedEndColour = new Color(endColour.r * modifier, endColour.g * modifier, endColour.b * modifier);
|
||||
Color.RGBToHSV(adjustedEndColour, out var hEnd, out var sEnd, out var vEnd);
|
||||
var darkenedEndColor = Color.HSVToRGB(hEnd, sEnd * 1.2f, vEnd * 0.1f);
|
||||
surface.sharedMaterial.SetTexture(ColorRamp, ImageUtilities.LerpGreyscaleImageAlongX(_colorOverTime, adjustedColour, darkenedColor, adjustedEndColour, darkenedEndColor));
|
||||
}
|
||||
else
|
||||
{
|
||||
surface.sharedMaterial.SetTexture(ColorRamp, ImageUtilities.LerpGreyscaleImage(_colorOverTime, adjustedColour, darkenedColor));
|
||||
}
|
||||
|
||||
surface.sharedMaterial.SetTexture(ColorRamp, ImageUtilities.LerpGreyscaleImage(_colorOverTime, adjustedColour, darkenedColor));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(starModule.starRampTexture))
|
||||
|
||||
@ -297,6 +297,40 @@ namespace NewHorizons.Utility.Files
|
||||
return newImage;
|
||||
}
|
||||
|
||||
public static Color LerpColor(Color start, Color end, float amount)
|
||||
{
|
||||
return new Color(Mathf.Lerp(start.r, end.r, amount), Mathf.Lerp(start.g, end.g, amount), Mathf.Lerp(start.b, end.b, amount));
|
||||
}
|
||||
|
||||
public static Texture2D LerpGreyscaleImageAlongX(Texture2D image, Color lightTintStart, Color darkTintStart, Color lightTintEnd, Color darkTintEnd)
|
||||
{
|
||||
var key = $"{image.name} > lerp greyscale {lightTintStart} {darkTintStart} {lightTintEnd} {darkTintEnd}";
|
||||
if (_textureCache.TryGetValue(key, out var existingTexture)) return (Texture2D)existingTexture;
|
||||
|
||||
var pixels = image.GetPixels();
|
||||
for (int i = 0; i < pixels.Length; i++)
|
||||
{
|
||||
var amount = (i % image.width) / (float) image.width;
|
||||
var lightTint = LerpColor(lightTintStart, lightTintEnd, amount);
|
||||
var darkTint = LerpColor(darkTintStart, darkTintEnd, amount);
|
||||
|
||||
pixels[i].r = Mathf.Lerp(darkTint.r, lightTint.r, pixels[i].r);
|
||||
pixels[i].g = Mathf.Lerp(darkTint.g, lightTint.g, pixels[i].g);
|
||||
pixels[i].b = Mathf.Lerp(darkTint.b, lightTint.b, pixels[i].b);
|
||||
}
|
||||
|
||||
var newImage = new Texture2D(image.width, image.height, image.format, image.mipmapCount != 1);
|
||||
newImage.name = key;
|
||||
newImage.SetPixels(pixels);
|
||||
newImage.Apply();
|
||||
|
||||
newImage.wrapMode = image.wrapMode;
|
||||
|
||||
_textureCache.Add(key, newImage);
|
||||
|
||||
return newImage;
|
||||
}
|
||||
|
||||
public static Texture2D ClearTexture(int width, int height, bool wrap = false)
|
||||
{
|
||||
var key = $"Clear {width} {height} {wrap}";
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
"author": "xen, Bwc9876, JohnCorby, MegaPiggy, Clay, Trifid, and friends",
|
||||
"name": "New Horizons",
|
||||
"uniqueName": "xen.NewHorizons",
|
||||
"version": "1.19.1",
|
||||
"version": "1.19.2",
|
||||
"owmlVersion": "2.9.8",
|
||||
"dependencies": [ "JohnCorby.VanillaFix", "_nebula.MenuFramework", "xen.CommonCameraUtility", "dgarro.CustomShipLogModes" ],
|
||||
"conflicts": [ "Raicuparta.QuantumSpaceBuddies", "PacificEngine.OW_CommonResources" ],
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user