This in an extension of X3D that allows
to use shaders to define effects on 3D shapes, textures and lights.
You basically provide small pieces of shading language code that
will be seamlessly integrated with the engine internal shaders (and with each other).
This allows to create graphic effects using
the powerful shader langauges (like OpenGL Shading Language, GLSL, in case of Castle Game Engine).
Contrary to the traditional approach (using
see shader component support),
our system allows to create the effects easily. There is no need
to replicate existing functionality (you don't have to reimplement existing lighting or texturing operations
in your shaders, if you don't want to modify them).
Your shader effects automatically cooperate with each other and with standard
The examples are available inside
our VRML/X3D demo models.
Download them, and look inside the subdirectory
water subdirectory contains water implementation
using our effects.
You can open the example models with any of our engine tools, like view3dscene.
I'm incredibly happy to note that we have two independent implementations of this concept now:
If you have any questions, please ask on Castle Game Engine forum or Discord.
The original description of this idea was Michalis Kamburelis' Ph.D. thesis. (Although never formally defended, due to lack of time.)
I was also presenting it on Theory and Practice of Computer Graphics 2011 conference and at seminar at Institure of Computer Science, Wrocław.
So I have some additional content about this idea, that may be useful -- but be careful, as it was not updated in the last years. While the idea and syntax remained unchanged, some advised PLUG names have changed.
Copyright Michalis Kamburelis and Castle Game Engine Contributors.
This webpage is also open-source and we welcome pull requests to improve it.