Beispiel #1
0
    protected override void sendNoiseToViewer()
    {
        NoiseStore ns = new NoiseStore(new int[] { noise_con_set.x_res, noise_con_set.y_res });

        float x_scale = noise_con_set.getXScale() / noise_con_set.x_res;
        float y_scale = noise_con_set.getYScale() / noise_con_set.y_res;

        for (int i = 0; i < noise_con_set.x_res; i++)
        {
            float y_0 = generator.sample(new float[] { i *x_scale, 0 });
            //ns.set(new int[] {i, 0}, y_0);

            for (int j = 0; j < noise_con_set.y_res; j++)
            {
                //float v = generator.sample(new float[] { i * x_scale, j * y_scale}) * (1 - j / (noise_con_set.y_res - 1f)) + (j / (noise_con_set.y_res - 1f)) * y_0;
                float v = lerp(
                    generator.sample(new float[] { i *x_scale, j *y_scale }),
                    y_0,
                    j / (noise_con_set.y_res - 1f)
                    );

                ns.set(new int[] { i, j }, v);
            }
        }

        viewer.setNoiseStore(ns);
    }
Beispiel #2
0
    protected override void sendNoiseToViewer()
    {
        NoiseStore ns = new NoiseStore(new int[] { noise_con_set.x_res, noise_con_set.y_res });

        float x_scale = noise_con_set.getXScale() / noise_con_set.x_res;
        float y_scale = noise_con_set.getYScale() / noise_con_set.y_res;

        Perlin3DGenerator g = (Perlin3DGenerator)generator;

        for (int i = 0; i < noise_con_set.x_res; i++)
        {
            float y_0 = generator.sample(new float[] { i *x_scale, 0, z_slice });

            ns.set(new int[] { i, 0 }, y_0);

            for (int j = 0; j < noise_con_set.y_res; j++)
            {
                //ns.set(new int[] { i,j}, generator.sample(new float[] { i * x_scale, j * y_scale, z_slice}));
                //
                float v = g.sample(new Vector3(i * x_scale, j * y_scale, z_slice)) * (1 - j / (noise_con_set.y_res - 1f)) + (j / (noise_con_set.y_res - 1f)) * y_0;
                ns.set(new int[] { i, j }, v);
            }
        }

        viewer.setNoiseStore(ns);
    }
Beispiel #3
0
    protected override void sendNoiseToViewer()
    {
        ///Debug.Log("send to viewer");
        if (noise_con_set == null)
        {
            //Debug.Log("no settings not sending");
            return;
        }

        NoiseStore ns = new NoiseStore(new int[] { noise_con_set.x_res, noise_con_set.y_res });

        float x_scale = noise_con_set.getXScale() / noise_con_set.x_res;
        float y_scale = noise_con_set.getYScale() / noise_con_set.y_res;

        //value of the noise at 0,0
        float origin = generator.sample(new float[] { 0, 0 });

        for (int i = 0; i < noise_con_set.x_res; i++)
        {
            //gets the value of the noise at (i * x_scale, 0) on the x axis
            float y_0 = lerp(generator.sample(new float[] { i *x_scale, 0 }), origin, i / (noise_con_set.x_res - 1f));

            //float y_0 = generator.sample(new float[] { i * x_scale, 0});

            //sets the noise at (i,0) to be equal to y_0 to make it match
            ns.set(new int[] { i, 0 }, y_0);

            for (int j = 0; j < noise_con_set.y_res; j++)
            {
                /*
                 * float v = lerp(
                 *  generator.sample(new float[] { i * x_scale, j * y_scale}),
                 *  y_0,
                 *  j / (noise_con_set.y_res - 1f)
                 * );
                 *
                 *
                 * //v = lerp(v, ns.get(new int[] { 0, j}), i / (noise_con_set.x_res - 1f));
                 */



                ns.set(new int[] { i, j },
                       (1 - weight(new Vector2(i / (noise_con_set.x_res - 1f), j / (noise_con_set.y_res - 1f))))
                       * generator.sample(new float[] { i *x_scale, j *y_scale })
                       );



                //ns.set(new int[] {i,j}, weight(0f, 0f, new Vector2(i / (noise_con_set.x_res- 1f), j / (noise_con_set.y_res- 1f))));
            }

            viewer.setNoiseStore(ns);
        }
    }
Beispiel #4
0
    protected override void sendNoiseToViewer()
    {
        NoiseStore ns = new NoiseStore(new int[] { noise_con_set.x_res, noise_con_set.y_res });

        float x_scale = noise_con_set.getXScale() / noise_con_set.x_res;
        float y_scale = noise_con_set.getYScale() / noise_con_set.y_res;

        for (int i = 0; i < noise_con_set.x_res; i++)
        {
            for (int j = 0; j < noise_con_set.y_res; j++)
            {
                ns.set(new int[] { i, j }, generator.sample(new float[] { i *x_scale, j *y_scale }));
            }
        }

        viewer.setNoiseStore(ns);
    }
Beispiel #5
0
    public bool dimentionsConform(NoiseStore ns)
    {
        int[] dims2 = ns.getDims();
        if (dims2.Length != dims.Length)
        {
            return(false);
        }

        for (int i = 0; i < dims2.Length; i++)
        {
            if (dims2[i] != dims[i])
            {
                return(false);
            }
        }
        return(true);
    }
 public override void setNoiseStore(NoiseStore ns)
 {
     this.noise_store = ns;
     constructMesh();
 }
    //protected float[,] noise_grid;

    public virtual void generateTerrain(NoiseOptions options)
    {
        Debug.Log("making noise store");
        noise_store = new NoiseStore(options.res, options.res);
    }
 public TerrainGenerator(int r)
 {
     noise_store = new NoiseStore(r, r);
 }
Beispiel #9
0
 abstract public void setNoiseStore(NoiseStore store);