Monday, February 1, 2010

Displacement, etc.

As I kept silent in the blog, a few important advances were made in RibTools !

I've finally got the Killeroo model to render with displacement mapping. This involved implementing and fixing a few things:
  • Implementing NURBS
  • Implementing some sort of image library to handle bitmaps with flexible formats
  • Fixing a few things in the shader system, including normal recalculation.. necessary to recalculate normals of the samples that were perturbed by displacement
  • Texture sampling with bilinear filtering (critical for displacement mapping)
  • Handling the "Display" directive in RIB files to output to either a file, with a specified name, or the framebuffer
  • Linking libtiff to handle TIFF files
  • Updating
Quite a bit of work indeed !

Stuff like the Display command, are not as interesting, but are important if one aims at being "RenderMan compliant".. if anything to be able to render the same RIB files as other renderers, to compare the results.

The update of was actually a pretty substantial one !
I went from Google Sites, the wiki-like WYSIWYG system to MediaWiki.
MediaWiki is famous for running Wikipedia, it's really powerful, well tested and supported.. however it's not as easy to setup and tweak (settings are in a PHP file !).
It's pretty crude, but it's better than some other wikis out there that usually have some annoying restrictions or general lack of support because the community behind isn't as big.

Google Sites is still a lot easier to manage than MediaWiki, but the initial simplicity becomes a burden once one needs to do some more serious writing and documenting.

I mentioned this before but... let me reiterate that Google Sites' WYSIWYG is terrible. Its internal state gets really messed up, and one then has to go and manually edit the HTML. However the HTML produced by Google Sites is ugly and bloated as sin.. it's not mean to be hand-edited and it shows.
So, at the end of the day, the wiki markup of MediaWiki is much more convenient.

For documenting, there is a certain need to write repetitive things, use tables (completely broken in Google Sites), also edit directly only a portion of a page (MediaWiki has convenient edit links at each major heading to edit only that portion of a page (until the next big heading)).
One example is the List of operators of the shader VM. It takes the form of an operator in a line and the description in the next line.
Using a plain text editor, in wiki markup this becomes:


';' will make the text bold and ':' indents the text.
It's a markup meant to document things and it can be quickly edited with a plain text editor, without having to go and manually select words, make them bold, indent lines and fight with the styles that spread in neighboring text and generate a lot of messy and redundant HTML code.

Speaking of the wiki, I've also written some sort of FAQ about the project and REYES (or Reyes 8) in general.
I'll need to rewrite things more clearly and include some pretty pictures..  because plain English explanation is probably too dull to follow.
I'll add images at some point but, for the time being, I think that the site is already taking enough effort away from the programming tasks 8)