RenderMonkey™ Toolsuite - SDK
SDK Overview
One of the original design goals for RenderMonkey was
to empower developers by providing a tool that was flexible
and that wouldn't impose any specific methodology. It
is our belief that the developers understand their
own workflow and
their needs much better than we ever will. We also wanted
to ensure that developers were able to innovate on
top of the
RenderMonker framework and weren't relying on ATI to
provide any specific functionality. The key to unlocking
all this extra
flexibilty is the RenderMonkey SDK. The SDK allows for
the creation of custom plug-ins - which can be developed
independently from the main RenderMonkey application
and simply dropped in
as needed.
To ensure that the SDK was truly useful - and not just
a check box feature, we
adopted the "eat your own dog food" approach to development and used it in the
development of all of the plugin modules that ship with RenderMonkey. Developers
should easily be able to replicate or extend any of the current functionality
through the same interface.
In addition to allowing developers to create custom plug-ins to solve unanticipated
problems specific to their projects, the SDK also provides a mechanism for ATI
to update specific components independent
from the main release cycle.
- What does the SDK enable developers to do?
- Use your application’s / engine’s data scripts to import /
export directly to / from RenderMonkey
- Create custom GUI editors
- Generate data procedurally (geometry objects, texture, effects)
- Create custom geometry and texture loaders to support custom formats.
- In addition to providing a standard interface to RenderMonkey, the SDK ships
with the following additional functionality:
- Win32 and MFC widget libraries that can be used to maintain the look and
feel of the application.
- An efficient STL-like library for managing data in familiar data
structures such as linked lists, vectors, and strings (supporting both Unicode
and ASCII).
- Math helper functions and classes
- Scene graph mesh management
- Image loading and an integrated image management library.
Example Plug-ins
- The following example plugins ship with the SDK:
- Scalar editor – used
for editing scalar variables
- Color editor – used for
editing color variables
- HLSL Shader editor – edit
HLSL shaders
- Texture
Object Editor – edit texture objects, setup texture stages
and relevant texture and sampler states
- RenderMonkey workspace package exporter (exports any RenderMonkey workspace
with all of its textures and models into a single zip file for distribution)
- Procedural texture generator (using HLSL for texture function specification)
- Procedural geometry generator:
- Generate basic geometric shapes (cube, sphere, etc)
- Generate degenerate edge quads for your models – and use them
for shadow volumes, fur fins, etc.
- And many more ...
- SDK Requirements
- Windows XP
- Visual Studio 2005
- Win32 and/or MFC for GUI development
- DirectX 9.1 SDK
The SDK is written in vanilla C++. Please refer to the sample projects included
with the SDK for examples of both MFC and Win32 plug-ins. Certain SDK projects require DirectX 9.1 SDK for development.
Creating a new plug-in
To factilitate the creation of new plug-ins, RenderMonkey ships with an SDK project
wizard - which can be launched from the main RenderMonkey application to create
a template for a new plug-in project. The plug-in wizard is found on the
Help menu and offers the developer a choice of available plugin types. Simply
select the appropriate type,
type the name for your project and click "OK". The RenderMonkey IDE will automatically generate source code and project files for Visual Studio 2005 in the directory {RenderMonkey Install Dir}/SDK/Projects/ .
Alternatively, you can use one of the examples for each plug-in type that
RenderMonkey supports (found in the SDK/Examples directory) and you are ready
to create one of your own monkeys.
Plug-in Types
|
IRmPlugIn
Generic RenderMonkey plug-in interface designed to receive main communication
messages from the main application and to specify a property page dialog
for main application. |
- IRmPlugIn
Generic RenderMonkey plug-in interface designed to receive main communication
messages from the main application and to specify a property page dialog
for main application.
- IRmEditorPlugIn
A node editor plug-in. This plug-in is used by the main application to edit nodes supported by this plug-in.
- IRmImporterPlugIn
A plug-in implementing this interface is used by the main application to import data from external formats into the run-time database.
- IRmExporterPlugIn
A plug-in implementing this interface is used by the main application to export data from the run-time database into an external format.
- IRmGeometryLoaderPlugIn
This plug-in type is used by the main application to import geometry data from a supported file format into RenderMonkey model data node.
- IRmTextureLoaderPlugIn
This plug-in type is used by the main application to import texture data from a supported file format into RenderMonkey texture data node.
- IRmGeneratorPlugIn
This plug-in type is used by the main application to generate data for a RenderMonkey node.
- SDK Documentation:
|