For more than a decade and a half Okino
Computer Graphics has been dedicated to the task of developing an advanced,
photo-realistic 3D graphics toolkit with the power and flexibility of many of the current well known 3D packages. Such a toolkit
would allow third-party software developers to quickly integrate advanced 3d rendering
capabilities into their own software packages, thus alleviating the added expense of
developing such technology in-house. The toolkit would be flexible, powerful, machine
independent, and above all, fast and memory efficient.
Speed, memory efficiency, features and flexibility have been the
main driving forces behind the evolution of the NuGraf toolkit since its inception. A short history of the toolkit's evolution can be read at the end of this document.
Seeing that the IBM PC line of computers would become popular in the
90s for 3d rendering applications, all early code development of the toolkit was
optimized for efficient execution and memory usage on IBM 286 processors, all while
the code was being developed on Silicon Graphics workstations. This has resulted
in a 3d renderer capable of producing high-quality, photo-realistic images on modern
Pentium machines in less than 1 minute and with minimal memory requirements.
During its earlier days development of the
toolkit was focused on incorporating database capabilities, a flexible C
communications interface and components that would allow complex 3d stand-alone
applications to be created entirely using the toolkit. In order to verify the completeness
and functionality of the toolkit, and to verify that the toolkit could indeed create new
3d applications from the ground-up, Okino Computer Graphics began development of NuGraf
for Microsoft Windows in 1993; this program has matured to
become an award winning visualization and rendering program used in the CAD/CAM, AEC,
engineering and product visualization markets; a full demonstration version is available
on Okinos Internet WEB site. NuGraf relies entirely on the NuGraf toolkit for rendering, database
management, scene management, instance & polygon picking/selecting, tree
walking, image I/O and file I/O. This program has verified the completeness of the
toolkit and is used daily to test and verify new components added to the toolkit. Please
note that the geometry import/export capabilities of NuGraf (which
are referred to as the PolyTrans converters) are not included in the NuGraf
Developers 3D Toolkit.
Markets and Pricing of the NuGraf Developers 3D Toolkit
The NuGraf Developers 3D Toolkit is targeted at third
party software developers who wish to quickly and cost-effectively integrate 3d
photo-realistic rendering capabilities into their own software packages. Such software
packages include CAD packages, furniture visualization programs, modelers, architectural
visualization programs, medical and engineering analysis programs, or any program using a
realtime, low quality renderer such as OpenGL or DirectX.
Okino Computer Graphics has chosen to structure its licensing and
royalties to be flexible and to provide low entry cost solutions to small and medium size
development companies. Licensing of equivalent software from other 3d rendering toolkit
vendors typically require non-royalty upfront fees of $20k to $25k and per-unit royalties
of $50 to $500; in comparison the upfront license fee for the NuGraf Developers 3D
Toolkit is priced between $5000 and $15000, and the per-unit royalties are in the $10 to
$45 range based on an applications minimum resell price (dealer price) of $250 and
the number of units pre-paid.
Microsoft Windows Development System License
A development system license grants the right to
compile, link and run applications with the NuGraf Developer's 3D Toolkit libraries
on one licensed machine (or network seat). The development license includes reference
documentation, media and a 60 day warranty period. This license does not grant the right
to redistribute any portion of the NuGraf Developer's 3D Toolkit, whether it is provided
as a dynamically linkable module or as a linked-in component of an application program.
Each distribution comes complete with:
Compiled object code libraries for the NuGraf toolkit, TIFF
image library and JPEG image library.
Online documentation in Windows Help format.
Source code to a complete Microsoft Windows test application
program.
Source code to a text-based, machine-independent demo program which
allows various renderer attributes to be set and 14 example 3d scene files (with source
code) to be executed.
Source code to the 4 tutorials sections of the documentation.
Source code to all examples and inquiry code snippets from the NuGraf
Reference Manual.
Source code to the Windows output video
drivers (version dependent).
14 color map files.
A large texture image library of over 80 images in TIFF and JPEG
format.
A color names database with over 500 entries.
The NuGraf toolkit error message file with over 1000 entries.
A hardware dongle for Windows-based versions of the toolkit.
The hardware dongle is only necessary during the development phase
of using the NuGraf toolkit; it will allow the renderer and toolkit to run without
limitations. Once the royalty prepayments have been made then the dongle will no longer be
necessary and may be returned to Okino Computer Graphics for a partial refund.
NuGraf Toolkit Development 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
solution for existing application programs requiring the added benefits of high-quality,
photo-realistic scanline rendering.
The "3D Integrator, Advanced" version is
Okinos 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 applications
data space rather than have it copied into the renderers local data space between
subsequent renderings. It is a significant feature of the "Advanced" version of
the "3D Integrator".
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. Currently supported formats include Amiga IFF,
BMP, CEL (3D Studio r4), Electric Image, FLIC, GIF, JPEG, PhotoShop PSD, PPM, TARGA, TIFF,
SoftImage PIC and SGI RGB. Some formats are read or write only.
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).
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 Okinos NuGrafsoftware.
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.
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 NuGrafs 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).