Example #1
0
    public override void Generate()
    {
        const int c1 = 200;

        m_instances = new BatchCubeRenderer.InstanceData[c1];
        m_imd       = new IMD[c1];

        Quaternion r = Quaternion.AngleAxis(8.0f, Vector3.forward);

        m_axis = r * Vector3.up;

        for (int i = 0; i < c1; ++i)
        {
            m_imd[i].axis1       = RV();
            m_imd[i].axis2       = RV();
            m_imd[i].rot_speed1  = Random.Range(0.25f, 1.5f) * 20.0f;
            m_imd[i].rot_speed2  = Random.Range(0.25f, 1.5f) * 20.0f;
            m_imd[i].rot1        = R(360.0f);
            m_imd[i].rot2        = R(360.0f);
            m_imd[i].speed       = R(1.0f) + 4.0f;
            m_imd[i].base_y      = 1.5f + R(1.25f);
            m_instances[i].scale = 0.75f + R(0.1f);

            m_instances[i].translation    = r * new Vector3(R(), 0.0f, R()).normalized *(12.0f + R(1.25f));
            m_instances[i].translation.y += m_imd[i].base_y;
        }
    }
Example #2
0
    public override void Generate()
    {
        const int c1 = 32;
        const int c2 = 256;

        m_instances = new BatchCubeRenderer.InstanceData[c1 + c2];
        m_imd       = new IMD[c1 + c2];
        for (int i = 0; i < c1; ++i)
        {
            m_imd[i].axis1                = RV();
            m_imd[i].axis2                = RV();
            m_imd[i].rot_speed1           = Random.Range(0.25f, 1.5f) * 20.0f;
            m_imd[i].rot_speed2           = Random.Range(0.25f, 1.5f) * 20.0f;
            m_imd[i].speed                = R(10.0f);
            m_imd[i].rot1                 = R(360.0f);
            m_imd[i].rot2                 = R(360.0f);
            m_instances[i].scale          = 0.5f;
            m_instances[i].translation    = RV() * Random.Range(2.5f, 4.0f);
            m_instances[i].translation.y += 2.0f;
        }
        for (int i = c1; i < c1 + c2; ++i)
        {
            m_imd[i].axis1                = RV();
            m_imd[i].axis2                = RV();
            m_imd[i].rot_speed1           = Random.Range(0.25f, 1.5f) * 20.0f;
            m_imd[i].rot_speed2           = Random.Range(0.25f, 1.5f) * 20.0f;
            m_imd[i].speed                = R(2.5f);
            m_instances[i].scale          = 1.0f;
            m_instances[i].translation    = RV() * (17.0f + R(5.0f));
            m_instances[i].translation.y += 5.0f;
        }
    }
 public override void Generate()
 {
     const int c1 = 32;
     const int c2 = 256;
     m_instances = new BatchCubeRenderer.InstanceData[c1 + c2];
     m_imd = new IMD[c1 + c2];
     for (int i = 0; i < c1; ++i)
     {
         m_imd[i].axis1 = RV();
         m_imd[i].axis2 = RV();
         m_imd[i].rot_speed1 = Random.Range(0.25f, 1.5f) * 20.0f;
         m_imd[i].rot_speed2 = Random.Range(0.25f, 1.5f) * 20.0f;
         m_imd[i].speed = R(10.0f);
         m_imd[i].rot1 = R(360.0f);
         m_imd[i].rot2 = R(360.0f);
         m_instances[i].scale = 0.5f;
         m_instances[i].translation = RV() * Random.Range(2.5f, 4.0f);
         m_instances[i].translation.y += 2.0f;
     }
     for (int i = c1; i < c1+c2; ++i)
     {
         m_imd[i].axis1 = RV();
         m_imd[i].axis2 = RV();
         m_imd[i].rot_speed1 = Random.Range(0.25f, 1.5f) * 20.0f;
         m_imd[i].rot_speed2 = Random.Range(0.25f, 1.5f) * 20.0f;
         m_imd[i].speed = R(2.5f);
         m_instances[i].scale = 1.0f;
         m_instances[i].translation = RV() * (17.0f + R(5.0f));
         m_instances[i].translation.y += 5.0f;
     }
 }
    public override void Generate()
    {
        const int c1 = 200;
        m_instances = new BatchCubeRenderer.InstanceData[c1];
        m_imd = new IMD[c1];

        Quaternion r = Quaternion.AngleAxis(8.0f, Vector3.forward);
        m_axis = r * Vector3.up;

        for (int i = 0; i < c1; ++i)
        {
            m_imd[i].axis1 = RV();
            m_imd[i].axis2 = RV();
            m_imd[i].rot_speed1 = Random.Range(0.25f, 1.5f) * 20.0f;
            m_imd[i].rot_speed2 = Random.Range(0.25f, 1.5f) * 20.0f;
            m_imd[i].rot1 = R(360.0f);
            m_imd[i].rot2 = R(360.0f);
            m_imd[i].speed = R(1.0f)+4.0f;
            m_imd[i].base_y = 1.5f + R(1.25f);
            m_instances[i].scale = 0.75f + R(0.1f);

            m_instances[i].translation = r * new Vector3(R(), 0.0f, R()).normalized * (12.0f + R(1.25f));
            m_instances[i].translation.y += m_imd[i].base_y;
        }
    }
