Jump to content
dennis.albus

Dennis Albus | Technical Reel 2015

Recommended Posts

This is my Technical Reel with some of the things I've been working on lately - mostly focused on lighting, shading and rendering.

Please go to vimeo and watch it in HD as a lot of stuff is really hard or impossible to see in the SD version.
 

 

Feel free to also check out my other work on my website (95% Houdini / Mantra) www.dennisalbus.com/portfolio

The Blog is unfortunately a graveyard right now but I am planning on posting regular updates and information about some of my tools and shaders soon.

 

Cheers,

Dennis

  • Like 8

Share this post


Link to post
Share on other sites

Looks amazing :) Is it a secret how you blurred procedural noises, etc?

Share this post


Link to post
Share on other sites

Looks amazing :) Is it a secret how you blurred procedural noises, etc?

 

No it is not :)

It is a brute force approach and actually quite simple. I take the shading normal and choose an appropriate distance above the surface as my starting position. Using that and the inverted normal I am sampling towards the surface using a gather loop and interpolating the result. It is important that you export your variable so gather is able to find it. Implementing different blur kernels is trivial when you calculate the distance from the original position to the sampled position. As it is doing the lookup for each image sample you can get away with an astonishingly low number of samples.

 

There are some caveats though:

Sharp corners and creases can be a problem when the distance to the surface is too high. You can do an iterative approach and check the result and adjust your sampling settings accordingly.

You have to make sure that your cone angle is proportional to the distance to the surface. Otherwise your results vary a lot when changing the distance.

 

The nice thing about this approach is that it works across UV borders as it is sampling in 3D space.

 

Hope this is pointing you in the right direction. I am planning on putting some of my tools on orbolt or on github in the coming weeks (depending on the time I have to spare)

 

Cheers,

Dennis

Edited by dennis.albus
  • Like 1

Share this post


Link to post
Share on other sites

Great work dennis ! lot of your ideas should be integrated by default in Houdini.

 

As you look to master mantra , what would be your pov about it against competitors like Arnold / RIS ?

I ask this because after some extensive test, i really find Mantra the most versatile , and i am trying lo learn it in depth like you do !

 

Cheers

 

E

Share this post


Link to post
Share on other sites

Wonderful technical reel.

The AOV manager looks like it should be there by default.

Share this post


Link to post
Share on other sites

Great work dennis ! lot of your ideas should be integrated by default in Houdini.

 

As you look to master mantra , what would be your pov about it against competitors like Arnold / RIS ?

I ask this because after some extensive test, i really find Mantra the most versatile , and i am trying lo learn it in depth like you do !

 

Cheers

 

E

 

Thank you :)

 

Mantra is a great renderer and it offers an insane amount of flexibility and the integration into Houdini is unmatched. It has been my renderer of choice for almost 7 years now (and trust me 7 years ago mantra was not the same). The reasons for me have always been vex/vops and how it is so easily accessible and customizable. Unlimited free render licenses is also a big plus and is always received very well by the management.

That said there are a couple of problems with regards to workflow and speed that need to be sorted out to handle huge production scenes efficiently. It is possible right now, but it is no fun at all.

Shader assignment on packed primitives happens as a geometry attribute with is slooooooooooow and memory hungry. This might change once Material Stylesheets are better integrated and replace the current way of assigning materials.

Parsing the scene with SOHO to generate an ifd is way too slow. The time it takes to generate an ifd can easily take longer than the rendertime itself. This can be handled by using delayed load alembics and/or mantra archives, but that is not always feasible.

Mantra lacks a lot of small convenience features (some of which you saw in my reel). Those should be in mantra by default.

 

Every couple of months I am evaluating other options but up to now there has never been a real reason for me to switch.

I am evaluating Arnold right now which is shaping up to be awesomely integrated into Houdini. I just can't let go of vex/vops in exchange to C++ for writing shaders.

I am also waiting for Vray for Houdini which could replace Mantra for specific situations where the GI interpolation methods are a real advantage. I just can't see myself switching to it for animations as i am bruteforcing everything for animations anyway.

 

That's it for now. Unfortunately I cannot write down everything as it would be too much and the topics are more suited for a discussion about mantra than for just writing them down.

I still hope this helped you a little bit.

 

