HAMLAT follows the context-sensitive behavior of Blender by only displaying the hepatic editing panel when a polygonal mesh object is selected. In the future, this panel may be duplicated to support hepatic modeling for other object types, such as NURB surfaces.
The blender framework offers many user-interface components (e.g., buttons, sliders, pop-up menus) which may be used to edit the underlying data structures. The hepatic properties for mesh objects are editable using sliders or by entering a float value into a text box located adjacent to the slider. When the value of the slider/text box is changed, it triggers an event in the blender windowing a unique identifier indicates he first pass renders the scene graphically, and the second pass renders it hectically. The second pass is required because the Open Hepatics toolkit intercepts commands send to the OpenGL pipeline and uses them to display the scene using hepatic rendering techniques. In this pass, the hepatic properties of each mesh object are used much in the same way color and lighting are used by graphical rendering they define the type of material for each object. To save CPU cycles, the lighting and graphical material properties are excluded from the hepatic rendering pass.
Figure 7 shows source code which is used to apply the material properties during the hepatic rendering pass. The hepatic rendered is independent from the Blender framework in that it exists outside the original source code. However, it is still heavily dependent on Blender data structures and types.
D. Scripting
The Blender Python (By) wrapper exposes many of the internal data structures, giving the internal Python scripting engine may access them. Similar to the data structures used for representing mesh objects in the native Blender framework, wrappers allow user defined scripts to access and modify the elements in a 3D scene.
An import script allows 3D scenes to be read from a HAML file and reproduced in the HAMLAT application; an export script allows 3D scenes to be written to a HAML file, including hepatic properties, and used in other HAML applications.
The By wrappers also expose the Blender windowing system. Figure 9 shows a panel which appears when the user exports a 3D scene to the HAML file format. It allows the user to specify supplementary information about the application such as a description, target hardware, and system requirements. These are fields defined by the HAML specification [2] and are included with the authored scene as part of the HAML file format. User-interface components displayed on this panel are easily extended to agree with the future revisions of HAML.
Currently, HAMLAT supports basic functionality for modeling and rendering hippo-visual applications. Scenes may be created, edited, previewed, and exported as part of a database for use in by other hap to-visual applications, such as the HAML player [6]. However, there is room for growth and in there are many more ways we can continue leveraging existing blender functionality. As per future work, we plan to extend HAMLAT to include support for other hepatic platforms and devices. Currently, only the PHANTOM series of devices is supported since the interactive rendered is dependent on the Open Hepatics toolkit [5]. In order to support other devices, a cross-platform library such as Chai3D or hatpin may be used to perform