You are an experienced programmer and have a problem with the engine, shaders, or advanced effects? Here you'll get answers. No questions about C++ programming or topics which are answered in the tutorials!
Next problem..
So I have an object that is "Plane Clipped" (generally set) at the right times for
"Above" and "Below" water (Reflection & Refraction)..
Then I assign a "New Material (2TCoord based Shader)" to that object and..
NO MORE PLANE CLIPPING!
Whats going on?
Plane Clipping now done in the shaders themselves.. (otherwise no shaders..)
Only problem is that every object that touches this water will need to have its shaders
injected with this function.. (not really difficult or large amount of code so its O.K.)
Plane Distance discarded and replaced with simple distance on Y Axis.
Normal Damping using Edge Values to gradually Flatten Normals as the fragment approaches hard edges..
This prevents reflecting at hard edges resulting in bogus reflections.
Why is "Clip Planes" disabled the moment your material is bound to a shader? (GLSL or HLSL)??
It can be solved but it has the implication that all your shaders have to have a little function inside them
that can puts that shader in a "Specific Mode", i.e. NORMAL RENDER, CLIP ABOVE, CLIP BELOW or RENDER-Y-DEPTH..
This is O.K. but then makes it so that you cannot call your Water Scene Node "Totally Independent" (which is really what we'd like)..
Is there somewhere inside Irrlicht where this Clipping Plane can be FORCED even if Materials have Shaders Hooked to them?