[osg-users] Request for assistance to embark into PhD

2013-10-23 Thread Mohamed Alji
Hello,

Being a software engineer, I did my final project study in 3D animation and 
virtual reality visualization using OpenSceneGraph. Today I want to prepare my 
thesis in augmented reality. I'm looking for a good topic to prepare in 3 years.

What are the themes of current research linking OpenSceneGraph and augmented 
reality? can you suggest me some possible topics ... for my future thesis?

Thank you in advance !
Alji


Mohamed ALJI
Blog http://aljilogy.blogspot.fr


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




___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for assistance to embark into PhD

2013-10-23 Thread Jan Ciger
Hi,

On Wed, Oct 23, 2013 at 10:51 AM, Mohamed Alji osgfo...@tevs.eu wrote:

 **
 Hello,

 Being a software engineer, I did my final project study in 3D animation
 and virtual reality visualization using OpenSceneGraph. Today I want to
 prepare my thesis in augmented reality. I'm looking for a good topic to
 prepare in 3 years.

 What are the themes of current research linking OpenSceneGraph and
 augmented reality? can you suggest me some possible topics ... for my
 future thesis?

 Thank you in advance !
 Alji



Speaking as someone who did a PhD in virtual reality/computer graphics
before, I think you need to look at it from a different angle. Don't look
at What topic I can use OSG for. That isn't really interesting at all
from a research point of view - OSG is a technology, a tool if you want. If
you start with that, you are putting yourself into a really difficult
position later on when you will have to explain your actual research
contribution in your thesis. We engineers often fall into a trap of
building contraptions - but that is engineering, not research.

Find an open problem in AR and try to solve that. If you can use OSG to
help you, great. If not, well, tough, but the research is the first goal,
not to use OSG. I suggest that you speak to your future thesis director
(did you find one already?) first - they could help you both by having an
overview of the state of the art in the field you are looking at and by
knowing what the requirements for a good thesis are.

Good luck!

Jan
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] openscenegraph window in qt not showing

2013-10-23 Thread Lokesh Kumar
Hi,
what i'm doing:-
 i'm creating an OpenSceneGraph based application by integrating
openscenegraph scene with QT GUI windowing system.
 
i'm using QML based UI navigation (QML views sits inside a QWidget which in
turn sits inside Borderlayout(as center widget) of Parent QWidget(main window)).

I'm switching QML UI's with signal slots mechanism, and on particular button
selection on QML view(qml signal to c++ QWidget), i'm removing current QML
view with QGLWidget which is paintaing OpenSceneGraph by calling osgViewer
frame() from paintEvent(QPaintEvent *):-

my problem :- 

 getting continues error on console : QOpenGLContext::swapBuffers()
 called with non-exposed window, behavior is undefined



