Re: [osg-users] NodeKit integration in OpenSceneGraph-2.x series

2008-11-10 Thread Robert Osfield
Hi Jan,

On Sun, Nov 9, 2008 at 7:03 PM, Jan Ciger [EMAIL PROTECTED] wrote:
 Just a parenthesis - I gave quite a bit of feedback to Cedric about
 this. I think that there are some design issues that need to be
 addressed first, before it even reaches basic feature parity with
 existing code in osgCal or Replicant when concerning basic animation
 support (not the more advanced stuff in Replicant).

And this is why I wanted to encourage discussion about it from those
experienced with osgCal etc. ;-)

osgAnimation does have a lot of promise, that promise is most likely
to be fulfilled with usage and refinement.  This is exactly how the
core OSG shaped up from being a tiny niche scene graph that could
render a shiny cow to one that can do what it does today.

 Physics is an integration issue as we'll never attempt to do wholesale
 physics ourselves, I haven't reviewed any strong candidates for this
 role yet.

 I wouldn't try to integrate physics as such - that is a monstrous job
 and you would be tied to one engine that doesn't fit everyone (which
 one? ODE? Bullet? Havoc? ...)

 I would rather make things easy to integrate by the end users (e.g. an
 easy way to get bounding boxes and meshes from  the nodes at runtime for
 collision detection) and perhaps include a collision detection support
 in the core scenegraph. This has been a persistent question over the
 years and a good integration of collision detection needs support from
 the scenegraph.

I covered this point in my email on the physics integration thread - I
don't want an osgPhysics library tied to specific physics engine, but
rather a NodeKit that facilitates the integration of physics engines.
It's best to track down this email as it goes into my thoughts on this
topic in far more detail than is appropriate to repeat here.

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


Re: [osg-users] NodeKit integration in OpenSceneGraph-2.x series

2008-11-10 Thread Wang Rui
Hi Robert,
I agree that a new library should be added carefully, or it will become a
burden for developers and users. I plan to devide the modeling library into
several parts: basic modelers (extrusions, revolutions), parametric curves
and surfaces (Bezier and NURBS), polygon technologies (simplification,
subdivision and triangle striping) and helpers (BSP, animation deformers,
k-dop, OBB bounding boxes, boolean operators). Some of them are in
progress and some in design. It need a long time before practical uses, but
I will try to make the library stable and usable and prepare for
the integration at any time.
I would also help improve the documents of OSG classes and functions. At
present, I am a maintainer of the osgchina website and try to help some of
the Chinese beginners realize OSG principles more easily, also have
translated Paul Martz's famous OSGQSG into Chinese and finished
writing series of tutorials. Maybe I could help complete some of the
comments in comming days.

Regards,
Wang Rui

2008/11/10 Robert Osfield [EMAIL PROTECTED]

 Hi Wang Rui,

 I was wondering about mentioning modelling functionality in my email,
 but held back as it's potentially a huge and complex topic in itself.

 I certainly open to nurbs support in the core OSG, hard stuff are
 items like computing accurate intersections between nurbs.  The same
 goes for basic geometry construction.  Currently we have various
 things for creating scene graph elements in osgUtil, and the
 ShapeDrawable in core osg.  If we had a osgModelling NodeKit/utility
 library then these elements might be best moved into osgModelling.

 The are a number of areas in geometry creation that can get very
 complex, I know because I've done a work in this in the past -
 sometimes things get far more complex than original expected once you
 deal with real world data.  This complexity also raises the bar for
 how many users are capable of helping maintain it.  The fewer the
 users available to maintain the more often it falls on my shoulders to
 fix problems, but given my role these days I have to function as a
 multi-tasker covering many different topics it makes it very hard for
 me to have sufficient time and focus to tackle these complex problems.
  Due to this maintenance issue taking on any NodeKit makes me bit
 nervous, the more advanced it is the more of challenge it will be for
 me to keep on top of it.

 There already couple of NodeKit's in the OSG that I already feel not
 fully able to maintain them, and these NodeKit's have been effectively
 orphaned so it has ended up on my shoulders to maintain them.  New
 NodeKit's don't solve these existing maintenance issue only add to the
 possible burden so I have to be very careful.   Having NodeKit's
 develop out in the community and be shook down prior to integration is
 the way forward on this.

 Robert.

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


Re: [osg-users] NodeKit integration in OpenSceneGraph-2.x series

