For the past couple of weeks, I've been diving into some new code. It all 
started out when I started using OpenImageIO as image i/o library for lux. 
OpenImageIO provides some functionality which is relevant in a panorama 
programming context, namely it's 'environment' function, which samples a 
full spherical with proper antialiasing and interpolation. I found this 
function 'tasty' and started playing with it. This led me to try feeding 
'cubemaps' to it, which is another format used to cover an entire 360X180 
degree environment. Alas, no luck here, not supported. lux has it's own 
flavour of cubemap processing, but I'm not entirely happy with it's 
performance, so next I decided to investigate cubemaps to maybe come up 
with better code. To have some standard to adhere to, rather than my 
'ad-hoc' approach in lux, I turned to openEXR's 'flavour' of cubemap. I 
started out by using their utility to convert between cubemaps and full 
sphericals ('exrenvmap') but I wasn't happy with it - it didn't work as I 
expected. Correspondence with the openEXR people turned out that cubemaps 
are not used much and their code is twenty years old and probably not 
entirely correct - and slow. Time to start coding myself, and to use my 
library zimt to code it all in multithreaded SIMD code for speed!
I first coded a utility to convert between full spherical (a.k.a lat/lon) 
format and cubemap format. This led to more code dealing with cubemaps - 
the utility is now quite capable and offers a few - hopefully - interesting 
features. Then, to work towards transferring my new insights and code to 
lux, I wrote code to reproject environment images (both full sphericals and 
cubemaps) to common projections: rectilinear, spherical, cylindrical, 
fisheye, stereographic and cubemap. This latter code is what is probably 
most relevant in a panorama programming context, so I'd like to point you 
to it. It may also be of interest to the libpano project. The code is here 
<https://github.com/kfjahnke/envutil>. There's a demo program 'stepper.cc' 
which shows how the code base can be employed to code reprojections very 
tersely - giving a virtual camera orientation with Euler angles is 
built-in. I may elaborate the demo program - so far, there is no 
parameterization with CL arguments, it's just a simple pass-an-environment 
and get preprojected images demo, but I thought that now is a good time to 
point you to this new project. The code is extensively commented, and it's 
all MIT-licensed.

-- 
A list of frequently asked questions is available at: 
http://wiki.panotools.org/Hugin_FAQ
--- 
You received this message because you are subscribed to the Google Groups 
"hugin and other free panoramic software" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/hugin-ptx/75677626-f6ac-4506-9b65-bac8d9764d47n%40googlegroups.com.
  • [hugin-ptx] ne... 'kfj' via hugin and other free panoramic software
    • [hugin-pt... 'kfj' via hugin and other free panoramic software
      • [hugi... 'kfj' via hugin and other free panoramic software
        • [... 'kfj' via hugin and other free panoramic software
          • ... 'kfj' via hugin and other free panoramic software
            • ... 'chaosjug' via hugin and other free panoramic software
              • ... 'Kay F. Jahnke' via hugin and other free panoramic software
              • ... 'Kay F. Jahnke' via hugin and other free panoramic software
                • ... 'kfj' via hugin and other free panoramic software
                • ... 'kfj' via hugin and other free panoramic software

Reply via email to