Jump to content

Renderman and C4D


Recommended Posts

At present, I am investigating the potential of writing a complete plugin to integrate Renderman capabilities into C4D. Mainly, allowing the various Renderman renderers (AIR, BMRT, 3Delight, Aqsis, PRMan, Entropy, etc) to be used in addition to the native C4D render engine. The main reason behind this move is to allow for the use of Renderman renderers which provide: faster renderings; more specialised rendering; more flexible shading system; and, better control over render settings.

 

I have done some work, and it seems possible within the C4D SDK and COFFEE framework to have such a complete plugin developed. But, still have some questions.

 

* Will ALL geometry types, data and information be exposed, so that it can be translated?

* Will ALL animation data and attributes be exposed also, so that it can be transleted?

* Will ALL Shader information be exposed, even their inherent code, so that a RM shader can be generated on the fly?

* Can a RM shader, with a variable number of options, be used as a native C4D shader?

* How easy is it to implement all these functions?

 

Thanks for any advice and comments.

Link to comment
Share on other sites

wow, ambitious undertaking!

 

Well, i can't give much ideas on this, but i know that at the CG Talk C4D forum there are a handful of Maxon employees [srek, rick barret, imashation to name a few] that hang out there regularly that could give some input.

 

http://www.cgtalk.com/forumdisplay.php?s=&forumid=47

 

post there, i guarantee you'll get a healthy response.

 

best

Link to comment
Share on other sites

I had been thinking along the same lines, but you might want to first check whether those rib renderers support global illumination. An essential prerequisite for environmental lighting.

 

Slusallek's 1996 PhD dissertation outlines the general problem with rib and the reyes architecture (owned by Pixar);

 

At para 9.1.2 at this link:

http://graphics.cs.uni-sb.de/~slusallek/Doc/html/node14.html

 

PRman 11 offers a global illumination algorithm, I dont know which imlpementation they used.

Jeff's Resource page provides some useful links to look at the global illumination issues behind rendering.

http://www.cgarchitect.com/resources/default.asp

 

BMRT doesn't support global illumination.

Aqsis's new features list (somewhat quietly...) that they have removed the propietary subdivision code (presumably the one owned by Pixar...just guessing though). I dont think it supports global illumination.

 

More useful links on global illumination are:

the Global Illumination compendium (lists most algorithms) and the 2002 dissertation on alternative Monte Carlo algorithms by Suykens (esp adaptive sampling):

 

http://www.cs.kuleuven.ac.be/~graphics/CGRG.PUBLICATIONS/FRANKPHD/suykens_dbl.pdf

 

Vlado provides some insights into the speed and efficiency of the Max plugin renderer VRay using Monte Carlo and adaptive sampling. You can then return to the original question regarding rhe Renderman approach.

 

In the end I decided to explore the .mi ascii format for mental ray and shaders. I can't avoid the global illumination issue posed by non-PRman 11 rib renderers.

Link to comment
Share on other sites

Yes, GI is important. And I think that C4D has a fairly good implementation of GI. Remember that GI is not just monte-carlo or radiosity, it is any method that takes into account objects beyond the shading point. Non GI is things like phong, blinn, etc. GI includes ray tracing, caustics, radiosity, etc. Also, a complete GI representation will account for four methods of light transfer: diffuse-diffuse, diffuse-specular, specular-diffuse and specular-specular.

 

I think that C4D has caustics (specular-diffuse), I think Monte-Carlo (diffuse-diffuse) and ray tracing (specular-specular) it is a fairly complete implementation. However, the issue of using RM is not to have the GI capabilities. RM offers much faster rendering; better control over renders; and offers some rather niche features offered by its programmable shading.

 

Anyway. Coming back to it all, BMRT does have GI, it has Ray-tracing, Radiosity and the very last versions had Monte-Carlo GI. Another renderer AIR, has GI; ray-tracing, monte-carlo GI, caustics and sub-division surfaces. 3Delight is reported to have some GI, in terms of Monte-Carlo. But the main thrust of using RM in a C4D environment is not for GI features as such, but rather for speed, specialist shaders (displacements, etc) and extensiblity. BTW, you probably know of shaders out there which can do wonders, there is a well known one that will model a tree from a sphere. Thanks for your comments, they do shed light on the issue from a different angle.

Link to comment
Share on other sites

BTW, you probably know of shaders out there which can do wonders, there is a well known one that will model a tree from a sphere.
i wouldn't mind looking at that one. i have been following the adaptation of xfrog to various renders of external and landscape scenes.

not convincing and rather biomechanical in terms of the rendered image.

 

BMRT + GI - is that Larry Gritz's 'frankenrender' radiosity solution using BMRT and PRman?

i noticed that AIR offered GI, but no specifications, so i wondered if these were psuedo GI implementations? also whether subdivision surfaces are supported.

 

coming back to shaders, i think we are pursuing a similar track(?). my interest in the .rib format was the ability to control geometry using shaders and applying that to rendering foliage and canopy effects. and perhaps other natural phenomena.

 