code(not full) :-


 
 
   
 osg::Camera* createCamera(int x, int y, int w, int h )
{
  osg::DisplaySettings* ds = osg::DisplaySettings::instance().get();
 
  osg::ref_ptrosg::GraphicsContext::Traits traits = new
 osg::GraphicsContext::Traits;
  traits-windowDecoration = false;
  traits-x = x;
  traits-y = y;
  traits-width = w;
  traits-height =  h;
  traits-doubleBuffer = true;
 
  osg::ref_ptrosg::Camera camera = new osg::Camera;
  osgQt::initQtWindowingSystem();
  QGLFormat format = 
 osgQt::GraphicsWindowQt::traits2qglFormat(traits.get());
 
  osgQt::GLWidget* glwidget = new osgQt::GLWidget(format,0, 0, 0, true);
 
  camera-setGraphicsContext(new osgQt::GraphicsWindowQt(glwidget));
 
  camera-setClearColor( osg::Vec4(0.2, 0.2, 0.6, 1.0) );
  camera-setViewport( new osg::Viewport(0, 0, traits-width,
 traits-height) );
 
  camera-setProjectionMatrixAsPerspective(40.0f,
 static_castdouble(traits-width)/static_castdouble(traits-height),
 0.1f, 1000.0f );
 
  return camera.release();
 
}
   
 
 
 class GuiMainWindow:public QWidget
 {
 
  Q_OBJECT
 
  public:
 
 GuiMainWindow()
 {  
QDesktopWidget desktop;
QRect screen= desktop.screenGeometry();
WIDTH=screen.width();
HIGHT=screen.height();
 
_camera=createCamera(0,0,WIDTH,HIGHT);
_osgroot=new osg::Group;
_osgroot-addChild(osgDB::readNodeFile(c:/data/tank.flt)); 
}
 
 virtual void paintEvent(QPaintEvent *)
{
  if(osg_init)
_viewer.frame();
}
 
void setOsgScene(osg::Group* root,osg::Camera* camera)
{ 
  _viewer.setSceneData(root);
  _viewer.setCamera(camera);
  _viewer.setCameraManipulator(new osgGA::TrackballManipulator);
 
  _viewer.setThreadingModel( osgViewer::Viewer::SingleThreaded);
 
  osgQt::GraphicsWindowQt* gw 
 =dynamic_castosgQt::GraphicsWindowQt*(camera-getGraphicsContext());
 
 
  if(gw)
 {
   _layout_center_widget=gw-getGLWidget();
   
   _layout_center_widget=glw;
  
   _layout_center_widget-setFocusPolicy(Qt::TabFocus);
   
   _base_layout_pane-addWidget(_layout_center_widget, 
 BorderLayout::Center);
   _base_borderLayout-update();

 }
 
 connect( _render_timer, SIGNAL(timeout()), this, SLOT(update()));

 osg_init=true;
 
 _render_timer.start(16.66);
 
}
 
   void removeQmlView()
   {
qDebug(removing current Qml view..);
if(_qml_view)
   _qml_view-destroy();
   }
 
   void removeCenterWidget()
   {
   if(_layout_center_widget)
   {
   qDebug(removing current center_widget..);
   _base_borderLayout-removeWidget(_layout_center_widget);
 
   }
  
   }
 
   void nextUIFrame(QString str)
   {
 
  
  if(str.compare(OSG,Qt::CaseInsensitive)==0)
 {
qDebug(OSG Window from QML);

removeQmlView();  
removeCenterWidget();
 
setOsgScene(this-_osgroot,this-_camera);
 
   return;
 }
 
 if(str.compare(SPLASH,Qt::CaseInsensitive)==0)
 {
 
   Loader* loader=Loader::getInstance();
   OSGutil::osgResourceManager* 
 osgResmng=OSGutil::osgResourceManager::getInstance();
 
   removeQmlView(); 
 
   _qml_view=new QQuickView();
   _qml_view-rootContext()-setContextProperty(GuiWindowCpp,this);
 
   _qml_view-setSource(QUrl::fromLocalFile(c:/splash.qml);
   QQuickItem* obj=_qml_view-rootObject();
 
 
  
 connect(loader,SIGNAL(feedProgressInfo(QVariant)),obj,SLOT(printCurrentLabel(QVariant)));
  
 connect(osgResmng,SIGNAL(feedProgressData(QVariant)),obj,SLOT(printCurrentValue(QVariant)));
 
   removeCenterWidget();
 
   
 _layout_center_widget=QWidget::createWindowContainer(_qml_view,this);
   

Re: [osg-users] Request for assistance to embark into PhD

2013-10-23 Thread Mohamed Alji
Hi,

Very good point, you are right. OSG is a technology , I have to see it as a 
tool in my research. 

Where can I find an open AR problem ? where am I supposed to look ? How to do 
that ? 

ps: I found a thesis director, I will speak to him later today. 


Thank you!

Cheers,
Mohamed


Mohamed ALJI


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




___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for assistance to embark into PhD

2013-10-23 Thread Jan Ciger
Hi,

On Wed, Oct 23, 2013 at 12:28 PM, Mohamed Alji osgfo...@tevs.eu wrote:

 **
 Hi,

 Very good point, you are right. OSG is a technology , I have to see it as
 a tool in my research.


Keep that in mind - it is easy to slip into the engineering mindset and
just do some coding or whatever - but that isn't really research and a lot
of people get burned by that. They arrive to the thesis defence with a
mountain of code, but nothing really new, scientifically speaking.


 Where can I find an open AR problem ? where am I supposed to look ? How to
 do that ?


Well ... I think that the best thing to do is to look for books, papers,
theses etc. in the field you want to work in. That will give you the idea
what is known and is considered the state of the art. It takes time,
because you must first understand the field sufficiently to essentially
know what you don't know :) Then you can pick a problem to work on.

Your thesis advisor/director and senior researchers in the lab you are
going to do the doctorate at could help you a lot there. Typically they
might have a topic or problem for you to work on already.

Also don't worry too much about the topic you may be asked to write on your
PhD application - one usually puts there something extremely generic,
because you won't know a good problem to work on before you have done about
a year of research in the field!



 ps: I found a thesis director, I will speak to him later today.


I think that is the best thing to do.

J.
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] [forum] what happened to khronos.org?

2013-10-23 Thread David Glenn
Greetings All!
Has anyone noticed that khronos.org is down or is it me? 

Thank you!

D Glenn


David Glenn
---
D Glenn 3D Computer Graphics Entertainment.
www.dglenn.com

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





___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] Preferred method for per-context uniforms

2013-10-23 Thread Paul Martz
Hi all -- I've been inactive with OSG lately, but from time to time get
called back. Given my lack of recent experience, I would appreciate your
help with this issue.

I have a multicontext/multidisplay app that needs to compute a uniform
during cull, and it will have a different value for each context/display.
Computing the uniform value is straightforward, but actually executing the
uniform per-context during draw is somewhat difficult.

I can't simply store the uniform in the Node's StateSet, for example,
because doing that during cull is not thread safe.

Ideally I would store the uniform in a vector indexed by context ID, but I
don't have a context ID during cull.

Would it be feasible to store the uniforms in a map indexed by RenderStage
address, then execute the uniforms from a Camera per-draw callback?

Assuming I use a per-context or per-RenderStage container to store the
uniforms, how do I initially grow that container in a thread-safe way
during the first frame?

What are other people doing in this situation? Thanks in advance for the
advice.

-- 
Paul Martz
Skew Matrix Software LLC
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Preferred method for per-context uniforms

2013-10-23 Thread Robert Osfield
HI Paul,

If you have just a single uniform value per context then I'd simply place
the Uniform on the each if the viiewer's osg::Camera's StateSet, such that
each Camera assigned to each Context gets it's own state inherited down
including the Uniform.

If you want to put a vector of Uniform in the scene graph, then It would
probably be most robust to use a custom osg::Group node that manages the
cull traversal where it push/pops the approach Unifiorm as well as any
resizeGLObjectBuffers/releaseGLObjects etc.  The key to doing it thread
safe is to make sure you have allocated the vector to the required number
of contexts prior to traversal - this is what the resizeGLObjectsBuffers()
helps with.

Robert.


On 23 October 2013 17:38, Paul Martz skewmat...@gmail.com wrote:

 Hi all -- I've been inactive with OSG lately, but from time to time get
 called back. Given my lack of recent experience, I would appreciate your
 help with this issue.

 I have a multicontext/multidisplay app that needs to compute a uniform
 during cull, and it will have a different value for each context/display.
 Computing the uniform value is straightforward, but actually executing the
 uniform per-context during draw is somewhat difficult.

 I can't simply store the uniform in the Node's StateSet, for example,
 because doing that during cull is not thread safe.

 Ideally I would store the uniform in a vector indexed by context ID, but I
 don't have a context ID during cull.

 Would it be feasible to store the uniforms in a map indexed by RenderStage
 address, then execute the uniforms from a Camera per-draw callback?

 Assuming I use a per-context or per-RenderStage container to store the
 uniforms, how do I initially grow that container in a thread-safe way
 during the first frame?

 What are other people doing in this situation? Thanks in advance for the
 advice.

 --
 Paul Martz
 Skew Matrix Software LLC

 ___
 osg-users mailing list
 osg-users@lists.openscenegraph.org
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Preferred method for per-context uniforms

2013-10-23 Thread Lionel Lagarde

Hi,

We have to manage some similar problems. We have different shaders and 
different uniforms in the same

scene graph.

Some nodes have a cull callback. During the cull traversal, the callback 
identify the current view/context
and push the corresponding state set in the render graph, traverse the 
children and pop the state set.




On 23/10/2013 18:49, Robert Osfield wrote:

HI Paul,

If you have just a single uniform value per context then I'd simply 
place the Uniform on the each if the viiewer's osg::Camera's StateSet, 
such that each Camera assigned to each Context gets it's own state 
inherited down including the Uniform.


If you want to put a vector of Uniform in the scene graph, then It 
would probably be most robust to use a custom osg::Group node that 
manages the cull traversal where it push/pops the approach Unifiorm as 
well as any resizeGLObjectBuffers/releaseGLObjects etc.  The key to 
doing it thread safe is to make sure you have allocated the vector to 
the required number of contexts prior to traversal - this is what the 
resizeGLObjectsBuffers() helps with.


Robert.


On 23 October 2013 17:38, Paul Martz skewmat...@gmail.com 
mailto:skewmat...@gmail.com wrote:


Hi all -- I've been inactive with OSG lately, but from time to
time get called back. Given my lack of recent experience, I would
appreciate your help with this issue.

I have a multicontext/multidisplay app that needs to compute a
uniform during cull, and it will have a different value for each
context/display. Computing the uniform value is straightforward,
but actually executing the uniform per-context during draw is
somewhat difficult.

I can't simply store the uniform in the Node's StateSet, for
example, because doing that during cull is not thread safe.

Ideally I would store the uniform in a vector indexed by context
ID, but I don't have a context ID during cull.

Would it be feasible to store the uniforms in a map indexed by
RenderStage address, then execute the uniforms from a Camera
per-draw callback?

Assuming I use a per-context or per-RenderStage container to store
the uniforms, how do I initially grow that container in a
thread-safe way during the first frame?

What are other people doing in this situation? Thanks in advance
for the advice.

-- 
Paul Martz

Skew Matrix Software LLC

___
osg-users mailing list
osg-users@lists.openscenegraph.org
mailto:osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org




___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] How does geometry get deleted?

2013-10-23 Thread Keith Steiger
I'm using osgSim::LineOfSight to do calculations in an app with no GUI.  
Everything's working well, except the memory usage keeps growing to the point 
that it exceeds 4 gigs and crashes.  A majority of the time, it's allocating 
memory in osgTerrain::GeometryTechnique::generateGeometry when it crashes.  How 
would I go about un-generating geometry to keep my memory usage under control?

keith.stei...@plexsys.commailto:keith.stei...@plexsys.com
(who will be ridiculously grateful for any help he gets)

___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org