Saturday, 21 May 2011

'Depth Dependent Halos' for Wireframe rendering [Part 3]

It took a while to upload (on 56k wireless connection) but the video is finally available on YouTube. If you haven't seen the previous posts about this topic, the effect is based on UDK's implementation of 'Depth Dependent Halos' to increase readability of wireframes in complex scenes.



After I managed to get the desired effect I could simplify it significantly. Moving from two render-passes to one and from 18 texture look-ups to 'just' 9. This was possible by removing the normal 'diffuse' pass which is nothing more than the regular colored wireframe you can see in the video (when the halos are toggled-off), and instead using the information available inside the depth-buffer to construct the wireframe. This is pretty easy if you take into account that if (depth == 1) there is no geometry, where if (depth < 1) there is in fact a line that was drawn when constructing the depth-buffer. From this you create a colored wireframe and the halo inside the post-processor. The same data can be used to determine intersecting lines...removing the need for 9 texture lookups that sampled data from the original wireframe in the first prototype and instead re-using the sampled depth.

The result can be seen above...

4 comments:

  1. Hi, Any plans to release something of this.
    I'd like very much to have some halos into my engine stuff.

    Thanks

    ReplyDelete
  2. Hi,

    There are currently no plans to release it. But, if there is enough interest I might take the time to put it into a standalone sample. :)

    ReplyDelete
  3. You're doing great work man,

    Thanks anyway

    ReplyDelete
  4. Very nice! Great work.

    Would love to learn how this is done.

    ReplyDelete