Thanks, devsh.
I did as you said, (except for the part about a clip-plane, since it only produces weird skybox clipping), and the reflection seems to work almost as it should. With a little synchronization bug, but I'll fix it, it's ok.
However, the problem with that clip plane... I reckon it has something to do with the devil!
It seems so d*mn obvious: the vector, the normal, the enable\disable by index thing, but it doesn't do anything as intended -- for some h**lish reason!
Some guy with a Morpheus on his avatar (can't remember his nick) posted a thread on this forum a while ago, about a serious bug regrading clipping planes and OpenGL in IrrLicht. It was "when I set it up in D3d it clips things properly, but when I do the same in OGL it clips every single node at the same coords it should do world" kinda stuff.
It was so long ago, I thought the bug should've been fixed in 1.6, but either it haven't, or I don't get something obvious.
Code: Select all
driver->setClipPlane(0,plane3df(0,0,0,0,1,0),true); //This seems to clip at least the skybox thing.
...but...
Code: Select all
driver->setClipPlane(0,plane3df(0,60,0,0,1,0),true); //This does strange stuff. 0,60,0 is my water node position.
...and then even...
Code: Select all
driver->setClipPlane(0,plane3df(0,60,0,0,61,0),true); //This doesn't work... (Ooops, I said it does? Pardon me.)
I tried negative normals for both my previous code, and the method you said to use, it still does nothing as expected.