[osg-users] Shaders, osg::notify and IP

Robert Osfield robert.osfield at gmail.com
Wed Sep 24 03:51:40 PDT 2008

Hi Colin,

The initial value of NotifyLevel is set from the OSG_NOTIFY_LEVEL env
var, which users can set themselves, but your application can set the
value via:


Which will make the OSG notification system always ignore all calls to
osg::notify(..), this way you can prevent users from changing things.

The only way to get round this would be for a user to write a plugin
that they force your application to load, then they reset the
notification level back to DEBUG and then go trawling.  Statically
linking would avoid this possibility, as would strictly managing what
plugins are loaded and from where.

But any of these changes protects a user from tweaking the OpenGL
library itself to catch the token stream, OpenGL-ES does provide
compiled shaders but OpenGL itself doesn't so it's hard to protect
against a determined hacker.

Then there is always the law itself, it's legal to reverse engineer in
most countries, but there is copyright to protect against actually
copy binaries, data and source code, so even if someone did snoop and
then reuse your work they would be open to a lawsuit.


On Wed, Sep 24, 2008 at 10:46 AM, Middleton, Colin (GE EntSol,
Intelligent Platforms) <Colin.Middleton at gefanuc.com> wrote:
> Hi all,
> My colleague was recently doing some debugging and found that when
> OSG_NOTIFY_LEVEL is INFO or higher all of the shader code comes out as
> debug. Luckily because of the way the osg::notify code is written we can
> prevent any slightly osg savvy 3rd party getting hold of my shaders by
> setting the notify level in the application as the API call overrides
> the environment variable. However this prevents me from using the notify
> level as a means of debug in the future.
> I know that many people consider shaders to be a important part of their
> IP and so I was wondering what the community thought of this. Should
> there be a way of preventing this debug being printed out as part of the
> info? I wouldn't suggest removing it entirely as knowing the shader
> source ( especially if you have constructed it in code ) can be
> important to debugging.
> Cheers,
> Colin.
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

More information about the osg-users mailing list