public void generateMeshes() { bool meshIsOnMap = false; OpenSimplexNoise n = new OpenSimplexNoise(openSimplexNoiseSeed); for (int i = 0; i < meshesOriginPointGrid.Count; i++) { lock (meshesLock) { foreach (Mesh mesh in meshes) { meshIsOnMap = false; if (mesh.originPoint == meshesOriginPointGrid[i]) { meshIsOnMap = true; break; } } } if (!meshIsOnMap && (meshesOriginPointGrid[i] - camera.Position).Length < (float)meshSize * renderDistance) { Mesh meshToAdd = new Mesh(meshResolution, meshSize, meshesOriginPointGrid[i], new Vector3(1.0f, 1.0f, 1.0f), shader, normalsShader); meshToAdd.generateMesh(); float[] noiseValues = n.getNoise(meshToAdd.getVertices(), 0.5f); meshToAdd.applyNoise(noiseValues); meshesToAdd.Add(meshToAdd); } } meshesOriginPointGrid.Clear(); }
public void MeshGenerationResolutionOneVertices() { Vector3[] actualVertices = new Vector3[4] { new Vector3(0f, 0f, 0f), new Vector3(2f, 0f, 0f), new Vector3(0f, 0f, 2f), new Vector3(2f, 0f, 2f) }; mesh = new PracaInzynierska.Mesh(1, 2, new Vector3(0, 0, 0), new Vector3(0, 0, 0)); mesh.generateMesh(); Assert.Equal(actualVertices, mesh.getVertices()); }
public void MeshGenerationResolutionTwoIndices() { //Tested working data uint[] actualIndices = new uint[24] { 4, 3, 1, 3, 0, 1, 5, 4, 2, 4, 1, 2, 7, 6, 4, 6, 3, 4, 8, 7, 5, 7, 4, 5 }; mesh = new PracaInzynierska.Mesh(2, 2, new Vector3(0, 0, 0), new Vector3(0, 0, 0)); mesh.generateMesh(); Assert.Equal(actualIndices, mesh.getIndices()); }