Hi,

> On 30 Jan, 2014, at 16:28, Johannes <jbru...@datasolid.de> wrote:
> 
> Hi Gerrit,
> 
> are you listening?

yes, only it's new year over here, so I'm at home. Therefore:

祝大家新年快乐 ;)

> I would like to try/use the new instancing geometry. After regeneration 
> of the documentation I could not find anything about the files residing 
> in folder Source/System/NodeCores/Drawables/Geometry/Instancing.
> A little search showed that flag OSG_ENABLE_NEW_GEOHANDLER is necessary 
> for these files to be part of the build. However, I can't overlook the 
> implications if turning that flag to true.

if there are any negative implications these are bugs. There is still one with
the osb loader as one combination of vbo/vao crashes, at least on linux.
But I plan to fix this one very soon. This one is actually the reason why
I haven't removed the old drawing/gl handling code from the geomety.

> After rereading the options 
> again I realized that I likewise have problems to explain some of the 
> other options properly.
> 
> Could you shed some light on it?

I'll try, but I traveled home without my laptop, so some I might have to defer
until I'm back on Tuesday. Typing a lot on an IPad is not much fun.

> What are the current limitation of the provided instancing 
> infrastructure with respect to ARB_draw_instanced, ARB_instanced_arrays, 
> ARB_draw_indirect, ARB_base_instance and ARB_transform_feedback_instanced?

currently I only implemented instancing based on glDrawElementsInstanced and
glDrawArraysInstanced, but the base vertex, base instance variants could be 
implemeted the same way. Indirect drawing hasn't made its way into OpenSG.
Into the tranform feedback variant I haven't looked yet, but that might take 
some
time before I can squeeze it in. 

The instancing information itself is not part of the geometr core, but is stored
in a different core (geoinstancer). That one references a base geometry for
drawing.

> Do you have any example how to use the new instancing properly?

Only with CSM (Examples/CSM/Instancing). What I haven't put in yet is reading
the instance parameter from a texture, this is work in progress.

> Similar, I'm interested to know about VAO (ARB_vertex_array_object) and 
> VBO and their connection to display lists in the context of OpenSG.

VAO/VBO are a platform dependent nightmare. In general the Vao part can not
be inside a diaplay list, so you are left with only the draw calls inside the 
list.
I would tend not to use display list with vao's. For the csm I build a test for
all geometry index and vbo/vao/display list variants 
(Examples/CSM/Models/IndexVariants),
but this one runs of a script (which I haven't ported to windows), but it is a 
place
to check if in doubt. Note some combination won't render. Currently I haven't 
tried
to put in code that falls back to something that actually renders an invalid 
combination.
Inside the sh scripts is a table with expectd results (no pos, no fallback 
means nothing
is rendered). The same set exists in the instancing example dir.

> Additionally, I would like to play with the complex scene manager. Are 
> there any options which must be properly set in order to run the examples?

the easiest is just to pass the directory of the example (one with a params.csm 
file)
as the only parameter. The param.csm is actually just a shortcut to store the 
appCSM
parameters in a file (I'm just lazy)

> I hope that my questions are not to blunt, but I would like to dive more 
> into modern OpenGL by means of OpenSG.

no problem, ask away, usually you learn something while explaining ;)

> Best,
> Johannes
> 
> 
>>> On 29.01.2014 19:40, Carsten Neumann wrote:
>>> On 01/29/2014 10:21 AM, Johannes Brunen wrote:
>>> I would like to ask for some background information about the following
>>> OpenSG build options:
>>> 
>>> OSG_ENABLE_OGL_VERTEXATTRIB_FUNCS

that one I have to check after returning home. IIRC somewhere some function 
names
were changed between OpenGL versions.

>>> OSG_ENABLE_NEW_SHADER

I though we removed that one, this one was there to enable the new shader 
infrastructure
and should be on. If we haven't removed it we should.

>>> OSG_NEW_GEOHANDLER

I rewrote parts of the old geo opengl handler to support vaos and now 
instancing.
It it only still there because of a bug in the osb loader, once I fix this I 
will remove the
old parts.

>>> OSG_ENABLE_OGL3_PROTOS
>>> OSG_ENABLE_OGL4_PROTOS

this one I have to check in detail, but IIRC it is for platforms (in general 
non dll platforms)
that allow you to link against newer OpenGL functions so one does not have to 
got through
the extension handling mechanism of the window.

>>> OSG_ENABLE_CSM_WIN7_FEATURES

Allow the CSM Window to recieve multi-touch events on Windows.

>>> OSG_ENABLE_WRITE_PYTHON_TO_SOURCE

Writes the generated python bindings into the source tree and not to some 
specified external location. Somewhere should be a module path which interacts
with this. I will check the details once I'm back home.

>>> OSG_ENABLE_AUTOINIT_THREADS

This auto initialises the threads local storage used by OpenSG for threads not 
directly created by OpenSG and where using an ExternalThreadObject is not
easily possible. IIRC somebody needed it to solve problem with java and the 
automatic garbage collection. If you control the thread creation and can use
an ExternalThread Object for non OpenSG threads this is not needed.

>>> OSG_ENABLE_PAR_PARTITION_DRAWING

This enables the possibility that for multi stage algorithms one stage is drawn
while the next is still culled. So for example when generating a cubemap, side
n will be drawn while side n+1 is already traversed for culling. Note this just 
enables
the code, but it still has to be enabled after creating the windows 
(Window::setPartitionDrawMode)
This is one of those old development options which should be removed.

>>> I'm most interested in the first block but would be interested to hear
>>> also about the second block.
>>> 
>>> Is it safe to enable OSG_ENABLE_NEW_GEOHANDLER and
>>> OSG_ENABLE_OGL_VERTEXATTRIB_FUNCS? What are the limitations and
>>> problems?

see above, in general if something does not work anymore when enabling those
it is a bug and should be fixed. They probably will removed rather sooner than 
later.

>>> What is about the OSG_ENABLE_MULTISHADER_VARCHUNK option. Shouldn't it
>>> be enabled on default?


that one I have to check. You are right that some should be on by default or 
removed
at all, as they come from development times and aren't needed anymore. I just 
haven't 
found time to go through the options ans throw these out.

Hope it helps a little.

kind regard
    gerrit
------------------------------------------------------------------------------
WatchGuard Dimension instantly turns raw network data into actionable 
security intelligence. It gives you real-time visual feedback on key
security issues and trends.  Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk
_______________________________________________
Opensg-users mailing list
Opensg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to