Posted: 19 Sep 2012 07:46
This example from the Advanced RenderMan book has long been a problematic render for XRT. I am happy to say that I finally addressed the remaining issues. This scene is now included into the XRT example scenes archive. There are only a few primitives but the shaders are quite complex and challenging. Aside from the flashy lensflare effect, look at the subtle blue atmosphere surrounding the planet.
As it was the last remaining item from the book examples, it was time to put a fresh coat of paint on the Advanced RenderMan gallery. The layout has been improved and the number of pictures has been greatly expanded. For good measure, I have even tried to recreate some of the book pictures for which the RIB files were not provided. Hope you will enjoy them!
|Catmull-Clark hydra from Sitex Graphics's Air examples|
Catmull-Clark subdivision surfaces …
The major feature in XRT 1.5.0 is a new geometric primitive: Catmull-Clark subdivision surfaces. Except for texturing, everything you would expect from it is supported: creases and corners, whether they are sharp or smooth, holes and boundaries. For a definition of these terms, please refer to my previous posts on the subject (basics, corners and creases, holes and boundaries).
You have certainly noticed that these posts are more than one year old and, indeed, the current implementation has been sitting on my hard drive from this time. I could pretend that I have been distracted by the implementation of other appealing features but the real reason is that I am not happy with the result: it's kinda slow (maybe my expectations were too high …), it suffers from tesselation artifacts and it's all my fault !
The intersection algorithm recursively refines the surface until the resulting patches are flat or small enough. The problem lies in the stopping criteria. It should be computed using derivative information which XRT current design is not able to provide1. So, it is stopped at an arbitrary subdivision level.
The result is that, depending on the zoom factor, a surface may be over-subdivided (which is bad for performance and sometimes leads to precision problems) or under-subdivided. The next picture is the horrifying result of a bad refinement.
It was bad one year ago and it still is. So, why release it now ? For one thing, it does decent pictures most of the time and I believe it cannot be improved without changes that go far beyond what I planned originally for XRT 2.0. Therefore, it will have to wait for work on the next major version to start. I will go into further details in future posts.
… and the rest
- XRT frontend has been completely rewritten for improved help message, versioning information, more control on threading, debugging output and statistics.
- shadow bias is now supported.
- a myriad of bugs has been fixed.
- the complete list of changes is available in the ChangeLog.
This version and the updated documentation are available in the Downloads page.