Monday, March 31, 2008

Blender and Aqsis - MOSAIC test

So I finally have a working Blender to Renderman workstation running and have been doing a few tests. I ran an example test that is included with the MOSAIC package and rendered both Aqsis and Blender renders, and while the results are expected (I honestly expected the Blender render to be nothing like the Aqsis, not to mention taking twice as long to finish), doing some composite work in Blender to see the two side by side was also quite interesting.

Aqsis :

Blender Internal :

And the screenshot

There are uses for both of these renderers that can be used, and in some cases required. Not only was this a test for my own purposes but at the same time proves that Blender can still be plenty useful when rendering is done and compositing begins.

A very exciting time to be working with all this software now and without too much frustrating technical issues as there was 2 to 3 years ago.

Thursday, March 20, 2008

Light baking with RenderMan

This is another way to use RenderMan (Pixie) with Blender.

Check this blend file: 450 K

After opening press P-key to start game engine.

All light in this scene baked to textures.

Rendering done with a lot of passes.

First pass is photon map.

Second is indirect diffuse and direct light with raytraced shadows. In this pass I wrote point cloud map from Ci in surface shader in st space.

And finally I had added separate pass to each object to convert point cloud to texture.

This way to bake texture will be available as plug-in for Ribber3 exporter which we (Qewerty and I) intend to write.

Wednesday, March 19, 2008

Another MOSAIC progress report

Hey everybody,

Since I have several test renders I thought it would be a good idea to blog another progress report :)
I've been hard at work building the mapping utilities and related improvements over the last few weeks. At this moment I have the zdepth and deep shadow mapping utilities done and have the occlusion rigging utility almost done. Basically all you have to do to use them is just select the light or object and click on the utility desired, set a few settings in a dialog and the scenes and passes are automatically made. Since the passes are built as Blender scenes, theres full manual control of every pass if you need it. I've also been experimenting with the zdepth SSS shader and intend on integrating it into the default shaders. I'm pretty sure I'll be able to have full built-in support for both raytraced and mapped techniques such as:
  • occlusion and IBL occlusion (using a dupli hemisphere rig)
  • soft shadow lights (including sun ortho lights, and point light cube maps)
  • support for both standard and deep shadows depending on renderer
  • fresnel reflection and refraction (using both cube and mirror maps)
  • caustics (both real and depth mapped)
  • Sub surface scattering (currently using zdepth but looking into raytraced)
  • support for all Blender's mapping channels
I've also structured the RIB ouput a little different, instead of putting each pass in a separate frame (as is customary), I've put each pass in a separate RIB. This means every mapping technique can automatically use animation whether its a light map an environment map or occlusion map :) I've found myself VERY impressed with these older mapping techniques over raytracing and have become convinced that for animation or large projects (either in resolution or detail) mapping can do almost anything raytracing can but faster (if you're not looking for absolute realism and instead something more artistic that is).

Ok... enough with the report, here's some simple test renders:

This is a test of the very simple SSS shader I'm messing with, In particular I was trying to see how well it will work for lots of detailed grass or leaves as well as heavy displacements (rendered in Pixie):

(I would click on this one to look at it closer, it looks a lot better up close!)

Here's a very poor quality Youtube video showing a simple 30 frame animation with very heavy displacements using mapped ambient occlusion and one shadow mapped spot. When dealing with extreme displacements shadow mapping really shines over raytracing as far as speed goes. This was rendered in 38 mins as apposed to 6 hours using raytracing!

The quality is so bad you can't see the smooth occlusion but on my next release I plan on showing a high quality video with all mapping techniques in one animation ;)

I've also been playing around with Lucille some more :) Heres a quick render showing the previous scene using image based lighting instead of just occlusion:

You can download this here:

This is another test to see how much data Blender, MOSAIC and Lucille can handle. This image uses high poly displaced geometry and a lot of polygon tube grass. To be more precise then this scene has 1,987,512 faces! It was exported from MOSAIC in 20 seconds and rendered in Lucille in 8 hours:

I'm not offering this one for download because its 320 megs :(
Thats it for me, hopefully the mapping utilities will be done in a week or two.

Thanks for reading,

Tuesday, March 04, 2008

Another update in MOSAIC's recent progress

Greetings everyone!

Just thought I'd post an update on several things just added to MOSAIC :)

After a few conversations with Syoyo and Tenzin as well as questions asked over the last couple of months, I have added more direct control of some of MOSAIC's internal exporter. In particular there is now a dialog in the "MOSAIC settings" tab that has a series of toggles for turning on/off some of the structural RIB export stuff. At this point the only things that can't be turned off in export are RiFormat and RiAttributeBegin/End which I think is the bare minimum valid RIB you could have. Also these toggles are tied into the preset system so they can be automatically set depending on what renderer is selected. Because of this I have added Angel, Gelato, jrMan and Lucille to the preset list. I tried adding PBRT and LuxRender but unfortunately they are using a heavily modified version of RIB that's not translatable (unless someone know about a translator out there).

I have Angel and jrMan setup like BMRT except for their render call so they can use BMRT's compiler and shader info.

Gelato can read standard RIB files (with a added module) but unfortunately uses its own GSL instead of RSL, If you use Gelato you'll need to translate MOSAIC's built in shaders with a utility you can get with Gelato or just use the shaders provided with Gelato. Also I have Gelato's shader extension added to the preset so you can include Gelato GSL source in Blender just like you can with RSL :)

Here's the Killeroo test scene (with shaders already translated) rendered with Gelato:

And here's the file if you want to play with it (warning 16meg file!)

For comparison I decided to try and reproduce this scene in Blender's internal renderer. I used high res SDS with displacement modifier and normals. It was soo slow I ended up leaving the ground flat because it was too costly, this took 10.6 hours! I think this clearly shows the benefit of micropoly displacement :)

And here's the file if you want to play with it (warning 16meg file!)

And last but not least, because of the new exporter and preset controls I was able to get Lucille working in MOSAIC. I was having some problems with the meshes rendering properly but did manage to get this simple render ;)

Here's the project file

I already have everything setup to render so hopefully this will help you with Lucille's development Syoyo ;)

Thats it, thanks for reading my rantings!!