I will be happy to share my project as soon as I get the first parts to work.

A long time ago I created a portal renderer. It used recursion and frustums 
that extended from each portal. Something like this:
    
    
    # Pseudo
    
    proc cellRender(cell, frustum):
      ...
      for o in cell.objects:
        if frustum.contains(o.bsphere):
          case o.type:
            of drawable:
              drawableRender(o, frustum)
            of portal:
              cellRender(o.cell, o.frustum)
      ...
    
    cellRender(startingCell, camera.frustum)
    

The same code can be used for each light as well. The portal and camera should 
then test for collision to decide if the observer enters an new cell.

About the conflict. The file `fancygl.nim` imports a regexp module called `nre` 
which is part of the Nim standard library. The module `nre` imports a module 
called `options`, but there are 2 modules called `options` inside the 
searchPath, `compile/options` and `pure/options`. This causes a conflict. I 
assume this is a bug in the master branch version I am using.

Reply via email to