My advice to you is that you should definitely learn more about mantra. It is a great renderer to LEARN and UNDERSTAND how rendering and shading works which will help you in any renderer. So learning it is definitely not wasted even if you choose to render your projects with something else.

 

Cheers,

Dennis

Edited by dennis.albus
  • Like 4

Share this post


Link to post
Share on other sites

I am working in Mantra for a year now and I have to say that the only flaw is it memory consumption. Saying that coming from Arnold...

But then there are those nifty procedurals and delayed load techniques, which just need little setup.

The only thing I really miss is a rayswitch method. That was the best tool for optimizing Arnold, so I really hope to get my hands on your shop node :)

 

strong work dennis,

  • Like 1

Share this post


Link to post
Share on other sites

I am working in Mantra for a year now and I have to say that the only flaw is it memory consumption. Saying that coming from Arnold...

But then there are those nifty procedurals and delayed load techniques, which just need little setup.

The only thing I really miss is a rayswitch method. That was the best tool for optimizing Arnold, so I really hope to get my hands on your shop node :)

 

strong work dennis,

 

Check this out ;)

http://forums.odforce.net/topic/19041-pbr-rayswitch/?hl=rayswitch

 

It's not the full implementation you can see in my Reel but it explains how to access the raylabels.

  • Like 2

Share this post


Link to post
Share on other sites

Thanks a lot for your detail answer Dennis:

- memory consumption

- ifd generation

- lake of efficient workflow by default

 

Would be your main cons !

 

the thing is that price / perf ratio + ability to custom mantra like you want without being an engineer is the strongest point of the tool for me.

V-ray / Arnold are good alternative but :

- arnold is far too expensive for my needs compare to what it offer vs mantra

- v-ray has a lot of parameters and is not going into the minimalist direction Maxwell / Arnold follow which is for me the best way to go for an efficient workflow !

 

i'll stick with Mantra then ...

 

Cheers

 

E

 

E

Share this post


Link to post
Share on other sites

......

It is a brute force approach and actually quite simple. I take the shading normal and choose an appropriate distance above the surface as my starting position. Using that and the inverted normal I am sampling towards the surface using a gather loop and interpolating the result. It is important that you export your variable so gather is able to find it. Implementing different blur kernels is trivial when you calculate the distance from the original position to the sampled position. As it is doing the lookup for each image sample you can get away with an astonishingly low number of samples.

 

There are some caveats though:

Sharp corners and creases can be a problem when the distance to the surface is too high. You can do an iterative approach and check the result and adjust your sampling settings accordingly.

You have to make sure that your cone angle is proportional to the distance to the surface. Otherwise your results vary a lot when changing the distance.

 

 

Hey Dennis, this seems to be quite the same approach that a buddy once used to build a Curvature Shader like this with the Vray SDK.

Instead of interpolating the sample values shot from the inverted normal, he would average the distance of the vectors until a point was hit, compare them to the distance of the point used to shot from and then just map them to a color. This results in a "bendiness" pixel value and also indicates if the bending is forward or backward.

This might be useful as an alternative dirt map approach, especially to mask worn edges or scratches on metal.

 

If Houdini doesnt have something like this already, it seems like you are already half the way there!

Great work! :)

Edited by timmwagener

Share this post


Link to post
Share on other sites

So where is that "generator rendering engine"? I can only find the vm_generatorshader deep down soho param files, but no sign of the render engine itself. Can you give me a hint?

 

Great reel btw!

 

Thanks

Edited by SSFX
  • Like 1

Share this post


Link to post
Share on other sites

So where is that "generator rendering engine"? I can only find the vm_generatorshader deep down soho param files, but no sign of the render engine itself. Can you give me a hint?

 

Great reel btw!

 

Thanks

 

Hey,

I know I promised a video on vimeo and I am still planning to do it. However I've been super busy the last couple of weeks due to a new job.

I will try to get a short video on how to set it up and how you can use it as soon as possible.

 

Cheers,

Dennis

Share this post


Link to post
Share on other sites

No worries, take your time I'm just really curious about the feature and how you figured it out!?

Share this post


Link to post
Share on other sites

The Blog is unfortunately a graveyard right now but I am planning on posting regular updates and information about some of my tools and shaders soon.

 

Cheers,

Dennis

Eagerly awaiting some blog posts, your techniques are awesome!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×