Example #5
0
    public override void Generate()
    {
        const int cubes_par_piller = 200;
        const int num_pillers      = 8;

        m_instances = new BatchCubeRenderer.InstanceData[cubes_par_piller * num_pillers];
        m_imd       = new IMD[cubes_par_piller * num_pillers];

        const float r1    = 9.0f;
        const float r2    = 16.0f;
        const float shift = 0.0f;

        Vector3[] base_pos = new Vector3[num_pillers] {
            new Vector3(Mathf.Cos((0.0f + shift) * Mathf.Deg2Rad), 0.0f, Mathf.Sin((0.0f + shift) * Mathf.Deg2Rad)) * r1,
            new Vector3(Mathf.Cos((90.0f + shift) * Mathf.Deg2Rad), 0.0f, Mathf.Sin((90.0f + shift) * Mathf.Deg2Rad)) * r1,
            new Vector3(Mathf.Cos((180.0f + shift) * Mathf.Deg2Rad), 0.0f, Mathf.Sin((180.0f + shift) * Mathf.Deg2Rad)) * r1,
            new Vector3(Mathf.Cos((270.0f + shift) * Mathf.Deg2Rad), 0.0f, Mathf.Sin((270.0f + shift) * Mathf.Deg2Rad)) * r1,

            new Vector3(Mathf.Cos((45.0f + shift) * Mathf.Deg2Rad), 0.0f, Mathf.Sin((45.0f + shift) * Mathf.Deg2Rad)) * r2,
            new Vector3(Mathf.Cos((135.0f + shift) * Mathf.Deg2Rad), 0.0f, Mathf.Sin((135.0f + shift) * Mathf.Deg2Rad)) * r2,
            new Vector3(Mathf.Cos((225.0f + shift) * Mathf.Deg2Rad), 0.0f, Mathf.Sin((225.0f + shift) * Mathf.Deg2Rad)) * r2,
            new Vector3(Mathf.Cos((315.0f + shift) * Mathf.Deg2Rad), 0.0f, Mathf.Sin((315.0f + shift) * Mathf.Deg2Rad)) * r2,
        };

        for (int pi = 0; pi < num_pillers; ++pi)
        {
            for (int ci = 0; ci < cubes_par_piller; ++ci)
            {
                int         i   = cubes_par_piller * pi + ci;
                const float rxz = 0.75f;
                const float ry  = 15.0f;
                Vector3     pos = base_pos[pi] + new Vector3(Random.Range(-rxz, rxz), Random.Range(-ry, ry), Random.Range(-rxz, rxz));
                m_imd[i].initial_pos       = pos;
                m_imd[i].speed             = Random.Range(0.25f, 1.0f);
                m_instances[i].translation = pos;
                m_instances[i].scale       = Random.Range(0.5f, 1.1f);
            }
        }
    }
Example #6
0
    public override void Generate()
    {
        const int w = 31;
        m_instances = new BatchCubeRenderer.InstanceData[w * w];
        m_imd = new IMD[m_instances.Length];
        for (int xi = 0; xi < w; ++xi)
        {
            for (int zi = 0; zi < w; ++zi)
            {
                int i = w * xi + zi;

                Vector3 pos = new Vector3(1.1f * xi - 16.1f, Random.Range(-2.0f, 0.0f) - 0.7f, 1.1f * zi - 16.1f);
                float d = Mathf.Sqrt(pos.x * pos.x + pos.z * pos.z);
                m_imd[i].base_pos = pos;
                m_imd[i].up = -10.0f - Mathf.Max(10.0f - d * 1.5f, 0.0f);
                m_imd[i].random = Random.Range(-1.0f, 1.0f);
                pos.y += m_imd[i].up + (-d * 0.1f);
                m_instances[i].translation = pos;
                m_instances[i].rotation = Quaternion.identity;
                m_instances[i].scale = 1.0f;
            }
        }
    }
