public Mesh Build(MeshSmoothingMethod method, int times = 5, float alpha = 0.2f, float beta = 0.5f) { var mesh = triangulation.Build( (Vertex2D v) => { float z = 0f; if (heightTable.ContainsKey(v)) { z = heightTable[v]; } return(new Vector3(v.Coordinate.x, v.Coordinate.y, -z)); } ); mesh = Symmetrize(mesh); switch (method) { case MeshSmoothingMethod.Laplacian: mesh = MeshSmoothing.LaplacianFilter(mesh, times); break; case MeshSmoothingMethod.HC: mesh = MeshSmoothing.HCFilter(mesh, times, alpha, beta); break; } network = VertexConnection.BuildNetwork(mesh.triangles); return(mesh); }
void UpdateMesh() { mesh.Clear(); mesh.vertices = vertices; mesh.triangles = triangles; MeshSmoothing.LaplacianFilter(mesh, 2); mesh.RecalculateNormals(); GetComponent <MeshCollider>().sharedMesh = mesh; meshRenderer.material = groundMaterial; }
//function for the button to use public void LaplacianSmooth() { if (Times != null) { times = (int)Times.value; } else { times = 1; } filter.mesh = MeshSmoothing.LaplacianFilter(filter.mesh, times); }
void Update() { if (Input.GetKeyDown(KeyCode.L)) { filter.mesh = MeshSmoothing.LaplacianFilter(filter.mesh, times); return; } if (Input.GetKeyDown(KeyCode.H)) { filter.mesh = MeshSmoothing.HCFilter(filter.mesh, times); return; } }
void Start() { var mesh = filter.mesh; filter.mesh = ApplyNormalNoise(mesh); switch (type) { case FilterType.Laplacian: filter.mesh = MeshSmoothing.LaplacianFilter(filter.mesh, times); break; case FilterType.HC: filter.mesh = MeshSmoothing.HCFilter(filter.mesh, times, hcAlpha, hcBeta); break; } }
public void AddSmoothing() { switch (type) { case FilterType.Laplacian: //filter.mesh = MeshSmoothing.LaplacianFilter(deformingMesh, times); deformingMesh = MeshSmoothing.LaplacianFilter(deformingMesh, times); break; case FilterType.HC: //filter.mesh = MeshSmoothing.HCFilter(deformingMesh, times, hcAlpha, hcBeta); deformingMesh = MeshSmoothing.HCFilter(deformingMesh, times, hcAlpha, hcBeta); break; } displacedVertices = deformingMesh.vertices; Debug.Log("Smoothing Teeth activated !!!!!"); Debug.Log("Smoothing Teeth activated !!!!!"); }
void ApplySmoothing() { if (UserMeshVisualizer != null && UserMeshVisualizer.DisableMeshUpdate) { return; } var mesh = filter.mesh; JobHandle normalNoiseJobHandler; if (mesh.vertexCount != 0) { filter.mesh = ApplyNormalNoise(mesh, out normalNoiseJobHandler); switch (Noise.Type) { case FilterType.Laplacian: if (!LimitingMesh) { filter.mesh = MeshSmoothing.LaplacianFilter(filter.mesh, Noise.SmoothingTimes, normalNoiseJobHandler); } else { filter.mesh = MeshSmoothing.LaplacianFilter(filter.mesh, LimitMesh, Noise.SmoothingTimes, normalNoiseJobHandler); } break; case FilterType.HC: if (!LimitingMesh) { filter.mesh = MeshSmoothing.HCFilter(filter.mesh, Noise.SmoothingTimes, Noise.HCAlpha, Noise.HCBeta); } else { filter.mesh = MeshSmoothing.HCFilter(filter.mesh, LimitMesh.LimitedTriangles, Noise.SmoothingTimes, Noise.HCAlpha, Noise.HCBeta); } break; } } Noise.LastUpdateTime = Time.time; }
void Start() { vertexConnection = GetComponent <VertexConnection>(); meshSmoothing = GetComponent <MeshSmoothing>(); meshSmoothing.SetVertexConnection(vertexConnection); //mesh = meshFilter.sharedMesh; mesh = meshFilter.mesh; mesh = ApplyNormalNoise(mesh); switch (type) { case FilterType.Laplacian: mesh = meshSmoothing.LaplacianFilter(mesh, times); break; case FilterType.HC: mesh = meshSmoothing.HCFilter(mesh, times, hcAlpha, hcBeta); break; } }
//function for the button to use public void LaplacianSmooth() { filter.mesh = MeshSmoothing.LaplacianFilter(filter.mesh, times); }
//function for the button to use public void LaplacianSmooth(Mesh currentMesh) { times = (int)Times.value; filter.mesh = MeshSmoothing.LaplacianFilter(currentMesh, times); }