2008-11-10 Thread Sukender
 Hi Sukender,

 On Mon, Nov 10, 2008 at 11:06 AM, Sukender [EMAIL PROTECTED] wrote:
 I agree that dependencies are generally a burden when compiling OSG (thanks 
 to those who maintain 3rd party libs!). And I won't suggest intagration of 
 huge libs anymore!
 But do you think some users could be interested in code that has 
 dependencies, but distrubuted *outside* OSG? I mean perhaps some people 
 already said I want library XYZ to be integrated into OSG ; so maybe this 
 could be useful to put links to existing code on the wiki? Maybe a 
 Already-coded libs integrations-like paragraph anywhere on the wiki could 
 be useful? Well, that's just an idea...

 We already have a Wiki page for community maintained NodeKits.

  http://www.openscenegraph.org/projects/osg/wiki/Community/NodeKits

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

Allright, I thought it was only for nodekits, not for integration of a specific 
library.

-- 
Sukender
PVLE - Lightweight cross-platform game engine - http://pvle.sourceforge.net/
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] NodeKit integration in OpenSceneGraph-2.x series

2008-11-10 Thread Robert Osfield
Hi Sukender,

On Mon, Nov 10, 2008 at 11:06 AM, Sukender [EMAIL PROTECTED] wrote:
 I agree that dependencies are generally a burden when compiling OSG (thanks 
 to those who maintain 3rd party libs!). And I won't suggest intagration of 
 huge libs anymore!
 But do you think some users could be interested in code that has 
 dependencies, but distrubuted *outside* OSG? I mean perhaps some people 
 already said I want library XYZ to be integrated into OSG ; so maybe this 
 could be useful to put links to existing code on the wiki? Maybe a 
 Already-coded libs integrations-like paragraph anywhere on the wiki could 
 be useful? Well, that's just an idea...

We already have a Wiki page for community maintained NodeKits.

 http://www.openscenegraph.org/projects/osg/wiki/Community/NodeKits

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


Re: [osg-users] NodeKit integration in OpenSceneGraph-2.x series

2008-11-10 Thread Sukender
Hi Robert,

 Hi Sukender,

 On Mon, Nov 10, 2008 at 9:56 AM, Sukender [EMAIL PROTECTED] wrote:
 ** About utilities:
 I coded some little features that could be integreated into OSG, but I have 
 one problem: these are often specific and very small (not enough to create a 
 nodekit). So what? May I suggest them to be integrated into osgUtil or such? 
 In osg-submissions perhaps?
 Note : I'm also working a lille bit on audio (OpenAL - osgAL) and UDP 
 networking (TNL).

 We have to be careful about when and where we do feature integration.
 Sometime integration could be put into a pre-exisitng library, I do
 raise this point in my first post, but countering this if extra
 external dependencies are brought in by an addition.

Err... well, I'm not sure I explained myself the right way. I was saying that I 
coded some utilities *that have no other depedency* than OSG but that could be 
a little bit specific. So you think that I may discuss them on osg-submissions, 
or here? (The note about openAL/TNL was something completely different...)


 ** About dependencies:
 I agree that dependencies should be added only when really needed, but in 
 another hand, it is sometimes useful to link against lower-level portable 
 libraries. I'm actually thinking about boost libraries (filesystem.path, 
 program_options, and smart pointers).
 For instance, I coded overloads of osgSB::read*() that take 
 boost::filesystem::path. The main benefit is of course to handle paths the 
 same way under many OSes. Do you think that it could be possible in OSG?

 Each dependency needs to be viewed on its own merit, and kept to
 specific scope.  The larger the dependency the smaller the scope it
 should have, i.e. be kept to a plugin or a specific NodeKit.  This
 approach allows users to be able to gain the bulk of OSG functionality
 without needing to pull together other significant libs.  Boost is
 something that I'd put under the category of a big dependency and as
 such isn't something that should go any where near the core OSG that
 needs to be kept as light and easily portable with minimal
 dependencies.  You are welcome to add such dependencies to your own
 app, but for the OSG I need to keep the core clean as possible as it's
 the common denominator that we all share.

 As guide I'd recommend having a look at the way I've managed exisiting
 NodeKits and dependencies.  You'll find the core OSG libs all just
 depend upon principally C++ and OpenGL, this is something that has
 guided OSG development right from the beginning and is something that
 has helped the OSG port to far more platforms than competing real-time
 graphics toolkits.

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


I agree that dependencies are generally a burden when compiling OSG (thanks to 
those who maintain 3rd party libs!). And I won't suggest intagration of huge 
libs anymore!
But do you think some users could be interested in code that has dependencies, 
but distrubuted *outside* OSG? I mean perhaps some people already said I want 
library XYZ to be integrated into OSG ; so maybe this could be useful to put 
links to existing code on the wiki? Maybe a Already-coded libs 
integrations-like paragraph anywhere on the wiki could be useful? Well, that's 
just an idea...


