Monday, 1 November 2010

Interactive rendering with the aqsis-2.0 core

This blog has been pretty quiet for a while, but aqsis development has been coming along behind the scenes. During the aqsis-1.6 development last year I focussed a lot on making aqsis faster. After working on this for a while it became obvious that some major changes were needed for the code to be really fast. In particular, the aqsis sampler code is geared toward dealing with single micropolygons at a time, but it seems better for the unit of allocation and sampling to be the micropolygon grid as a whole. This was just one of several far-reaching code changes and cleanups which seemed like a good idea, so we decided that the time was right for a rewrite of the renderer core. Broadly speaking, the goals are the following:
  • Speed. Simple operations should be fast, while complex operations should be possible. The presence of advanced features shouldn't cause undue slowdowns when they are disabled.
  • Quality. Speed is good, but not at the cost of quality. Any speed/quality trade offs should be under user control, and default settings should avoid damaging quality in typical use cases.
  • Simplicity. This is about the code - the old code has a lot of accumulated wisdom, but in many places it's complex and hard to follow. Hopefully hindsight will lead us toward a simpler implementation.
Fast forward to the better part of a year later - development has been steady and we've finally got something we think is worth showing. With Leon heading off to the Blender conference, I thought an interactive demo might even be doable and as a result I'm proud to present the following screencast.

[PG] Please note, this embedded player is reduced in size, click the YouTube logo to link to YouTube and see it at the full size.

There's several important features that I've yet to implement, including such basic things as transparency, but as the TODO file in the git repository indicates, I'm getting there. The next feature on the list is to fix depth of field and motion blur sampling which were temporarily disabled when implementing bucket rendering.

Edit: I realized I should have acknowledged Sascha Fricke for his blender-2.5 to RenderMan exporter script which was used by Paul Gregory in exporting the last example from blender. Thanks guys!


coppertoe said...

This is great. I always found Aqsis to be quite slow, but this seems to prove me wrong. Keep up the amazing work.

Vikram K. Mulligan said...

I am definitely impressed, and I look forward to the release. Best of luck with the continued development work!

Andrew Enyart said...

Awesome! Renderman at interactive speeds---simply amazing! Keep up the great work.

Eibriel said...

Wowwwww amazinggggggggggg!!!!!!!! :D:D:D:D

That will allow aqsis to be embebed on a compositor like Ramen, to add 3D features :D

Anonymous said...

Wooooow! keep the great work!

Paul Van Gaans said...

This looks awesome! I would love to try this in Blender 2.5

Chris Foster said...

Thanks guys :-) Sorry I didn't publish your comments right away, I didn't have the blog set up to notify me correctly. It's fixed now.

@coppertoe: Already in aqsis-1.6 some things were much faster than they used to be... However what you are seeing here with the new core is more or less a complete rewrite of the sampling and tessellation parts of the rendering pipeline. It's my personal war on slowness ;-)

DEADC0DE said...

This would be cool even only to prototype shaders. You should start pushing binaries on the aqsis website!

Anonymous said...

This looks AMAZING. Congrats.

Really cant wait for this...

please hurry and release :))

Titus said...

Nice work you're doing with Aqsis guys!iscricket

Anonymous said...

Thanks for the great investment into this. Looking for more interactivity with a great renderer is really worth something. Personally its the speed and high quality blur that is most interesting. =)


This blog represents a common area where we can share ideas, thoughts and other verbose information with others - While giving a little more insight into the inner workings/minds of our team.

Though there might be overlap in places, the content here differs from that of the main Aqsis website and is intended to be complimentary while still acting as a useful resource for those interested in the world of 3D graphics and rendering.

So... sit back, relax, and have fun... we will !!! ;-)