Hi Folks!

I have developed a GPU-based underwater imaging sonar simulator for real-time 
applications (for further details please refer to my last paper 
(http://https://www.sciencedirect.com/science/article/pii/S0097849317301371)) 
using OSG + GLSL. The missing part is the reverberation effect, that can be 
represented by a ray-triangle intersection algorithm. This work uses 
precomputed information (normal and depth) during rasterization pipeline using 
shaders in order to calculate the simulated sonar data, however this way is 
restricted to primary reflections. To address the secondary reflections, I need 
to build a hybrid pipeline (rasterization and ray-triangle intersection), where 
the data computed in first shader (rasterization) will be used in second one 
(ray-triangle intersection) to produce the final precomputed information 
(normal and depth from both reflections). Once the data computed on fragment 
shader is not pixel level yet (they are ¨fragments¨), it is necessary to use 
the 
 FBO-RTT to allow two shader passes:

FIRST PASS
-> output: primary reflections (as RTT texture)
SECOND PASS
-> output: RTT texture + secondary reflections (as fragment out vec4 data)

My main C++ classes are: NormaDepthMap, responsible by OSG node and shaders; 
and ImageViewCaptureTool, where the camera with GraphicsContext is configured 
(e.g. resolution and field-of-view) and the scene/shader image is grabbed from 
NormalDepthMap. I investigated a lot the related OSG examples (osgdeferred, 
osgmultiplerendertargets, osgprerender and stereomatch) and I`m aware how the 
FBO-RTT works, where each RTT texture needs one PRE_RENDER camera. My question 
is: how can I set the FBO-RTT setup for my scenario, once I have the main 
camera defined at ImageViewCaptureTool and the shaders at NormalDepthMap?

I already have the source codes to implement the RTT (from osgCookbook):
https://github.com/openscenegraph/OpenSceneGraph/blob/master/examples/osgdeferred/osgdeferred.cpp#L161

Source codes:
- NormalDepthMap.hpp:           
https://github.com/Brazilian-Institute-of-Robotics/simulation-normal_depth_map/blob/master/src/NormalDepthMap.hpp
- NormalDepthMap.cpp:           
https://github.com/Brazilian-Institute-of-Robotics/simulation-normal_depth_map/blob/master/src/NormalDepthMap.cpp
- ImageViewerCaptureTool.hpp:   
https://github.com/Brazilian-Institute-of-Robotics/simulation-normal_depth_map/blob/master/src/ImageViewerCaptureTool.hpp
- ImageViewerCaptureTool.cpp:   
https://github.com/Brazilian-Institute-of-Robotics/simulation-normal_depth_map/blob/master/src/ImageViewerCaptureTool.cpp

Thanks in advance,

Rômulo Cerqueira[/url]

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=73530#73530





_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to