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

◆ ProcessHighDetail()

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

Definition at line 31 of file PillarShader.cs.

32 {
33 Vector2 vector = new Vector2(1.5f, 0.5f);
34 time *= 4f;
35 for (int i = 0; i < fragment.Count; i++)
36 {
37 Vector2 vector2 = fragment.GetCanvasPositionOfIndex(i) - vector;
38 float num = vector2.Length() * 2f;
39 float num2 = (float)Math.Atan2(vector2.Y, vector2.X);
40 float amount = (float)Math.Sin(num * 4f - time - num2) * 0.5f + 0.5f;
42 if (num < 1f)
43 {
44 float num3 = num / 1f;
45 num3 *= num3 * num3;
46 float amount2 = (float)Math.Sin(4f - time - num2) * 0.5f + 0.5f;
47 vector3 = Vector4.Lerp(_primaryColor, _secondaryColor, amount2) * num3;
48 }
49 vector3.W = 1f;
50 fragment.SetColor(i, vector3);
51 }
52 }
void SetColor(int index, Vector4 color)
Definition Fragment.cs:97
Vector2 GetCanvasPositionOfIndex(int index)
Definition Fragment.cs:75
static double Atan2(double y, double x)
static double Sin(double a)
static Vector4 Lerp(Vector4 value1, Vector4 value2, float amount)
Definition Vector4.cs:277

References Terraria.GameContent.RGB.PillarShader._primaryColor, Terraria.GameContent.RGB.PillarShader._secondaryColor, System.Math.Atan2(), ReLogic.Peripherals.RGB.Fragment.Count, ReLogic.Peripherals.RGB.Fragment.GetCanvasPositionOfIndex(), Microsoft.Xna.Framework.Vector2.Length(), Microsoft.Xna.Framework.Vector4.Lerp(), ReLogic.Peripherals.RGB.Fragment.SetColor(), System.Math.Sin(), Microsoft.Xna.Framework.Vector2.X, and Microsoft.Xna.Framework.Vector2.Y.