Experimented with this because I wanted to see if I could make regular scenes wacky, and remembered Rob Pieke’s projection plugin in the Renderman docs.

The ‘Droste’ effect is used to produce Escher style results, as explained here

Current tests already give really cool results:

To achieve this I simply distort the rays that the physical (now not so physical) lens shader produces, which is less efficient than just applying this as a post process in comp. However, there are benefits to seeing the effect in the Karma viewport as you work.

Setup

I’ve tidied up the scene file a little and made it self contained (no external .vfl files), so hopefully you can dig into it.

Things of note:

  • I’ve simplified the lens shader so it’s based off of the “Simple Lens” example in the SideFX docs (https://www.sidefx.com/docs/houdini/solaris/karma_lens_shader.html)
  • Check the “Type Properties >> Code” tab of the /stage/camera_lens_material_library/drostelens1 definition, it contains the droste implementation
  • The camera shader is overriden in the “Camera >> Karma >> Lens Shader VOP” parm

Scene File Download

(click on the Houdini logo)