an open source framework for photo realistic render of
play

An Open Source Framework for Photo-Realistic Render of Synthetic - PowerPoint PPT Presentation

An Open Source Framework for Photo-Realistic Render of Synthetic Elements in Captured Panoramas Dalai Felinto , Aldo Zang and Luiz Velho Fisheries Centre, UBC - Vancouver, Canada Visgraf Laboratory, IMPA - Rio De Janeiro, Brazil


  1. An Open Source Framework for Photo-Realistic Render of Synthetic Elements in Captured Panoramas Dalai Felinto ⋆ , Aldo Zang† and Luiz Velho† ⋆ Fisheries Centre, UBC - Vancouver, Canada † Visgraf Laboratory, IMPA - Rio De Janeiro, Brazil Blender Conference, Amsterdam, The Netherlands - October, 2012

  2. w3.impa.br/~zang/blenderconf ?

  3. Flight of the Navigator, 1986 The Smurfs, 2011 Terminator 2, 1991

  4. Problems of panoramas-only solutions

  5. So, how to make those wonderful Panoramas?

  6. So, how to make those wonderful Panoramas? Environment capture Panorama calibration Scene reconstruction Scene depth computation Illumination setup Synthetic elements Integration and rendering

  7. Environment capture

  8. EV -6 EV -4 EV -2 EV 0

  9. Calibration system

  10. Advantages of a calibration system Allow to move important sampling regions off the poles Less concern on tripod alignment for picture capturing It works with panoramas obtained from the internet Optimal aligned axis for the world reconstruction

  11. original panorama: hdrlabs.com

  12. original panorama: hdrlabs.com

  13. original panorama: hdrlabs.com

  14. Scene Reconstruction (IBL Toolkit)

  15. Floor Reconstruction

  16. Panorama Background

  17. # v e r s i o n 120 uniform sampler2D color_buffer ; uniform sampler2D depth_buffer ; uniform sampler2D texture_buffer ; uniform mat4 projectionmodelviewinverse ; # define PI 3.14159265 vec3 glUnprojectGL( vec2 coords) { float u = coords . s * 2.0, 1.0 ; float v = coords . t * 2.0, 1.0 ; vec4 view = vec4 (u , v , 1 . 0 , 1 . 0 ) ; vec4 world = projectionmodelviewinverse * vec4 (view . x , - view . y , view . z , 1 . 0 ) ; return vec3 (world [ 0 ] * world [ 3 ] , world [ 1 ] * world [ 3 ] , - world [ 2 ] * world [ 3 ] ) ; } vec2 equirectangular( vec3 vert) { float theta = asin (vert.z) ; float phi = atan (vert . x , vert . y) ; float u = 0 . 5 * (phi / PI) + 0 . 2 5 ; float v = 0 . 5 + theta / PI ; return vec2 (u , v) ; } void main( void ) { vec2 coords = gl_TexCoord [ 0 ] . st ; vec4 foreground = texture2D (color_buffer , coords) ; vec3 world = glUnprojectGL(coords) ; vec4 background = texture2D (texture_buffer , - equirectangular( normalize (world) ) ) ; float depth = texture2D (depth_buffer, coords).s ; if (depth > 0 .99995 ) foreground = background ; gl FragColor = foreground ; }

  18. Rendering

  19. Shadows

  20. Reflection

  21. Results

  22. original panorama: blendedskies.com

  23. original panorama: blendedskies.com

  24. original panorama: blendedskies.com

  25. Conclusions The Light-positional approach gives the correct world based accounts for rendering. One pass rendering solution. We don’t need to make compositions or work with layers. Extensible to Cycles render or other renderers. Light-depth map idea can be used for real time rendering in other contexts (games, interactive visualization, etc.) We can handle camera rotations and translations! It’s possible apply deformation of mesh and texture deformation to the modeled environment.

  26. Extra 1 - Environment Texture

  27. Extra 2 - Camera Travelling

  28. Extra 3 - Fisheye

  29. Acknowledgements Djalma Lucio Juliano Kestenberg Blender and Luxrender Developers Sam Schad www.blenderskies.com

  30. Questions?

  31. w3.impa.br/~zang/blenderconf An Open Source Framework for Photo-Realistic Render of Synthetic Elements in Captured Panoramas Dalai Felinto ⋆ , Aldo Zang† and Luiz Velho† ⋆ Fisheries Centre, UBC - Vancouver, Canada † Visgraf Laboratory, IMPA - Rio De Janeiro, Brazil Blender Conference, Amsterdam, The Netherlands - October, 2012

Recommend


More recommend