A central concept of the EON system is the use of a resource database to facilitate sharing and instancing of geometry and texture data. As with so many other facets of EON, the database is simply a branch of the simulation tree. This means that you can organize the structure of this subtree as needed. The Group node is used to group all resources in the scene.
||Beneath this Group node, three resource groups are inserted: Materials, Textures, and Meshes. Whereas the Materials group is headed by an ordinary Group node, the other two resource groups use special nodes because additional custom fields are needed for each.
Making the Resource Visible
The nodes in the resource database tree are not visible until they are used by the Shape node. The Shape node combines a material (ShaderMaterial) and a geometry (Mesh2) to form a visible 3D object in the application. This structure creates a very powerful arrangement in which you can intermix different materials and meshes. For example, you can create five chairs of the same shape but different colors—or five different chairs with the same material setup. Furthermore, this system saves memory resources and downloading time because the application can share mesh and texture data.
Texture and Materials Basics
Textures and materials make up the overall appearance of an object mesh or wireframe. Surfacing
is a term used to describe the actions that affect the appearance of a finished geometry when rendered. Surfacing consists of two layers. The first layer is called the material
, and every object must have a material applied. They provide surface properties like diffuse color
(the main color), opacity
(transparency), reflectivity, roughness, specularity
(highlights), and other less significant properties.
The term material comes from the idea that you can set an object’s properties to create the illusion that an object is made of some recognizable material such as metal, glass, wood, or plastic. However, the material is actually a specific combination of parameter values. Whether the object looks like it is made from a real material or something never seen before does not matter.
The material definition
is the set of values that are applied uniformly over the entire surface. To create variations in the material on a surface like you see in real world materials, you will need to add a second layer in the surfacing process. This layer is referred to as the map
refers to an object’s physical surface characteristics and perceptibility: meaning the look and feel of the surface. To create variation within a surface, you must apply a texture (or map) on top of the material. Textures laid on top of materials give objects complicated colors and other effects. A single object covered with a material can have several textures. For example, a round object with a gray material could have an image texture of stone. This texture could make the stone look bumpy, or it might make the stone deform in different ways. Textures are very powerful tools, and layering them can create a variety of interesting effects. Often, the texture layer on the surface completely obscures the underlying material layer. The layer approach allows you to blend a texture with the underlying material. An underlying material value is always present—whether you see it or not—and then a texture is applied on top. Bump maps are an exception to this since no underlying material is used with a bump map.
A mesh resource node contains the definition of a 3D model, but not the appearance (which is stored in the material resource node). When an importer creates the resource database from a 3D file, it will create a mesh node for each 3D object found in the file, store the 3D mesh data in a separate file, and then make the node reference this file.
Textures are stored in a similar way. However, unlike textures, the mesh data file (which has the extension .eog) can be read and used only in EON applications. Normally, the node and its associated mesh data file are treated as one entity because the file is embedded in the simulation file. However, sometimes it is useful to extract the mesh data file and store it somewhere else, preferably on a server. This enables the simulation to start and run immediately while the mesh data file (which can be huge) is streamed down from a server in the background. When it is downloaded, it will be initialized and loaded into the simulation window.
To reduce the need for data storage, you can compress a mesh and reduce its polygon count. This compression is like JPEG image compression, in which you trade precision and quality for smaller data size. Whereas polygon reduction means you actually reduce the number of polygons building up a mesh.