Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
DesertShader.cs
Go to the documentation of this file.
1using System;
4
6
8{
9 private readonly Vector4 _baseColor;
10
11 private readonly Vector4 _sandColor;
12
13 public DesertShader(Color baseColor, Color sandColor)
14 {
15 _baseColor = baseColor.ToVector4();
16 _sandColor = sandColor.ToVector4();
17 }
18
19 [RgbProcessor(/*Could not decode attribute arguments.*/)]
20 private void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
21 {
22 for (int i = 0; i < fragment.Count; i++)
23 {
24 Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
25 fragment.GetGridPositionOfIndex(i);
26 canvasPositionOfIndex.Y += (float)Math.Sin(canvasPositionOfIndex.X * 2f + time * 2f) * 0.2f;
27 float staticNoise = NoiseHelper.GetStaticNoise(canvasPositionOfIndex * new Vector2(0.1f, 0.5f));
28 Vector4 vector = Vector4.Lerp(_baseColor, _sandColor, staticNoise * staticNoise);
29 fragment.SetColor(i, vector);
30 }
31 }
32}
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 Sin(double a)
void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
DesertShader(Color baseColor, Color sandColor)
static float GetStaticNoise(int index)
static Vector4 Lerp(Vector4 value1, Vector4 value2, float amount)
Definition Vector4.cs:277