Files
UnrealEngine/Engine/Shaders/Private/Visualization.ush
2025-05-18 13:04:45 +08:00

56 lines
1.0 KiB
HLSL

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Hash.ush"
#include "ColorMap.ush"
float3 IntToColor(uint Index)
{
uint Hash = MurmurMix(Index);
float3 Color = float3
(
(Hash >> 0) & 255,
(Hash >> 8) & 255,
(Hash >> 16) & 255
);
return Color * (1.0f / 255.0f);
}
float3 HUEtoRGB(in float H)
{
float R = abs(H * 6 - 3) - 1;
float G = 2 - abs(H * 6 - 2);
float B = 2 - abs(H * 6 - 4);
return saturate(float3(R, G, B));
}
float3 HSVtoRGB(in float3 HSV)
{
float3 RGB = HUEtoRGB(HSV.x);
return ((RGB - 1) * HSV.y + 1) * HSV.z;
}
float3 GetColorCode(float x)
{
float c = (1 - saturate(x)) * 0.6; // Remap [0,1] to Blue-Red
return x > 0 ? HSVtoRGB(float3(c, 1, 1)) : float3(0, 0, 0);
}
float3 GreenToRedHUE(float s)
{
return HUEtoRGB(lerp(0.333333f, 0.0f, saturate(s)));
}
float3 GreenToRedTurbo(float s)
{
return ColorMapTurbo(lerp(0.5f, 1.0f, saturate(s)));
}
float3 BlueGreenRedColorMap(float t)
{
return (0.75f * t + 0.25f) * saturate(2.0 - abs(float3(4, 2, 0) - 4.0 * t));
}