It seems that we have two different issues here. The first one is an easy one, I already commented this effect in the source code :)
_@// Create a minimal material with one texture unit (for adding widgets to this material) on non-internal groups
std::string groupName = convertedEvent->mMaterial->getGroup();
if((groupName.substr(0, std::string(SO3_INTERNAL_RESOURCE_GROUP).length()) != SO3_INTERNAL_RESOURCE_GROUP)
&&(groupName != SO3_INTERNAL_HYDRAX_RESOURCE_GROUP)
&&(groupName != SO3_INTERNAL_SKYX_RESOURCE_GROUP))
{
// The technique...
Ogre::Technique* ogreTechnique = 0;
if(convertedEvent->mMaterial->getNumTechniques() == 0)
ogreTechnique = convertedEvent->mMaterial->createTechnique();
else
ogreTechnique = convertedEvent->mMaterial->getTechnique(0);
// The pass...
Ogre::Pass* ogrePass = 0;
if(ogreTechnique->getNumPasses() == 0)
ogrePass = ogreTechnique->createPass();
else
ogrePass = ogreTechnique->getPass(0);
// The texture unit state
if(ogrePass->getNumTextureUnitStates() == 0)
{
// As the tu is not initialized, it will be black/yellow slashes on OpenGL.
ogrePass->createTextureUnitState();
}
}@_
So it's the default texture in OpenGL. I think that we shall remove the default texture unit creation on empty material, but as allways, the code was existing, and removing it will certainly implies some nasty undocumented case. But anyway, I'll give a try without that code portion.
For the second, It's simply that the overlay on which the web is rendered is rendered in the texture that is used for water reflexion (the same problem is certainly present for Flash interface and Bitmap interface too). Disabling the overlays on the water RTT should do the trick (Hydrax bug).
Thanks for reporting!