adding to the mix, greg ward's Radiance posits GI in localised interior renders and suggests altogether avoiding GI for exterior environments.

this is related to photon mapping issues.

 

sidefx houdini 6 and select provide a model for native support and extensibility with GI and renderman-based illumination.

 

belying the interest is wanting to avoid a time-consuming sysiphus endeavour with ineffectual illumination/rendering solutions.

Link to comment
Share on other sites

The shader that renders a tree. That is by a guy named Katsu, here is the link:

 

http://www.edit.ne.jp/~katsu/sl_index.htm

 

Have a look. The shader makes uses of a displacement, and hence it is rather memory intensive. I remember just rendering one tree used about 500 mb of memory. That is probably a function of the renderer's memory management more.

 

Have also been looking into xfrog and a few other tree generators that will generate a convinving tree. Xfrog seems one of the better solutions, because it also provides a LOD tool.

 

BMRT since version 2.0, I think, supported finite element radiosity. Since version 2.2, I think, it supported stoichastic sampling using Monte Carlo methods of integration estimation to solve for diffuse GI calculations. That is, the most popular way of the new wave of 'gi renderers'. I use AIR almost exclusively, and it supports subdivision surfaces, blobbies and almost all RM primitives. It has a Monte-Carlo based method of GI, as well as ray tracing and caustics. It's base method is scanline. It is a high quality renderer, capable of great results. Here is the weblink. Scott, of sitexgraphics, is very helpful, just drop him and email.

 

http://www.sitexgraphics.com/

 

Yes, to harness the power of RM shaders into any 3D program, C4D or otherwise, is a GREAT advantage in any respect.

 

'GI', or diffuse GI calcuations, is probably best used internally. In exterior renders, the best solutions are dome lighting, HDRI, and any custom lighting rigs which illuminate from all directions. Only in very specific types of external renderings is GI required. Mainly for narrow street locations with lots of niches. In that case, 'GI' would only be used for those specific elements, you would probably set up larger non-rendering 'light bouncing' elements just to bounce the light, but not render. This would be quicker then getting each wall to bounce light.

 

Houdini has a complete implementation of RM. The entire pipeline is based around that. I have been using it on and off for some time. However, I beleive that Houdini is still a very specialised package for animation effects and difficult 3D situations. Architectural CG rarely need the power of such a package, and it tends to be an overkill and doing certain things is overly complex. However, it is probably the best package I have seen in terms of RM integration (next to Maya with MTOR, MayaMan, etc). I believe, however, that the Select version doesn't really support RM (from correspondence with SideFX), and only the more advanced versions, like Master, Halo and Escape supports RM.

 

At the end of the day, we need to be able to produce the highest quality renderings in the shortest possible time. And I believe from my own experience and from industry experience that RM is the best general solution. But to that end, what is the best way of getting 3D animation and model data to RM? Coming back to my original question, is C4D capable in such a respect.

Link to comment
Share on other sites

i wrote this before i read your last post;

having read Fiume, i am using another approach to imaging natural phenomena. i am not enthused by the use of xfrog 'and its ilk' in final cg images. they look fake(?) and spoil the overall illumination and ambience of the composition.

 

the solution i have in mind eschews gross polygonal modeling, which attempts to either ignore or (badly) fake essentially subtle stochastic events.

 

_________________________________________________

 

Some other Readings which orbit the subject of BMRT+Gritz's incorporation of the radiosity algorithm, and programming a Renderman implementation for Cinema 4D:

 

(Fiume) Applied Geometry and Computer Graphics

http://www.aliaswavefront.com/en/companyinfo/research/papers/pdf/geom.pdf

 

"The Occam’s Razor of computer graphics is that when an algorithm can be implemented on a system such that it lies on a better point of the cost/performance curve, then it is the preferred algorithm...Computer graphics is an extremely pragmatic area, filled with a concern for the final image, and less concerned with the elegance of the complexity structure of geometric algorithms....

Furthermore, while it is possible to treat computer graphics more abstractly as a math-ematical science, without a passion for making and assessing images, it is difficult to believe that the satisfaction of getting a particular visual effect right will offset the intimidating effort required to achieve it."

 

 

BMRT: A Global Illumination Implementation of the RenderMan Standard" Larry Gritz and James K. Hahn

http://www.siggraph.org/education/materials/HyperGraph/radiosity/jgt96.pdf

 

With respect to Fiume's paper, one can squint at BMRT/Gritz's assurance that "We have shown that the RenderMan Interface Standard is quite capable for global illumination applications, and conversely that ray tracing and radiosity are viable implementation methods for the RenderMan Interface."

 

how capable? how viable? is the performance worth the cost of developing the solution?

(?not so sure of the efficacy of BMRT's ambient() trick to integrate the radiosity algorithm when interpreting illumination from the surface shader?)

Link to comment
Share on other sites

I believe that RISpec does include a few functions to incorporate GI type calculations. But BMRT and AIR both use the ambient function to control GI (not ray tracing). Anyway, thanks for those links, very helpful.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...