Exemple #1
0
    void AddCube(MeshDesc meshDesc, CubeDesc desc, Vector3 position)
    {
        int positionsStartIndex = meshDesc.positions.Count;
        int normalsStartIndex = meshDesc.normals.Count;
        int indicesStartIndex = meshDesc.indices.Count;

        meshDesc.positions.AddRange(desc.positions);
        meshDesc.normals.AddRange(desc.normals);
        meshDesc.indices.AddRange(desc.indices);

        for (int i = positionsStartIndex; i < meshDesc.positions.Count; ++i)
        {
            meshDesc.positions[i] += position;
        }
        for (int i = indicesStartIndex; i < meshDesc.indices.Count; ++i)
        {
            meshDesc.indices[i] += positionsStartIndex;
        }
    }
Exemple #2
0
    void FillMeshDesc(MeshDesc desc)
    {
        CubeDesc cubeDesc = new CubeDesc();
        InitCubeDesc(cubeDesc);

        Vector3 position = new Vector3();
        for (int z = 0; z < size; ++z)
        {
            for (int y = 0; y < size; ++y)
            {
                for (int x = 0; x < size; ++x)
                {
                    position.x = x * cubeSize;
                    position.y = y * cubeSize;
                    position.z = z * cubeSize;
                    AddCube(desc, cubeDesc, position);
                }
            }
        }
    }
Exemple #3
0
    void InitCubeDesc(CubeDesc desc)
    {
        Vector3 vertice_0 = new Vector3(-cubeSize * .5f, -cubeSize * .5f, cubeSize * .5f);
        Vector3 vertice_1 = new Vector3(cubeSize * .5f, -cubeSize * .5f, cubeSize * .5f);
        Vector3 vertice_2 = new Vector3(cubeSize * .5f, -cubeSize * .5f, -cubeSize * .5f);
        Vector3 vertice_3 = new Vector3(-cubeSize * .5f, -cubeSize * .5f, -cubeSize * .5f);
        Vector3 vertice_4 = new Vector3(-cubeSize * .5f, cubeSize * .5f, cubeSize * .5f);
        Vector3 vertice_5 = new Vector3(cubeSize * .5f, cubeSize * .5f, cubeSize * .5f);
        Vector3 vertice_6 = new Vector3(cubeSize * .5f, cubeSize * .5f, -cubeSize * .5f);
        Vector3 vertice_7 = new Vector3(-cubeSize * .5f, cubeSize * .5f, -cubeSize * .5f);

        Vector3 up = Vector3.up;
        Vector3 down = Vector3.down;
        Vector3 front = Vector3.forward;
        Vector3 back = Vector3.back;
        Vector3 left = Vector3.left;
        Vector3 right = Vector3.right;

        desc.positions = new Vector3[]
            {
                // Bottom Polygon
                vertice_0, vertice_1, vertice_2, vertice_0,
                // Left Polygon
                vertice_7, vertice_4, vertice_0, vertice_3,
                // Front Polygon
                vertice_4, vertice_5, vertice_1, vertice_0,
                // Back Polygon
                vertice_6, vertice_7, vertice_3, vertice_2,
                // Right Polygon
                vertice_5, vertice_6, vertice_2, vertice_1,
                // Top Polygon
                vertice_7, vertice_6, vertice_5, vertice_4
            };
        desc.normals = new Vector3[]
            {
                // Bottom Side Render
                down, down, down, down,
                // LEFT Side Render
                left, left, left, left,
                // FRONT Side Render
                front, front, front, front,
                // BACK Side Render
                back, back, back, back,
                // RIGTH Side Render
                right, right, right, right,
                // UP Side Render
                up, up, up, up
            };
        desc.indices = new int[]
            {
                // Cube Bottom Side Triangles
                3, 1, 0,
                3, 2, 1,
                // Cube Left Side Triangles
                3 + 4 * 1, 1 + 4 * 1, 0 + 4 * 1,
                3 + 4 * 1, 2 + 4 * 1, 1 + 4 * 1,
                // Cube Front Side Triangles
                3 + 4 * 2, 1 + 4 * 2, 0 + 4 * 2,
                3 + 4 * 2, 2 + 4 * 2, 1 + 4 * 2,
                // Cube Back Side Triangles
                3 + 4 * 3, 1 + 4 * 3, 0 + 4 * 3,
                3 + 4 * 3, 2 + 4 * 3, 1 + 4 * 3,
                // Cube Rigth Side Triangles
                3 + 4 * 4, 1 + 4 * 4, 0 + 4 * 4,
                3 + 4 * 4, 2 + 4 * 4, 1 + 4 * 4,
                // Cube Top Side Triangles
                3 + 4 * 5, 1 + 4 * 5, 0 + 4 * 5,
                3 + 4 * 5, 2 + 4 * 5, 1 + 4 * 5,
           };
    }