This is something Dave's asked for, I finally got enough math together in my head to implement it. A texCUBElod that doesn't have sharp edges. What it basically is, is a drop-in function to be called in place of texCUBElod. In turn, it calls texCUBElod in a couple places, and blends the samples smoothly.
The edge in the top picture's reflection is, of course, what I am referring to.
Well, to be honest, this is cheating slightly - I didn't yet implement the corner case, so the corners of the map are still visible if there are sharp transitions. But once I've added that, I'll post it up.
EDIT: There, it's completed. See lower post for download link, since pasting the code didn't work.
Stick this into renderer\common\utils.cg, probably, since that's included in most shaders already.
Then just replace texCUBElod() with texCUBElod_soft() in the fragment (_f.cg) shader.
(just stick this with the other #includes if it's missing)
Since normal texCUBE() doesn't go to mipmaps within view there's no point implementing it for that one.
The edge in the top picture's reflection is, of course, what I am referring to.
Well, to be honest, this is cheating slightly - I didn't yet implement the corner case, so the corners of the map are still visible if there are sharp transitions. But once I've added that, I'll post it up.
EDIT: There, it's completed. See lower post for download link, since pasting the code didn't work.
Stick this into renderer\common\utils.cg, probably, since that's included in most shaders already.
Then just replace texCUBElod() with texCUBElod_soft() in the fragment (_f.cg) shader.
Code:
#include "../common/utils.cg"
Since normal texCUBE() doesn't go to mipmaps within view there's no point implementing it for that one.