Java Bindings for the RenderMan API

Version 0.92.5


Copyright (C) 1997-2000, Sean Cier (scier@PostHorizon.com)

(The RenderMan API is Copyright 1989 Pixar.
RenderMan (R) is a registered trademark of Pixar)



Introduction
Documentation and links for downloading the package
What's New
Recent changes
Background
Background on RenderMan and the motivation for the Java bindings
Design Considerations
Notes and differences between the C and Java bindings
License
Legalities

Introduction

The Java RenderMan bindings are an effort to allow the interaction of photorealistic modelling and rendering applications written in Java via Pixar's RenderMan API. They currently include a prototype binding, intended to undergo review by the 'net community (and Pixar, if they wish), as well as a reference implementation which generates and parses RIB files.

Installation: After unpacking the distribution, move either the distribution to a location of your choosing (referred to here as [INSTALLPATH]), and include "[INSTALLPATH]/renderMan.jar" in your CLASSPATH environment variable.

Translate utility: Once installed, the RIB Translate utility can be invoked via "java com.PostHorizon.renderMan.rib.Translate". Give the -h option to see a list of options.

What's New

Background

The RenderMan Interface was designed by Pixar to be an interface between modeling applications and renderers in order to allow each to evolve independent of the another (more information about RenderMan is available at The RenderMan Repository). The original RenderMan API was intended to therefore be cross-platform and independent of language. However, due to the ubiquity of C and C++, the C binding for the API has become dominant, and the original design of the API was tied closely to C.

This binding, a port of the RenderMan API to the cross-platform Java programming language, is primarily a direct transcription of the C binding. However, Java does not support many aspects of C/C++ (such as typeless pointers, typedef statements, global functions and definitions, and variable-length argument lists) and supplies additional mechanisms not supported by C (such as built-in exception handling and polymorphism). It is inevitable, therefore, that a Java binding to the RenderMan API would be significantly different from the C binding in appearance, if not functionality. I attempted to keep them as close as possible, employing additional functionality only when overwhelmingly useful (such as exception handling).

Note that this binding is currently not endorsed by Pixar in any way.

Please send any feedback, feature requests, and bug reports -- or better yet, bug fixes and enhancements in the form of source code patches (unified diffs) -- to scier@PostHorizon.com.

Design Considerations

License

Copyright (C) 1997-2000 Sean Cier

License is granted to use, extend, and redistribute these bindings, included implementations and interfaces, and other included code (hereafter referred to as the Bindings), free of charge as part of a package or product which is itself distributed free of charge under this license and the source code for which is freely available, provided the above copyright notice is included, explicit notice is given as to the inclusion of the Bindings, instructions are provided for obtaining a copy of the latest distribution of the Bindings, and the source code for any redistributed extensions or additions to the Bindings is provided in a timely manner to the author of the Bindings for possible inclusion in the primary distribution. Neither the Bindings nor any derivations or subsets thereof may be distributed as part of a commercial product or service without the explicit written consent of the author. No warrantee is provided.


Composed & Performed by Sean Cier (scier@PostHorizon.com)