Example #7
0
    public override void Generate()
    {
        const int cubes_par_piller = 200;
        const int num_pillers = 8;
        m_instances = new BatchCubeRenderer.InstanceData[cubes_par_piller * num_pillers];
        m_imd = new IMD[cubes_par_piller * num_pillers];

        const float r1 = 9.0f;
        const float r2 = 16.0f;
        const float shift = 0.0f;
        Vector3[] base_pos = new Vector3[num_pillers] {
            new Vector3(Mathf.Cos((  0.0f+shift)*Mathf.Deg2Rad), 0.0f, Mathf.Sin((  0.0f+shift)*Mathf.Deg2Rad))*r1,
            new Vector3(Mathf.Cos(( 90.0f+shift)*Mathf.Deg2Rad), 0.0f, Mathf.Sin(( 90.0f+shift)*Mathf.Deg2Rad))*r1,
            new Vector3(Mathf.Cos((180.0f+shift)*Mathf.Deg2Rad), 0.0f, Mathf.Sin((180.0f+shift)*Mathf.Deg2Rad))*r1,
            new Vector3(Mathf.Cos((270.0f+shift)*Mathf.Deg2Rad), 0.0f, Mathf.Sin((270.0f+shift)*Mathf.Deg2Rad))*r1,

            new Vector3(Mathf.Cos(( 45.0f+shift)*Mathf.Deg2Rad), 0.0f, Mathf.Sin(( 45.0f+shift)*Mathf.Deg2Rad))*r2,
            new Vector3(Mathf.Cos((135.0f+shift)*Mathf.Deg2Rad), 0.0f, Mathf.Sin((135.0f+shift)*Mathf.Deg2Rad))*r2,
            new Vector3(Mathf.Cos((225.0f+shift)*Mathf.Deg2Rad), 0.0f, Mathf.Sin((225.0f+shift)*Mathf.Deg2Rad))*r2,
            new Vector3(Mathf.Cos((315.0f+shift)*Mathf.Deg2Rad), 0.0f, Mathf.Sin((315.0f+shift)*Mathf.Deg2Rad))*r2,
        };

        for (int pi = 0; pi < num_pillers; ++pi)
        {
            for (int ci = 0; ci < cubes_par_piller; ++ci)
            {
                int i = cubes_par_piller * pi + ci;
                const float rxz = 0.75f;
                const float ry = 15.0f;
                Vector3 pos = base_pos[pi] + new Vector3(Random.Range(-rxz, rxz), Random.Range(-ry, ry), Random.Range(-rxz, rxz));
                m_imd[i].initial_pos = pos;
                m_imd[i].speed = Random.Range(0.25f, 1.0f);
                m_instances[i].translation = pos;
                m_instances[i].scale = Random.Range(0.5f, 1.1f);
            }
        }
    }
Example #8
0
    public override void Generate()
    {
        const int w = 31;

        m_instances = new BatchCubeRenderer.InstanceData[w * w];
        m_imd       = new IMD[m_instances.Length];
        for (int xi = 0; xi < w; ++xi)
        {
            for (int zi = 0; zi < w; ++zi)
            {
                int i = w * xi + zi;

                Vector3 pos = new Vector3(1.1f * xi - 16.1f, Random.Range(-2.0f, 0.0f) - 0.7f, 1.1f * zi - 16.1f);
                float   d   = Mathf.Sqrt(pos.x * pos.x + pos.z * pos.z);
                m_imd[i].base_pos          = pos;
                m_imd[i].up                = -10.0f - Mathf.Max(10.0f - d * 1.5f, 0.0f);
                m_imd[i].random            = Random.Range(-1.0f, 1.0f);
                pos.y                     += m_imd[i].up + (-d * 0.1f);
                m_instances[i].translation = pos;
                m_instances[i].rotation    = Quaternion.identity;
                m_instances[i].scale       = 1.0f;
            }
        }
    }