Advertisement

You're blocking ads, which pay for BlenderNation. Read about other ways to support us.

Experimental: Reflection Node, Image Based Lighting

18

coated_glossy_carpaint.jpgMatt Ebb finally found some time to hack some new Blender code and, as always, the results are impressive. This time, he's been working on a reflection node and image based lighting.

Matt writes:

I'd like to get the node system hooked up to raytracing, allowing one to do advanced shading techniques but without being forced to do it with the dodgy ‘mixing materials' method. As a starting point, I've made a reflection node - the bonus is that the node system makes it a lot easier to texturise inputs. Thanks to some hints from Alfredo de Greef, I've added an additional input to rotate the anisotropic direction (with black being 0° and white being 360°). This can give some nice effects.

[...]

At the studio we might possibly be doing a project that would involve vfx/image based lighting. It's Christmas soon and there are plenty of shiny balls around, so I got a nice one and we've started making some HDRI light probes. Blender's brute force method of doing image based lighting by evenly sampling the hemisphere in AO gives reasonable results, but it's too slow for animation.

I've been looking into a technique originally devised for realtime graphics, based on the paper An Efficient Representation for Irradiance Environment Maps. It works by storing the irradiance in the map in spherical harmonics coefficients and only supports lambert diffuse shading, but it's extremely fast, and can give quite nice results especially combined with it in an AO source, or even just humble buffer shadows.

Yeah, spherical harmonics coefficients with Lambert diffuse shading - easy!

Go check out his results.

Please note: this is still experimental code that you won't find in SVN, so you'll just get to drool over the pictures.

About the Author

Avatar image for Bart Veldhuizen
Bart Veldhuizen

I have a LONG history with Blender - I wrote some of the earliest Blender tutorials, worked for Not a Number and helped run the crowdfunding campaign that open sourced Blender (the first one on the internet!). I founded BlenderNation in 2006 and have been editing it every single day since then ;-) I also run the Blender Artists forum and I'm Head of Community at Sketchfab.

18 Comments

  1. > spherical harmonics coefficients with Lambert diffuse shading - easy!

    Dammit! That's sooo easy I could implement it with my eyes closed, even without typing. I agree with you Bart. :_)

  2. This is ubercool!
    I'm surprised nobody's giving Matt a parade, I think the possibilities are limitless esp. if/when Matt implements a general raytracing node...
    (btw how's about a general 'gather' node like renderman's SL function?)

    Oooh, could this be in time/mature enough for 2.50 ??

  3. hi!

    I should probably make clear that I'm not claiming credit for this image based lighting technique. The authors of the linked paper that presents that technique have some great sample code that I've just tweaked and adapted for use within Blender. If only my maths skills were that good!

  4. This is super. Will there by any experimental build with this image based lighting? How does it look in practice? You can assign a picture to a light or insert image plane as a new special light source? Or assign this picture to a world setting and switch somehow world (or even ambient occlusion) lighting on? Thank you for details.

  5. Nice, but can nodes apply to the rendering itself? can you take each of the lines etc. and manipulate them

    shul, in the never ending quest to the sketch render holy grail..

  6. Buba, I'll post a patch when it's ready. I have some other priorities at the present though, so it may be a little while until I can finish it off. It's currently working as a panel in the world buttons, where you (will be) able to choose a blender image block to prefilter, or just use an image from one of the world texture channels. It will only work with images in the 'Angular Map' or 'LatLong Panorama' layout (you can convert to and from these in HDRShop).

    shul, I'm not sure what you mean. The raytrace node is a material node, it controls the material that gets rendered.

  7. Is there currently any way of doing image based lighting (with or without HDRI light probes) in Blender 2.45. Even if it's faking it. And if so does anyone know of any tutorials or guides? Thanks gurus.

  8. Sorry. I think my question above was a bit dumb. I guess Matt's work has been to create the first way of doing image based lighting. Is that correct?

  9. Thanks for clarifying Matt. It means this is awesome development work. Good image based lighting would be a great leap forward for Blender. You da man!

  10. Oh, so is this the method used in Nexuiz when you turn on "use HDRI lighting"? If this is meant for realtime rendering, might this be incorporated into the Blender game engine?

  11. Great news for someone who has been looking into hdri and ibl a fair bit recently. Incidentally, the noise problem with AO and IBL in 2.45 can be helped a lot by setting the "filter" setting in the texture panel to 1.5-ish. That blurs it all out a bit and helps heaps. (I forgot who posted that on BA, but big kudos to them).

    http://uploader.polorix.net//files/12/hdriSetup1.blend

    That is a really simple setup with what I stated, packed with a really simple hdri. AO Samples set to 16, so there is still a major speed issue doing it this way, but it works quite well.

    All the best Matt with the coding!

  12. @matt: ok, I was referring to nodes which can be applied in render time on the whole image (or parts of it) while using render information and not only compositing at the end.

Leave A Reply

To add a profile picture to your message, register your email address with Gravatar.com. To protect your email address, create an account on BlenderNation and log in when posting a message.

Advertisement

×