Esempio n. 1
0
        public override Color32 Value(float u, float v, Vector3 p)
        {
            if (dir == 1)
            {
                var t = u;
                u = 1 - v;
                v = t;
            }
            u = u * scale % 1;
            v = v * scale % 1;
            var i = MathRaster.Range((int)(u * w), 0, w - 1);
            var j = MathRaster.Range((int)((1 - v) * h - 0.001f), 0, h - 1);

            return(new Color32(
                       data[3 * i + 3 * w * j] / 255f,
                       data[3 * i + 3 * w * j + 1] / 255f,
                       data[3 * i + 3 * w * j + 2] / 255f));


//            if (dir == 1)
//            {
//                var t = u;
//                u = 1 - v;
//                v = t;
//            }
//            u = u * scale % 1;
//            v = v * scale % 1;
//
//            var U = u * w;
//            var V = (1 - v) * h - 0.001f;
//            var u1 = (int)Math.Floor(U);
//            var u2 = (int)Math.Ceiling(U);
//
//            var v1 = (int)Math.Floor(V);
//            var v2 = (int)Math.Ceiling(V);
//
//            var color1 = Color32.Lerp(GetColor(u1, v1), GetColor(u2, v1), U - u1);
//            var color2 = Color32.Lerp(GetColor(u1, v2), GetColor(u2, v2), U - u1);
//            var color = Color32.Lerp(color1, color2, V - v1);
//            return color;
//            Color32 GetColor(int _u, int _v)
//            {
//                var i = MathRaster.Range(_u, 0, w - 1);
//                var j = MathRaster.Range(_v, 0, h - 1);
//                return new Color32(
//                    data[3 * i + 3 * w * j] / 255f,
//                    data[3 * i + 3 * w * j + 1] / 255f,
//                    data[3 * i + 3 * w * j + 2] / 255f);
//            }
        }
Esempio n. 2
0
 public static RgbaFloat LowLevelColor(Color32 c) => new RgbaFloat(MathRaster.Range(c.r, 0, 1), MathRaster.Range(c.g, 0, 1), MathRaster.Range(c.b, 0, 1), MathRaster.Range(c.a, 0, 1));