void Start() { var data = GPUVoxelizer.Voxelize(voxelizer, mesh, resolution, (type == MeshType.Volume)); GetComponent <MeshFilter>().sharedMesh = VoxelMesh.Build(data.GetData(), data.UnitLength, useUV); data.Dispose(); }
public void setupVoxelize() { cleanUpVoxel(); treeObject.SetActive(false); voxelTree = new GameObject(); voxelTree.name = "Voxel Tree"; voxelTree.transform.position = SCData.rootPos * SCData.scaleFactor; voxelTree.transform.localScale = SCData.scaleFactor * Vector3.one; MeshRenderer renderer = voxelTree.AddComponent <MeshRenderer>(); renderer.material = new Material(Shader.Find("Standard")); renderer.material.color = SCData.branchColor; MeshFilter filter = voxelTree.AddComponent <MeshFilter>(); filter.mesh = new Mesh(); var data = GPUVoxelizer.Voxelize( voxelizer, treeObject.GetComponent <MeshFilter>().mesh, SCData.resolution, true); filter.sharedMesh = VoxelMesh.Build(data.GetData(), data.UnitLength, false); data.Dispose(); }
private void CreateVoxelizedMesh() { selectedObject = (Selection.activeObject != null) ? (GameObject)Selection.activeObject : null; Mesh mesh; MeshFilter meshFilter = selectedObject.GetComponent <MeshFilter>(); if (meshFilter != null) { mesh = meshFilter.sharedMesh; } else { mesh = selectedObject.GetComponent <SkinnedMeshRenderer>().sharedMesh; } List <Voxel_t> voxels; CPUVoxelizer.Voxelize( mesh, // a target mesh resolution, // # of voxels for largest AABB bounds out voxels, out float unit ); // build voxel cubes integrated mesh GameObject parent = new GameObject("Voxelized"); parent.AddComponent <MeshRenderer>(); parent.GetComponent <MeshFilter>().sharedMesh = VoxelMesh.Build(voxels.ToArray(), unit, useUv); }
private void CreatePreview() { GPUVoxelData data = GPUVoxelizer.Voxelize(shader, selectedMesh, resolution, false, false); previewMesh = VoxelMesh.Build(data.GetData(), data.UnitLength, true); selectedVoxelInfo = BuildVoxInfo(data.GetData(), data.UnitLength); CreatePreviewPalette(); }
Mesh Voxelize(Mesh source) { List <Voxel_t> voxels; float size; CPUVoxelizer.Voxelize(source, resolution, out voxels, out size, surfaceOnly); return(VoxelMesh.Build(voxels.ToArray(), size)); }
public void Build() { mesh = new VoxelMesh(generator.GetVoxels()); mesh.Transform = this.Transform; mesh.Build(); Renderer renderer = (Renderer)AddComponent <Renderer>(ComponentType.Renderer); renderer.mesh = mesh; }
void Start() { var filter = GetComponent <MeshFilter>(); var data = GPUVoxelizer.Voxelize(voxelizer, source, resolution); var voxels = data.GetData(); filter.sharedMesh = VoxelMesh.Build(voxels, data.UnitLength); data.Dispose(); }
void Start() { List <Voxel_t> voxels; float unit; CPUVoxelizer.Voxelize(mesh, resolution, out voxels, out unit); var filter = GetComponent <MeshFilter>(); filter.sharedMesh = VoxelMesh.Build(voxels.ToArray(), unit, useUV); }
public void Build() { Voxel[,,] voxels = new Voxel[gridSize.X, gridSize.Y, gridSize.Z]; //Update Data foreach (ModelVoxel v in modelVoxels) { v.color = modelColors.Where(x => x.name == v.colorName).FirstOrDefault().color; v.colorName = string.Empty; voxels[v.position.X, v.position.Y, v.position.Z] = new Voxel(new Vector3Int(v.position.X, v.position.Y, v.position.Z), v.color); } modelColors = null; mesh = new VoxelMesh(voxels); mesh.Build(); }
public void InitMeshVoxelizer() { var mesh = SampleMesh(); if (mesh == null) { return; } //defaultMesh = mesh; //defaultMaterial =this.spawnObj.GetComponent<MeshRenderer>().sharedMaterial; Bounds fireBounds = this.mediator.bounds; Bounds spawnBounds = this.spawnObj.GetComponent <Renderer>().bounds; //Debug.Log("box min: " + this.mediator.bounds.min); //Debug.Log("box center: " + this.mediator.bounds.center); //Debug.Log("box size: " + this.mediator.bounds.size); //Debug.Log("spawn box center: " + spawnBounds.center); //Debug.Log("spawn box min: " + spawnBounds.min); //Debug.Log("spawn box max: " + spawnBounds.max); //Debug.Log("spawn box extends: " + spawnBounds.extents); //Debug.Log("spawn box size: " + spawnBounds.size); //Debug.Log("spawn mesh box center: " + mesh.bounds.center); //Debug.Log("spawn mesh box size: " + mesh.bounds.size); this.SetObjectCenter(); this.SetObjectRadius(); numOfVoxels = Mathf.ClosestPowerOfTwo(this.mediator.fluidSimulator3D.m_width); this.gpuVoxelizer = new GPUVoxelizer(); this.gpuVoxelizer.InitVoxelization(mesh, this.mediator.bounds, numOfVoxels); this.voxelsInBounds = gpuVoxelizer.Voxelize(voxelizer, mesh, this.spawnObj.transform, true); this.GetComponent <MeshFilter>().sharedMesh = VoxelMesh.Build(this.voxelsInBounds.GetData(), this.voxelsInBounds.UnitLength, true); //Debug.LogFormat("!!!!!!!!!!!!!!!!!!!!! Num of triangles: {0}", mesh.triangles.Length); }