Пример #1
0
 public static Vertex FastLerp(Vertex a, Vertex b, float t) => new Vertex
 {
     point        = Vector4.Lerp(a.point, b.point, t),
     onePerZ      = MathRaster.Lerp(a.onePerZ, b.onePerZ, t),
     uv           = Vector2.Lerp(a.uv, b.uv, t),
     normal       = Vector3.Lerp(a.normal, b.normal, t),
     color        = Color32.Lerp(a.color, b.color, t),
     distance2Cam = MathRaster.Lerp(a.distance2Cam, b.distance2Cam, t)
 };
Пример #2
0
        public override Intermediate Lerp(Intermediate rhs, float facter)
        {
            var right = (SampleInterData)rhs;

            return(new SampleInterData
            {
                z_buff = MathRaster.Lerp(z_buff, right.z_buff, facter),
                UV = Vector2.Lerp(UV, right.UV, facter),
                FragPos = Vector3.Lerp(FragPos, right.FragPos, facter),
                Normal = Vector3.Lerp(Normal, right.Normal, facter)
            });
        }
Пример #3
0
        public override Color32 Shade(Vertex p)
        {
            var d  = (p.distance2Cam / 2f);
            var d1 = (int)Math.Floor(d);
            var d2 = (int)Math.Ceiling(d);

            if (d2 > 8)
            {
                d2 = 8;
            }
            if (d1 > 8)
            {
                d1 = 8;
            }

            var gray = MathRaster.Lerp(d1 / 9f, d2 / 9f, d - d1);
            var c    = Color32.Lerp(texture.midmaps[d1].Value(p.uv.X, p.uv.Y, Vector3.One), texture.midmaps[d2].Value(p.uv.X, p.uv.Y, Vector3.One), d - d1);

            return(new Color32(0, gray, 0, 1) * c);

            return(Color32.Lerp(texture.midmaps[d1].Value(p.uv.X, p.uv.Y, Vector3.One), texture.midmaps[d2].Value(p.uv.X, p.uv.Y, Vector3.One), d - d1));
        }