vertices, or perhaps a re-meshing algorithm to "cleanup" redundant vertices and transform from a quad to a triangle topology. The data is visualized using a graphical 3D rendered which is capable of displaying the object as a wireframe or as a shaded, solid surface. The visualization is necessary in order to see the effects of editing on the data. In a nutshell, this example defines the design philosophy behind blender's architecture.
In blender, data is organized as a series of lists and base data types are combined with links between items in each list, creating complex scenes from simple structures. This allows data elements in each list to be reused, thus reducing the overall storage requirements. For example, a mesh may be linked by multiple scene objects, but the position and orientation may change for each object and the topology of the mesh remains the same. A diagram illustrating the organization of data structures and reuse of scene elements is shown in Figure 2. A scene object links to three objects, each of which link to two polygonal meshes. The meshes also share a common material property. The entire scene is rendered on one of several screens, which visualizes the scene.
We adopt the Blender design approach for our authoring tool. The data structures which are used to represent objects in a 3D scene have been augmented to include fields for hepatic properties (e.g., stiffness, damping); user interface components (e.g., button panels) which allow the modeler to change object properties have also been updated to include support for modifying the hepatic properties of an object. Additionally, an interactive hippo-visual rendered has been implemented to display the 3D scene graphically and hectically, providing the
modeler or artist with immediate feedback about the changes they make to the scene.
A class diagram outlining the changes to the blender frame work is shown in Figure 3. Components which are pertinent to HAMLAT are shaded in gray. HAMLAT builds on existing blender sub-systems by extending them for hepatic modeling purposes. The tactile and kinesthetic cues, which are displayed due to interaction with virtual objects, are typically rendered based on the geometry of the mesh. in this data type. Other scene components such as lamps, cameras, or lines are not intuitively rendered using force feedback hepatic devices and are therefore not of current interest of chaotic rendering.
An augmented version of the mesh data structure is shown in Figure 4. It contains fields for vertex and face data, plus some special custom data fields which allow data to be stored to/retrieved from disk and memory. We have modified this data type to include a pointer to a hepatics data structure, which stores hepatic properties such as stiffness, damping, and friction for the mesh elements (Figure 5).
Similarly to the built-in graphical rendered, HAMLAT uses a custom rendered for displaying 3Ds scenes graphical and hap call, and is in end of the connectivity is given in the next section.
IMPLEMENTATION
Data Structure
Blender uses many different data structures to represent the various types of objects in a 3D scene a polygonal mesh contains the location and topology of vertices;