Sukender
PVLE - Lightweight cross-platform game engine - http://pvle.sourceforge.net/
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] NodeKit integration in OpenSceneGraph-2.x series

2008-11-10 Thread Sukender
Hi Robert, hi everyone,

I agree with your vision and think that this will push OSG to more power and 
popularity. Grouping, refactoring and factorizing are always great ideas - even 
if that would require a lot of work from the whole community.

About physics: I want to say something, but I didn't found the physics 
integration thread... (I just changed my email address so that my inbox is 
almost empty!)


** About utilities:
I coded some little features that could be integreated into OSG, but I have one 
problem: these are often specific and very small (not enough to create a 
nodekit). So what? May I suggest them to be integrated into osgUtil or such? In 
osg-submissions perhaps?
Note : I'm also working a lille bit on audio (OpenAL - osgAL) and UDP 
networking (TNL).


** About organization:
I think that work that is enough general purpose should be integrated into 
OSG, but that maybe needs a little bit organization: as the number of functions 
and classes will grow, the user may get lost. Here are some ideas:
- Create sub-namespaces to split big ones
- Create an index (in reference docs) by theme (meshes boolean operations, 
image processing, post-render effects, spatialized audio...)
- And of course update the wiki as it is already!
For me, that's leaving less and less code in my engine, which is great news - 
since it could be useful to more people of course.


** About dependencies:
I agree that dependencies should be added only when really needed, but in 
another hand, it is sometimes useful to link against lower-level portable 
libraries. I'm actually thinking about boost libraries (filesystem.path, 
program_options, and smart pointers).
For instance, I coded overloads of osgSB::read*() that take 
boost::filesystem::path. The main benefit is of course to handle paths the same 
way under many OSes. Do you think that it could be possible in OSG?


Sincerely,

-- 
Sukender
PVLE - Lightweight cross-platform game engine - http://pvle.sourceforge.net/



Le Sun, 09 Nov 2008 17:25:34 +0100, Robert Osfield [EMAIL PROTECTED] a écrit:

 Hi All,

 There has been lots of discussion about various NodeKit or last month
 or two.  In OSG-2.6 we saw the introduction of osgWidget from the
 community, in OSG-2.8 we'll see the integration of new osgVolume
 library.  OSG-2.10 is likely to see the integration of osgAnimation,
 but if things converge quickly for this NodeKIt it might even make it
 into OSG-2.8.

 There are other NodeKits out into the community, some are up to date
 and well maintained others rather dormant or even orphaned.  Each of
 these NodeKit could be put forward for integration with the core OSG.
 Whether any of these should be integrated and if so how one goes about
 is something that is worthy of discussion. I don't think we need
 heavily structured metrics to measure NodeKits against, but some
 informal metrics might help provide some transparency in the process.
 Here's a couple to get started with:

 1) What overall feature set does the OpenSceneGraph need as it evolves
 to better meet the common needs of the community?

All NodeKits needs to be take as a step towards this goal, this
 includes ones already in OpenSceneGraph trunk.

But how to define the goals for the OpenSceneGraph for the 2.x and
 3.x series and beyond?

 2) All NodeKit to make into the core OpenSceneGraph need to be
 portable across all platforms. (Or might there be exceptions??)

 3) All NodeKit to make into the core OpenSceneGraph need to fit to the
 C++ design and coding style

 4) All NodeKit need to be activity used and supported by a range of
 members in the community.

 5) Granularity of NodeKits need to fit the function as well as the
 breadth/complexity of functionality encompassed.

 6) Where functionality of two NodeKits overlap then for integration to
 occur the NodeKit need to be merged in some fashion,
 this might be that osgOriginal and osgNew get merged into
 osgOriginal, or even into a osgBetterNameForCombination.

 Migration to new merged classes/NodeKits would require a system
 for helping existing users migrate / provide deprecated functionality
 for a defined period.

 7) Naming of NodeKits should be descriptive of it's function, prefer
 long descriptive name over short acronyms.

 8) NodeKits should have ascii read/write support, but ideally binary
 support too (we really need an extensible binary format).

 9) NodeKits must be wrap-able via osgIntrospection/genwrapper.

 10) NodeKit should facilitate collaboration and quell fragmentation of
 code and developer resources.

 11) NodeKit should be of solid design and implementation quality.

 12) NodeKit and dependency proliferation should be deemed a negative
 quality - a NodeKit must add real value to compensate for the
  extra complexity it introduces.

 OK, feel free to add more/refine the above.  Once this discussion
 reaches some kind of conclusion I'll put up a page on the WIKI
 summarising it all.

 Putting the above 

