Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ProcessAnyDetail()

void Terraria.GameContent.RGB.SkyShader.ProcessAnyDetail ( RgbDevice device,
Fragment fragment,
EffectDetailLevel quality,
float time )
inlineprivate

Definition at line 57 of file SkyShader.cs.

58 {
59 for (int i = 0; i < fragment.Count; i++)
60 {
61 Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
62 Point gridPositionOfIndex = fragment.GetGridPositionOfIndex(i);
63 float dynamicNoise = NoiseHelper.GetDynamicNoise(canvasPositionOfIndex * new Vector2(0.1f, 0.5f) + new Vector2(time * 0.05f, 0f), time / 20f);
64 dynamicNoise = (float)Math.Sqrt(Math.Max(0f, 1f - 2f * dynamicNoise));
67 float dynamicNoise2 = NoiseHelper.GetDynamicNoise(gridPositionOfIndex.X, gridPositionOfIndex.Y, time / 60f);
68 dynamicNoise2 = Math.Max(0f, 1f - dynamicNoise2 * 20f);
69 value = Vector4.Lerp(value, Vector4.One, dynamicNoise2 * 0.98f * _starVisibility);
70 fragment.SetColor(i, value);
71 }
72 }
Point GetGridPositionOfIndex(int index)
Definition Fragment.cs:81
void SetColor(int index, Vector4 color)
Definition Fragment.cs:97
Vector2 GetCanvasPositionOfIndex(int index)
Definition Fragment.cs:75
static double Sqrt(double d)
static byte Max(byte val1, byte val2)
Definition Math.cs:738
static Vector4 Lerp(Vector4 value1, Vector4 value2, float amount)
Definition Vector4.cs:277

References Terraria.GameContent.RGB.SkyShader._backgroundTransition, Terraria.GameContent.RGB.SkyShader._baseSpaceColor, Terraria.GameContent.RGB.SkyShader._processedCloudColor, Terraria.GameContent.RGB.SkyShader._processedSkyColor, Terraria.GameContent.RGB.SkyShader._starVisibility, ReLogic.Peripherals.RGB.Fragment.Count, ReLogic.Peripherals.RGB.Fragment.GetCanvasPositionOfIndex(), Terraria.GameContent.RGB.NoiseHelper.GetDynamicNoise(), ReLogic.Peripherals.RGB.Fragment.GetGridPositionOfIndex(), Microsoft.Xna.Framework.Vector4.Lerp(), System.Math.Max(), Microsoft.Xna.Framework.Vector4.One, ReLogic.Peripherals.RGB.Fragment.SetColor(), System.Math.Sqrt(), System.value, Microsoft.Xna.Framework.Point.X, and Microsoft.Xna.Framework.Point.Y.