Open source 3D rendering solution adhering to the RenderMan standard

Improved subdivision speed

c42f's picture

Posted by: c42f

I've just committed a change to fix a long standing inefficiency in the aqsis subdivision surface code.  Any scene using subdivision with texture coordinates attached to the surface should now be a lot faster - in one test the runtime was slashed to 30% of the previous value.

<!--break-->The change effects any subdivision surface with facevarying and facevertex class primitive variables attached (including texture coordinates).  The example cited above is the makehuman.rib test case from the performance test suite but it seems fairly representative of the kinds of speedups to be expected.  The change has been promised for quite a while and it's finally done just in time for 1.6 :-)

Have fun!

~Chris.

WHiTeRaBBiT's picture

Posted by: WHiTeRaBBiT

Oooh thank you, thank you,

Oooh thank you, thank you, thank you

I've noticed SDS was painfully slow in my last test render, but without a doubt its clearly running faster now! Also I know its off topic but from the last developer meeting I'd love to see deep shadows and threading added to Aqsis. I have planned a more serious render soon that will require hair but to do it right I'll need deep shadows, and I think threading would imediately put Aqsis much closer to the other renderers performance wise IMHO. Anyway just my 2 cents

Many thanks for this Chris!

Eric Back (WHiTeRaBBiT)

For death awaits you all with nasty, big, pointy teeth."
Monty Python and the Holy Grail

c42f's picture

Posted by: c42f

Re: oooh thank you

> I've noticed SDS was painfully slow in my last test render

Yeah, this became particularly obvious sometime during the 1.5 development cycle when I fixed some problems with subdivision failing to respect the shading rate.  Most parts of a subdivision surface should now be turned into simple bspline patches before dicing which makes things much faster.

Regarding features for 1.8 - yeah I'm interested in getting back to developing the DSM code.  We had a start at that during soc2007, but only got about half way to a full implementation.  Regarding multithreading - I've just got a "new" machine from one of my friends who left town.  It's dual core, so I finally have some incentive to persue this.  I won't be making any promisies for 1.8 just yet, but you never know ;-)

~Chris.

renderguy's picture

Posted by: renderguy

Kudos!

I can confirm this makes a *BIG* different on the MakeHuman scene (tested on Windows), excellent work!