Re: [osg-users] NodeKit integration in OpenSceneGraph-2.x series

2008-11-10 Thread Robert Osfield
Hi Wang Rui,

I was wondering about mentioning modelling functionality in my email,
but held back as it's potentially a huge and complex topic in itself.

I certainly open to nurbs support in the core OSG, hard stuff are
items like computing accurate intersections between nurbs.  The same
goes for basic geometry construction.  Currently we have various
things for creating scene graph elements in osgUtil, and the
ShapeDrawable in core osg.  If we had a osgModelling NodeKit/utility
library then these elements might be best moved into osgModelling.

The are a number of areas in geometry creation that can get very
complex, I know because I've done a work in this in the past -
sometimes things get far more complex than original expected once you
deal with real world data.  This complexity also raises the bar for
how many users are capable of helping maintain it.  The fewer the
users available to maintain the more often it falls on my shoulders to
fix problems, but given my role these days I have to function as a
multi-tasker covering many different topics it makes it very hard for
me to have sufficient time and focus to tackle these complex problems.
  Due to this maintenance issue taking on any NodeKit makes me bit
nervous, the more advanced it is the more of challenge it will be for
me to keep on top of it.

There already couple of NodeKit's in the OSG that I already feel not
fully able to maintain them, and these NodeKit's have been effectively
orphaned so it has ended up on my shoulders to maintain them.  New
NodeKit's don't solve these existing maintenance issue only add to the
possible burden so I have to be very careful.   Having NodeKit's
develop out in the community and be shook down prior to integration is
the way forward on this.

Robert.

On Mon, Nov 10, 2008 at 12:45 AM, Wang Rui [EMAIL PROTECTED] wrote:
 Hi Robert.

 I wonder if there is a plan to add a modeling library to the core OSG in
 future. Not because I'm working on a similar library 'osgModeling', but also
 from the experiences of other 3D graphics APIs. Take VRS3D for example, it
 has a number of common functionalitys which help build user customized
 models from curves and parameters, like extrusions (VRS::Extrusion),
 revolutions (VRS::Hyperboloid), torus and the most important, Bezier and
 NURBS.
 Of course, OSG focuses on how to improve the efficiency of rendering and
 most models are generated from external libraries and software (like
 3dsmax). But some times we may need build models from curve and point data
 of end-users. It is a trouble if these data should be converted by other
 software and transferred back to OSG, especially on the network. Also a
 modeling nodekit is a good place for some of existing classes to live in,
 like Delaunay, Simplifier and SmoothingVisitor, and a good start for future
 developments. Maybe we could create and assemble models using a modeling
 nodekit and control them with an animation nodekit in comming days.

 I would like to help develop such nodekits and share my existing code if
 others have better plans and actions. Also I would keep on developing
 osgModeling as a external project if a modeling library is not needed at
 present, and be glad to do any work to improve and popularize OSG. There are
 thousands of OSG members in China (statistics from the osgchina forum) and
 it will be a great power of the OSG community in any time.
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] NodeKit integration in OpenSceneGraph-2.x series

2008-11-09 Thread Erik den Dekker

  Animation is something that is under-way in the form of osgAnimation,
  which started life as AnimTK and has evolved rapidly to tick many more
  of the above items, so it looks to be rapidly becoming a good
  candidate for inclusion.
 
 Just a parenthesis - I gave quite a bit of feedback to Cedric about
 this. I think that there are some design issues that need to be
 addressed first, before it even reaches basic feature parity with
 existing code in osgCal or Replicant when concerning basic animation
 support (not the more advanced stuff in Replicant).

Jan, I followed your comments to Cedric and above with interest. You made
several important remarks to ensure that osgAnimation will properly support
character animation / skeletal animation. 

However, I wonder if you are not putting too much emphasis on just this
aspect while there may be more ways to do and use animation. It is my
understanding that animation means that a certain aspect of a scene is under
control so it can be changed over time. This aspect is usually orientation,
position or scale, but may also be color, a float weight, a bool, a string,
etc... maybe some custom type. IMHO osg should take a generic approach
towards animation, albeit probably not too generic :). Perhaps 3D studio max
(or similar - I just happen to have some experience with this app) can be
taken as an example how to approach animation. It uses animation controllers
and key frame animation to implement animation and in my experience this is
quite flexible. I wonder how far osgAnimation should go in replicating
similar functionality.

This said, I must admit that I have only quickly glanced over osgAnimation
in its current state, and I believe it already supports much of what I
mentioned.

