Renderman, VFX and some NPR
For years, Renderman was my hobby and sometimes - a tiny side job. Now I'm working as pipeline software developer for animation studio, applying all the knowledge and experience I've got in practice. Quite a feeling, should I say.
During all those years, I've:
- created ShaderMan, visual Renderman shaders builder, and ShaderMan.Next - new generation of DAG editors, now with source code.
- several other tools, including reLight (interactive scene re-lightning toolset; implemented rendering engine subset, extensive optimization), renderFarm, slcEditor et al; lots of Renderman-related scripting code in Perl and Python; DSOs in several languages, including C and Pascal.
- experimented with wavelet cartoon technologies (see below), ambient animation - using shaders for background animation, such as grass, breathing, blinking etc.
- co-founded, promoted and administered Renderman.ru - one of the leading FX-related communities, targeted to Russian-speaking TDs and artists.
- created, translated and copyedited documentation, tutorials and FAQ documents on Renderman, including RmanNotes translation and comp.graphics.rendering.renderman FAQ. Wrote several articles and FAQs on Renderman, published on Renderman.ru.
- played role of Renderman evangelist and frequent speaker on CG summits and conferences, with experience of being host and co-host on several of them.
- have been a part of “Understanding Maya” book project, being author of 1 chapter, covering external Maya renderers and specically Renderman - and technical editor and consultant for more then 12 of others. Book is published in 2007 in Russian language by Kostin Publishing; English and Chinese translations are in talks as of today.
- participated in NVidia Gelato beta team since the first beta release of the product. Has been granted a personal license for proactive promotion of Gelato and beta testing. Working on several tools, including ShaderMan support for Gelato.
- took part in ATI beta team for Ashli. Actively participated in Ashli evangelism in Russia.
NPR investigations
For years, I've been interested in non-photorealistic rendering, working on algorithms, tools and exchanging ideas with people.
The most comprehensive source of information on NPR online is Stylized Depiction in Computer Graphics, an annotated survey of online resources by Craig Reynolds.
Escher-like drawingsThis simple example of NPR look is illustrating how to possess the results using just shading, no additional tools required. However, I've used ShaderMan for faster turnaround during experiments:

This technique was discussed in Advanced Renderman book and is based on usage of Sobel filters on images produced by using special Renderman shaders and image techniques.
Note that even such production-verified techology has it's drawbacks, such as double-resolution rendering requirements and poor quality of lines for detailed models.
Wavelets for NPRIn February 2003 I've made a short presentation on ViAGra (Visual Art and Graphics) meeting in Moscow on modern NPR technologies, where I represented several new ideas on producing non-photorealistic images.
The main idea behind the presentation was a new technology on cartoon outlines extraction with wavelets. I've reused some corpus of knowledge from the parallel universe :) (face recognition) research and applied the same principles to the cartoon production.
The left part of the image below is an outline as produced by straight Sobel filtering; right part represents the intermediate results after wavelet outline extractor:

One can see much better outlines quality for wavelet-based image.
NPR and vectorizationAs an advanced solution for line quality I proposed to reuse the raster-to-vector technologies. The image below is a simple example of such conversion made with Adobe Streamline; note lots of freeware and open source alternatives available for such application:

My current non-photorealistic rendering research is moving in a couple of directions:
- Using Maya Vector renderer as input for Renderman curves
- Disney Inka solution: using Renderman to generate micropoliginal representation of the scene, and then calculation of edges based on each micropoligon.
- Non-traditional application of shaders for NPR
Just a reminder - my current contract will expire soon, so I'm looking for job now!
