Hi Kim,

You seem keen on working on things all by yourself, are you sure I can't help, at least on documentation? In that past two days I went from thinking I was going to take over the project entire (at least for the next release or two) to you coming back and doing everything yourself! It's kind of a dramatic change of direction for me, and I would have thought you would welcome the help and delegate a bit of the 3 item list I made in my previous message :-)

That said, it's good to see activity on the project :-)

J-S


On 10/13/2010 5:04 PM, Kim Bale wrote:
Hi J-S,

    I think the python route would be the best actually, most developers
    will already have a python installation, and I would expect they
    would only need to run the script if they change shaders, otherwise
    the C++ files would stay the same. I was thinking of doing something
    like that myself. Up to you if you'd rather tackle it.


I've just implemented this and will commit tomorrow once I've gone
through it to make sure I haven't missed anything.

    1. Give the VBO technique more testing with a focus on eliminating
    artifacts. If the technique is a step forward in performance but it
    has some significant artifacts then it will be less likely to be
    used in production applications - the performance gains will likely
    be overlooked.


I concur, I'll merge it in over the weekend and see what can be done.

    2. Clean up the shader code duplication with an automatic generation
    scheme. Again python would be my choice.


    3. Expand on the usage documentation on the wiki, and perhaps
    include some documentation in the release tarball/zip as well.


Well 2 is done and 3 shouldn't take too long, I'll chip away at it in
the evenings.

    On a separate subject, we promised to have a look at Quintijn
    Hendrickx's osgRiver code to see if it would make sense for
    inclusion into osgOcean.


Absolutely, I feel rather bad about this actually. It's a fairly
substantial chunk of code and requires a fair amount of thought design
wise. I kind of think it might be possible for to exist as
a separate library, but with so many shared shader effects it seems
silly to duplicate the code. Will definitely address this after this
release.


K.



On 13 October 2010 01:21, Jean-Sébastien Guay
<jean-sebastien.g...@cm-labs.com
<mailto:jean-sebastien.g...@cm-labs.com>> wrote:

    Hi Kim,

    Great to know everything is all right. I understand one can get
    burnt out on a particular project after a while, you didn't go into
    specifics and I totally understand that it may be a delicate subject
    but I'm glad to see you back at it once again! :-)


        So to your changes. The change to the way the shaders are
        integrated is
        a good approach in fact, the shader integration has troubled me
        for a
        while. My goal with inlining the shader code was to keep the
        library as
        compact as possible. However, it soon became a maintenance
        nightmare -
        people were submitting shader fixes and only editing either the
        inline
        code or the external files and keeping track of which version was
        correct was becoming very difficult.


    I agree 100%.


        I've already done some work to address this. So what I will do is
        augment your approach with a pre build script which will read the
        external shader files and generate headers which contain the
        shader code
        that are then included in the build. This should go some way to
        preventing any discrepancies between inline shaders and external
        shaders. I have already written batch scripts to do this in
        windows, and
        I think I made some progress in writing a similar bash script
        for linux
        too but I'm not sure whether I finished it. I'll have to have a dig
        around. Thinking about this, more recently I've starting using
        python as
        my scripting language of choice - I'd be keen to use python to
        do this
        but I'm not sure how people would feel about the additional build
        dependencies.. do you have any thoughts on this? Simply put it would
        make my life a bit easier since I'm windows based and testing bash
        scripts is a bit of a pain.


    I think the python route would be the best actually, most developers
    will already have a python installation, and I would expect they
    would only need to run the script if they change shaders, otherwise
    the C++ files would stay the same. I was thinking of doing something
    like that myself. Up to you if you'd rather tackle it.

    Instead of headers I would suggest one or more .cpp file(s) that
    would define say const char* osgOcean_water_surface_fragment_source
    = "..."; and then the FFTOceanSurface.cpp file would refer to that
    symbol and it would be resolved at link time. A header suggests it
    would be part of some public interface, which is not the case here.


        The ocean update callback is also a good approach, although I'll
        have to
        make sure to document it on the wiki otherwise it'll be missed.


    Good point, I was actually also thinking of doing a documentation
    pass because I think we're missing a kind of high-level document
    that explains a few use cases and what should work (in particular it
    would be nice to explain how to use osgOcean with osgShadow). Once
    again I can do this in the near future, before we do the next release.


        Since my last update I have fixed the VBO ocean technique so
        I'll commit
        that. I was rather disappointed by the performance gain though I
        noted a
        10% drop on the draw traversal and a 80% drop in the update but no
        significant change in the frame rate. It also has the side effect of
        creating strange normals on the low resolution tiles. I'm rather
        dubious
        as to whether I've implemented the VBO update correctly so it
        would be
        good to see if improvements could be made there.


    I'll have a look when you get to committing the changes. The drops
    are good (I assume you mean drop in timings, not drop in performance
    :-) ), and I'm sure they will be more significant for real apps (in
    particular the 80% drop in update time is very welcome as the ocean
    will be more usable in debug builds now).


        I'll make a push to get these committed over the weekend, and
        will of
        course give your recent commits a thorough testing. Given the
        amount of
        fixes that have come in since 1.0.1 I think osgocean is due for
        another
        release so I'll make these changes asap and focus on getting another
        release out.


    Great to see we're on the same page. I think before we make a
    release the following milestones should be met:

    1. Give the VBO technique more testing with a focus on eliminating
    artifacts. If the technique is a step forward in performance but it
    has some significant artifacts then it will be less likely to be
    used in production applications - the performance gains will likely
    be overlooked.

    2. Clean up the shader code duplication with an automatic generation
    scheme. Again python would be my choice.

    3. Expand on the usage documentation on the wiki, and perhaps
    include some documentation in the release tarball/zip as well.

    On a separate subject, we promised to have a look at Quintijn
    Hendrickx's osgRiver code to see if it would make sense for
    inclusion into osgOcean. I suggest we tackle this after the release,
    but it might be nice to have a look at that separately and then have
    a few back-and-forths to discuss what we thought. I just don't want
    to forget about it. I think I'll log an issue in the issue tracker
    for that.

    Thanks for getting back in touch, and for helping me push this
    forward once again,


    J-S
    --
    ______________________________________________________
    Jean-Sebastien Guay jean-sebastien.g...@cm-labs.com
    <mailto:jean-sebastien.g...@cm-labs.com>
    http://www.cm-labs.com/
    http://whitestar02.webhop.org/
    _______________________________________________
    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


--
______________________________________________________
Jean-Sebastien Guay    jean-sebastien.g...@cm-labs.com
                               http://www.cm-labs.com/
                        http://whitestar02.webhop.org/
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to