Cheers,

Erik den Dekker



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


Re: [osg-users] NodeKit integration in OpenSceneGraph-2.x series

2008-11-09 Thread Wang Rui
Hi Robert.

I wonder if there is a plan to add a modeling library to the core OSG in
future. Not because I'm working on a similar library 'osgModeling', but also
from the experiences of other 3D graphics APIs. Take VRS3D for example, it
has a number of common functionalitys which help build user customized
models from curves and parameters, like extrusions (VRS::Extrusion),
revolutions (VRS::Hyperboloid), torus and the most important, Bezier and
NURBS.

Of course, OSG focuses on how to improve the efficiency of rendering and
most models are generated from external libraries and software (like
3dsmax). But some times we may need build models from curve and point data
of end-users. It is a trouble if these data should be converted by other
software and transferred back to OSG, especially on the network. Also a
modeling nodekit is a good place for some of existing classes to live in,
like Delaunay, Simplifier and SmoothingVisitor, and a good start for future
developments. Maybe we could create and assemble models using a modeling
nodekit and control them with an animation nodekit in comming days.

I would like to help develop such nodekits and share my existing code if
others have better plans and actions. Also I would keep on developing
osgModeling as a external project if a modeling library is not needed at
present, and be glad to do any work to improve and popularize OSG. There are
thousands of OSG members in China (statistics from the osgchina forum) and
it will be a great power of the OSG community in any time.

Best wishes,
Wang Rui
2008/11/10 Robert Osfield [EMAIL PROTECTED]

 Hi All,

 There has been lots of discussion about various NodeKit or last month
 or two.  In OSG-2.6 we saw the introduction of osgWidget from the
 community, in OSG-2.8 we'll see the integration of new osgVolume
 library.  OSG-2.10 is likely to see the integration of osgAnimation,
 but if things converge quickly for this NodeKIt it might even make it
 into OSG-2.8.

 There are other NodeKits out into the community, some are up to date
 and well maintained others rather dormant or even orphaned.  Each of
 these NodeKit could be put forward for integration with the core OSG.
 Whether any of these should be integrated and if so how one goes about
 is something that is worthy of discussion. I don't think we need
 heavily structured metrics to measure NodeKits against, but some
 informal metrics might help provide some transparency in the process.
 Here's a couple to get started with:

 1) What overall feature set does the OpenSceneGraph need as it evolves
 to better meet the common needs of the community?

   All NodeKits needs to be take as a step towards this goal, this
 includes ones already in OpenSceneGraph trunk.

   But how to define the goals for the OpenSceneGraph for the 2.x and
 3.x series and beyond?

 2) All NodeKit to make into the core OpenSceneGraph need to be
 portable across all platforms. (Or might there be exceptions??)

 3) All NodeKit to make into the core OpenSceneGraph need to fit to the
 C++ design and coding style

 4) All NodeKit need to be activity used and supported by a range of
 members in the community.

 5) Granularity of NodeKits need to fit the function as well as the
 breadth/complexity of functionality encompassed.

 6) Where functionality of two NodeKits overlap then for integration to
 occur the NodeKit need to be merged in some fashion,
this might be that osgOriginal and osgNew get merged into
 osgOriginal, or even into a osgBetterNameForCombination.

Migration to new merged classes/NodeKits would require a system
 for helping existing users migrate / provide deprecated functionality
for a defined period.

 7) Naming of NodeKits should be descriptive of it's function, prefer
 long descriptive name over short acronyms.

 8) NodeKits should have ascii read/write support, but ideally binary
 support too (we really need an extensible binary format).

 9) NodeKits must be wrap-able via osgIntrospection/genwrapper.

 10) NodeKit should facilitate collaboration and quell fragmentation of
 code and developer resources.

 11) NodeKit should be of solid design and implementation quality.

 12) NodeKit and dependency proliferation should be deemed a negative
 quality - a NodeKit must add real value to compensate for the
 extra complexity it introduces.

 OK, feel free to add more/refine the above.  Once this discussion
 reaches some kind of conclusion I'll put up a page on the WIKI
 summarising it all.

 Putting the above metric against the core OSG NodeKits we see a couple
 of libs that perhaps could be renamed/refactored.  osgSim and osgGA
 aren't descriptive names at all.  osgDB is not much better, put
 probably not quite so bad and it's not a NodeKit so exempt from all
 common sense :-)

 osgGA is very old and clunky which could do with a revamp, such as
 revamp might be a good time to merge the functionality it provides
 into other NodeKits.  Perhaps some functionality going into