예제 #1
0
        public virtual void MakeMesh()
        {
            if (buffer.count == 0)
            {
                print("BUFFER NOT MADE YET");
            }
            if (triBuffer.count == 0)
            {
                print("Triangles NOT MADE YET");
            }


            if (gameObject.GetComponent <MeshFilter>() == null)
            {
                Mesh mesh = new Mesh();
                mesh.vertices  = new Vector3[buffer.count];
                mesh.triangles = triBuffer.GetValues();
                mesh.bounds    = new Bounds(Vector3.zero, Vector3.one * 1000f);
                mesh.UploadMeshData(true);


                gameObject.AddComponent <MeshFilter>().sharedMesh = mesh;


                MeshRenderer renderer = gameObject.AddComponent <MeshRenderer> ();
                renderer.sharedMaterial = material;

                material.SetBuffer("_transferBuffer", buffer._buffer);
            }
        }
예제 #2
0
        public virtual void MakeMesh()
        {
            material = new Material(material);
            if (buffer.count == 0)
            {
                print("BUFFER NOT MADE YET");
            }
            if (triBuffer.count == 0)
            {
                print("Triangles NOT MADE YET");
            }


            print(vertBuffer.count);
            print(buffer.count);
            print(vertBuffer.GetValues().Length);
            print(((FloatBuffer)buffer).GetValues().Length);
            if (gameObject.GetComponent <MeshFilter>() == null)
            {
                Mesh mesh = new Mesh();
                mesh.indexFormat = UnityEngine.Rendering.IndexFormat.UInt32;
                mesh.vertices    = new Vector3[buffer.count];
                int[]  tris  = triBuffer.GetValues();
                uint[] utris = new uint[tris.Length];//triBuffer.GetValues();


                int max = 0;
                for (int i = 0; i < tris.Length; i++)
                {
                    utris[i] = (uint)tris[i];
                    if (tris[i] > max)
                    {
                        max = tris[i];
                    }
                }

                mesh.SetTriangles(tris, 0);//.triangles = tris;

                //
                mesh.bounds = new Bounds(Vector3.zero, Vector3.one * 1000f);
                //



                gameObject.AddComponent <MeshFilter>().mesh = mesh;


                renderer = gameObject.AddComponent <MeshRenderer> ();
                renderer.sharedMaterial = material;

                material.SetBuffer("_transferBuffer", buffer._buffer);
            }
        }
예제 #3
0
        public virtual void MakeMesh()
        {
            material = new Material(material);
            if (buffer.count == 0)
            {
                print("BUFFER NOT MADE YET");
            }
            if (triBuffer.count == 0)
            {
                print("Triangles NOT MADE YET");
            }


            //print( vertBuffer.count );
            //print( buffer.count );
            //print( vertBuffer.GetValues().Length );
            //print( ((FloatBuffer)buffer).GetValues().Length );
            if (gameObject.GetComponent <MeshFilter>() == null)
            {
                Mesh mesh = new Mesh();
                mesh.vertices = new Vector3[buffer.count];
                int[] tris = triBuffer.GetValues();
                mesh.triangles = tris;

                int max = 0;
                for (int i = 0; i < tris.Length; i++)
                {
                    if (tris[i] > max)
                    {
                        max = tris[i];
                    }
                }
                print(max);
                mesh.bounds = new Bounds(Vector3.zero, Vector3.one * 1000f);
                mesh.UploadMeshData(true);


                gameObject.AddComponent <MeshFilter>().mesh = mesh;


                renderer          = gameObject.AddComponent <MeshRenderer> ();
                renderer.material = material;

                renderer.material.SetBuffer("_transferBuffer", buffer._buffer);
            }
        }