From b8cb1ca97aab0b8ce1ff6d878690b881cdf4d2bc Mon Sep 17 00:00:00 2001 From: JR-Morgan <45512892+JR-Morgan@users.noreply.github.com> Date: Thu, 2 Dec 2021 13:23:29 +0000 Subject: [PATCH] Experimenting with texture-coordinate conversion --- .../ConverterUnity.Geometry.cs | 156 +++++++++++------- .../Speckle Connector/Core/SpeckleCore2.dll | Bin 231424 -> 231936 bytes Assets/Speckle Connector/Objects/Objects.dll | Bin 255488 -> 258560 bytes 3 files changed, 95 insertions(+), 61 deletions(-) diff --git a/Assets/Speckle Connector/ConverterUnity.Geometry.cs b/Assets/Speckle Connector/ConverterUnity.Geometry.cs index a55207d..4682c0b 100644 --- a/Assets/Speckle Connector/ConverterUnity.Geometry.cs +++ b/Assets/Speckle Connector/ConverterUnity.Geometry.cs @@ -4,13 +4,13 @@ using System.Collections.Generic; using System.Linq; using System.Reflection; using Objects.Other; -using Objects.Primitive; using Speckle.ConnectorUnity; using Speckle.Core.Models; using UnityEditor; using UnityEngine; + using Mesh = Objects.Geometry.Mesh; -using Object = UnityEngine.Object; +using SColor = System.Drawing.Color; namespace Objects.Converter.Unity { @@ -57,14 +57,14 @@ namespace Objects.Converter.Unity /// /// /// - public Vector3[] ArrayToPoints(IEnumerable arr, string units) + public Vector3[] ArrayToPoints(IList arr, string units) { - if (arr.Count() % 3 != 0) throw new Exception("Array malformed: length%3 != 0."); + if (arr.Count % 3 != 0) throw new Exception("Array malformed: length%3 != 0."); - Vector3[] points = new Vector3[arr.Count() / 3]; - var asArray = arr.ToArray(); - for (int i = 2, k = 0; i < arr.Count(); i += 3) - points[k++] = VectorByCoordinates(asArray[i - 2], asArray[i - 1], asArray[i], units); + Vector3[] points = new Vector3[arr.Count / 3]; + + for (int i = 2, k = 0; i < arr.Count; i += 3) + points[k++] = VectorByCoordinates(arr[i - 2], arr[i - 1], arr[i], units); return points; @@ -109,53 +109,62 @@ namespace Objects.Converter.Unity /// - /// Converts a Speckle mesh to a GameObject with a mesh renderer + /// Converts the component on into a Speckle /// - /// - /// + /// The Unity to convert + /// The converted , if no on exists public Mesh MeshToSpeckle(GameObject go) { //TODO: support multiple filters? var filter = go.GetComponent(); - if (filter == null) + if (filter == null) return null; + + var nativeMesh = filter.mesh; + + var nTriangles = nativeMesh.triangles; + List sFaces = new List(nTriangles.Length * 4); + for (int i = 2; i < nTriangles.Length; i += 3) { - return null; + sFaces.Add(0); //Triangle cardinality indicator + + sFaces.Add(nTriangles[i]); + sFaces.Add(nTriangles[i - 1]); + sFaces.Add(nTriangles[i - 2]); } - //convert triangle array into speckleMesh faces - List faces = new List(); - int i = 0; - //store them here, makes it like 1000000x faster? - var triangles = filter.mesh.triangles; - while (i < triangles.Length) + var nVertices = nativeMesh.vertices; + List sVertices = new List(nVertices.Length * 3); + foreach (var vertex in nVertices) { - faces.Add(0); + var p = go.transform.TransformPoint(vertex); + sVertices.Add(p.x); + sVertices.Add(p.y); + sVertices.Add(p.z); + } + + var nColors = nativeMesh.colors; + List sColors = new List(nColors.Length); + sColors.AddRange(nColors.Select(c => c.ToIntColor())); - faces.Add(triangles[i + 0]); - faces.Add(triangles[i + 2]); - faces.Add(triangles[i + 1]); - i += 3; + var nTexCoords = nativeMesh.uv; + List sTexCoords = new List(nTexCoords.Length * 2); + foreach (var uv in nTexCoords) + { + sTexCoords.Add(uv.x); + sTexCoords.Add(uv.y); } var mesh = new Mesh(); // get the speckle data from the go here // so that if the go comes from speckle, typed props will get overridden below AttachUnityProperties(mesh, go); - + + mesh.vertices = sVertices; + mesh.faces = sFaces; + mesh.colors = sColors; + mesh.textureCoordinates = sTexCoords; mesh.units = ModelUnits; - var vertices = filter.mesh.vertices; - foreach (var vertex in vertices) - { - var p = go.transform.TransformPoint(vertex); - var sp = PointToSpeckle(p); - mesh.vertices.Add(sp.x); - mesh.vertices.Add(sp.y); - mesh.vertices.Add(sp.z); - } - - mesh.faces = faces; - return mesh; } #endregion @@ -181,7 +190,7 @@ namespace Objects.Converter.Unity } /// - /// Converts a Speckle point to a GameObject with a line renderer + /// Converts a Speckle to a with a /// /// /// @@ -189,13 +198,13 @@ namespace Objects.Converter.Unity { Vector3 newPt = VectorByCoordinates(point.x, point.y, point.z, point.units); - var go = NewPointBasedGameObject(new Vector3[2] { newPt, newPt }, point.speckle_type); + var go = NewPointBasedGameObject(new Vector3[] { newPt, newPt }, point.speckle_type); return go; } /// - /// Converts a Speckle line to a GameObject with a line renderer + /// Converts a Speckle to a with a /// /// /// @@ -208,31 +217,31 @@ namespace Objects.Converter.Unity } /// - /// Converts a Speckle polyline to a GameObject with a line renderer + /// Converts a Speckle to a with a /// /// /// public GameObject PolylineToNative(Polyline polyline) { - var points = polyline.points.Select(x => VectorFromPoint(x)); + var points = polyline.GetPoints().Select(VectorFromPoint); var go = NewPointBasedGameObject(points.ToArray(), polyline.speckle_type); return go; } /// - /// Converts a Speckle curve to a GameObject with a line renderer + /// Converts a Speckle to a with a /// /// /// public GameObject CurveToNative(Curve curve) { var points = ArrayToPoints(curve.points, curve.units); - var go = NewPointBasedGameObject(points.ToArray(), curve.speckle_type); + var go = NewPointBasedGameObject(points, curve.speckle_type); return go; } - + public GameObject MeshToNative(Base speckleMeshObject) { if (!(speckleMeshObject["displayMesh"] is Mesh)) @@ -242,11 +251,11 @@ namespace Objects.Converter.Unity speckleMeshObject["renderMaterial"] as RenderMaterial, speckleMeshObject.GetMembers()); } /// - /// Converts a Speckle mesh to a GameObject with a mesh renderer + /// Converts to a with a /// /// Mesh to convert - /// If provided will override the renderMaterial on the mesh itself - /// If provided will override the properties on the mesh itself + /// If provided, will override the renderMaterial on the mesh itself + /// If provided, will override the properties on the mesh itself /// public GameObject MeshToNative( Mesh speckleMesh, RenderMaterial renderMaterial = null, @@ -257,10 +266,10 @@ namespace Objects.Converter.Unity { return null; } - + var recenterMeshTransforms = true; //TODO: figure out how best to change this? - + speckleMesh.AlignVerticesWithTexCoordsByIndex(); var verts = ArrayToPoints(speckleMesh.vertices, speckleMesh.units); @@ -270,15 +279,17 @@ namespace Objects.Converter.Unity // TODO: Check if this is causing issues with normals for mesh while (i < speckleMesh.faces.Count) { - if (speckleMesh.faces[i] == 0) + int n = speckleMesh.faces[i]; + if (n < 3) n += 3; // 0 -> 3, 1 - > 4 + + if (n == 3) { //Triangles tris.Add(speckleMesh.faces[i + 1]); tris.Add(speckleMesh.faces[i + 3]); tris.Add(speckleMesh.faces[i + 2]); - i += 4; } - else + else if (n == 4) { //Quads to triangles tris.Add(speckleMesh.faces[i + 1]); @@ -288,12 +299,16 @@ namespace Objects.Converter.Unity tris.Add(speckleMesh.faces[i + 1]); tris.Add(speckleMesh.faces[i + 4]); tris.Add(speckleMesh.faces[i + 3]); - - i += 5; } + else + { + //TODO n-gon triangulation, for now n-gon faces will be ignored + + } + + i += n + 1; } - var go = new GameObject { name = speckleMesh.speckle_type }; var mesh = new UnityEngine.Mesh { name = speckleMesh.speckle_type }; @@ -322,18 +337,37 @@ namespace Objects.Converter.Unity verts[l] -= meshBounds.center; } } - - - - + mesh.SetVertices(verts); mesh.SetTriangles(tris, 0); - if (speckleMesh.bbox != null) + //Set texture coordinates + bool hasValidUVs = speckleMesh.TextureCoordinatesCount == speckleMesh.VerticesCount; + if(speckleMesh.textureCoordinates.Count > 0 && !hasValidUVs) Debug.LogWarning($"Expected number of UV coordinates to equal vertices. Got {speckleMesh.TextureCoordinatesCount} expected {speckleMesh.VerticesCount}. \nID = {speckleMesh.id}", mesh); + + if (hasValidUVs) { + var uv = new List(speckleMesh.TextureCoordinatesCount); + for (int j = 0; j < speckleMesh.TextureCoordinatesCount; j++) + { + var (u, v) = speckleMesh.GetTextureCoordinate(j); + uv.Add(new Vector2((float)u,(float)v)); + } + mesh.SetUVs(0, uv); + } + else if (speckleMesh.bbox != null) + { + //Attempt to generate some crude UV coordinates using bbox var uv = GenerateUV(verts, (float)speckleMesh.bbox.xSize.Length, (float)speckleMesh.bbox.ySize.Length).ToList(); mesh.SetUVs(0, uv); + } + //Set vertex colors + if (speckleMesh.colors.Count == speckleMesh.VerticesCount) + { + static Color ToUnityColor(SColor color) => new Color(color.R, color.G, color.B, color.A); + var colors = speckleMesh.colors.Select(c => ToUnityColor(SColor.FromArgb(c))).ToList(); + mesh.SetColors(colors); } // BUG: causing some funky issues with meshes diff --git a/Assets/Speckle Connector/Core/SpeckleCore2.dll b/Assets/Speckle Connector/Core/SpeckleCore2.dll index aa3c8019a8462c23f6c0a39aedc6751993081a50..ced387d55c1dd347853008368a9add5fa77c1d90 100644 GIT binary patch literal 231936 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
LpzcQlO5kn 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