Differences Between the "3D Integrator" and "Application Builder" Versions
The NuGraf Developer's 3D Toolkit is available to
developers in three levels of complexity and functionality:
The "3D Integrator, Standard" version is
an ideal entry-level solution for existing application programs requiring the added
benefits of high-quality, photo-realistic scanline rendering.
The "3D Integrator, Advanced" version is
Okino's recommended solution for existing application programs requiring full ray trace
and scanline rendering capabilities. This version also includes the complex "user
defined" geometry callback mechanism which allows the host program to store the
geometry database in its local memory space rather than have a copy sent to the toolkit.
The "Application Builder" version is ideal
solution for developers who wish to develop a complete 3D application program based
entirely on the NuGraf toolkit. Significant features include full scene load and save
capabilities, a hierarchical picking mechanism, a hierarchical database walker and the
ability to define and maintain multiple scenes at the same time.
The "3D Integrator, Advanced" version has
all the features of the "3D Integrator, Standard" version in
addition to the following extended features:
The multi-threaded ray tracer with preview ray tracing capability.
Provides true ray tracing, including ray traced shadows (or shadow mapped shadows),
reflections and refraction.
In addition to the 17 basic 3d procedural textures supplied with the
"3D Integrator, Standard" version (burl, bump, chaotic3d, checker, checkerblend,
floor 1, floor2, floor3, hlssweep, marble, marble2, noise, noise3d, randombump, waves,
windy and wood), the "3D Integrator, Advanced" version includes 25 additional 3d
procedural textures (XYZ1, YIQ, blackmarble, chaoticbump, checker2, checkermarble, clouds,
cmy, dfbm, dfbmclouds, grid, his, hsv, marble3, marble4, parquet, patchy, randomcolormix,
rawturbulence, rawturbulence2, rgb, swirl, transition, wild and wildbump).
User-defined callback primitive (Nt_USERDEFINED).
This primitive allows the polygon database to be maintained and stored in the host
application's dataspace rather than have it copied into the renderer's local dataspace
between subsequent renderings.
Custom renderer plug-in interface, including the OpenGL custom
rendering module. This allows the NuGraf 3d database to be rendered using OpenGL with
little programmer involvement.
Host access to the internal NuGraf image loading and saving
sub-library (Ni_Image_Load() and Ni_Image_Save()). These
functions are useful for reading in and viewing image files or for saving out image data
to any of the bitmap formats supported by the toolkit
Ni_Image_Scale() command useful for scaling texture
images quickly (such as for creating MIPmaps for OpenGL).
The "Application Builder" version has all
the features of the "3D Integrator, Advanced" version in
addition to the following extended features:
Scene save & load file routines (BDF file I/O). This extensive
mechanism allows the entire NuGraf database and all attributes (including host
application-specific data) to be saved to and/or loaded from disk. This capability is
crucial to the development of stand-alone applications programs which require database
save/load capabilities and will save an application developer many hundreds of hours of
development time. The "3D Integrator" versions of the toolkit only allows scenes
to be saved to disk (to be used for debugging purposes only).
Figure 13: Selector Window
Hierarchical picking/selection & maintenance mechanism (Ni_Pick()
routine). This ray-casting picking algorithm alleviates application designers from writing
complex object/polygon picking mechanisms. This algorithm also maintains and informs the
host application of the current picking state.
Hierarchical database tree walker algorithm (Ni_Walk_Tree()
routine). This mechanism can be used to create complex scene hierarchy editors, such as
the 'Selector Window' in Okino's NuGraf software; see image snapshot to
the right.
Multiple scenes can be created and maintained via the Ni_Scene_Maintenance()
command.
"Postage Stamp" access routines. These
routines allow small 64x64 postage-stamp images to be created from large texture images
and subsequently used within the host application program or within NuGraf's texture
mapping code.
The Nt_SendPolyData option which allows the internal
polygon rendering pipeline to be diverted and sent to the host application program (useful
for realtime, shaded renderings for an interactive user-interface).