It was discovered through play that by wrapping the outlying vertices of a group of tessellated Rhombic Dodecahedra with a convex hull, an approximation of a Truncated Octahedron was produced. Upon further investigation, it was discovered that an approximation of a Rhombic Dodecahedron emerged by wrapping the outlying vertices of a group of tessellated Truncated Octahedra with a convex hull.
A space-filling polyhedron is one that can be used to generate a tessellation in space. That means that by duplicating and translating (not rotating) the shape, we can create a three-dimensional tiling that leaves no gaps between its constituent shapes. This is of course easy to visualize with a cube; things begin to get both messy and interesting when you explore tessellations with other non-platonic space-filling shapes. And so began my brief but exciting journey into the lands of the Rhombic Dodecahedron.
In Unity projects, especially for newcomers, creating a smooth camera action can be especially frustrating (it has always been frustrating for me). A camera script feels like it should be a simple piece of code, and generally, it can be - if you know the right API calls to make and how they work. This post describes the process of creating a simple, free-floating, lerping camera.
In the last technical post about the Icosphere, we designed and employed a Coupled Ring Search to detect the observation region. This is the region that we will break down into descendant triangles when the observer draws near enough – and eventually, pack back up into ancestor triangles when the observer retreats far enough.
We now have all of the information we need to harvest our mesh data from the Abstract Icosphere. We will begin with a simple Awake() method, which Unity will run before all else on program start. This awake method will initialize the icosphere, acquisition the Mesh from the Game Object to which this script is attached, initialize a few other variables which we'll come to later, and call our heavier methods, HarvestMeshData and CreateMesh.
Now that we have a basic unit Icosahedron, consisting of twenty indexed Triangle objects, all of which have adjacency knowledge, we are ready to begin recursing the faces of our Icosahedron to form an Icosphere. The recursing of the Icosphere would be a relatively simple task were it not for the fact that our triangles must maintain Adjacency data at all times. Maintaining adjacency data would also not be too daunting a task, were it not for the fact that we are planning on asymmetrically recursing this Icosphere.
In this post, we would like to use our atomic icospherical building block, the Triangle, to build up the basic Icosahedron, which is an icosphere of recursive depth zero.