Showing posts with label killeroo. Show all posts
Showing posts with label killeroo. Show all posts

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!)
http://www.dreamscapearts.com/Public/gelato_killeroo.blend

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!)
http://www.dreamscapearts.com/Public/blender_killeroo.blend

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
http://www.dreamscapearts.com/Public/lucille_killeroo.blend

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!!

>WHiTeRaBBiT<

Thursday, February 28, 2008

Shader Integration and Pass Controls Complete!

Greetings everybody!



The model you all may recognize of the infamous Killeroo which you can find (along with it's licensing) here. If you goto to my photo album you can see other test renders for raytracing setup for Air and 3Delight all using the same Blender project, also the notes for each render show system configuration, render times, and comments for each render. Another interesting render is a identical setup to render this scene under Aqsis without raytracing, but instead using a distant shadow map and depth map based ambient occlusion:


If you're running Blender 2।45 and download the latest CVS of MOSAIC you may want to grab and play with the Blender project files ;

raytraced setup (3Delight, Air, Pixie): raytraced_killeroo.blend
mapped setup (Aqsis, RenderDotC): mapped_killeroo.blend

WARNING THESE ARE 16 MEG FILES EACH!!

The default shading system is fairly simple in concept, when MOSAIC is started, or before exporting it checks to make sure 10 Blender text files exist :

  • MOSAIClight.sl

  • MOSAICsurface.sl

  • MOSAICdisplace.sl

  • MOSAICfog.sl

  • MOSAICbackground.sl

  • ls_MOSAIClight

  • ss_MOSAICsurface

  • ds_MOSAICdisplace

  • vs_MOSAICfog

  • is_MOSAICbackground

These correspond to the 5 shaders and 5 shader fragments required for the default shading system. If any one of these are missing MOSAIC will automatically load and use them. These shaders tie into the light, material and world systems of Blender through the embedded shader fragments with the tokens already setup. This allows seamless use of most Blender settings but also allows the user to customize the shader source and parameters on a project by project basis, it also keeps all code in one script so MOSAIC will still be portable and easy to use. The list of everything these tie into would be too long, but in general I'll just say all light and mist settings work and most material and texture channels and mapping work. Any setting that couldn't be hooked directly to a Blender control has been placed at the top of each shaders parameters list, and are easily identified by the lack of a token parameter. I plan to continue to add to and expand these shaders as I find and learn new things to add (like adding built-in SSS support, etc).

I've also completed the render pass and mapping controls for building various render pass types. For right now these passes would still need to be built by hand but has laid the ground work for me to build utilities to automate this! These features include the ability to control perspective, clipping and DOF for non-camera objects set as active cameras (good for lamp views and cube maps from objects perspectives), mapping dialogs to setup depth to tx exports per pass, the ability to select "into" camera objects that are duplis (such as using a lamp as dupli on a mesh and setting up a pass for each one), the ability to render every RIBset in a scene as a separate pass (such as setting up a linked scene for a cube map and using a different RIBset for each of the 8 cube perspectives). The last one is a key feature because it allow the setup and logical control of hundreds of related passes in a single Blender scene. Although these allows you to build passes it is really intended for use by utilities that will automate all this and just allow the user direct control after the passes are constructed. Like I said above, I'm very close to finalizing all the basic controls and features so I can release a new beta download and update all the documentation and examples :)

Now that everything is in place for manually handling render passes the next step is building a series of automated dialogs to generate render passes. Hopefully if all goes well this should take 1 to 2 weeks :)

This is >WHiTeRaBBiT< signing off!!!