x


Water3Example has strange refraction

I created a very simple scene with a few cubes, spheres and the water 3 example. I also set as much settings to off as possible. Bug somehow, the refraction that is left looks like a skewed reflection. I am certain that it is NOT the reflection, because the reflection is turned off. And when I turn it on, there are 2 reflections in the water. One is correct, the other one the skewed one.

strange refraction

The settings are as follows:

settings

So:

  • Reflection is off
  • The waves are off
  • small waves are off
  • Fresnel is off

These settings are just for testing.

The image in the water looks like a mirrored image of the scene, but it's definitely no reflection. Which looks like this. There are three ellipsoids now:

with reflection

What is wrong? How do I fix this? There is only one camera in my scene.


Update
Although @Statement gives a very good description of what is wrong, it is not an answer to the question. If someone reads this question: please consider the answer of @Statement as an addition to this question. I'm still looking for an answer. Is this really a bug in the Water3 Example?

more ▼

asked Apr 15 '11 at 03:16 PM

Marnix gravatar image

Marnix
1.3k 22 31 45

+1 for a really clear, well laid out question and screenshots

Apr 15 '11 at 03:31 PM Wibbs 1
(comments are locked)
10|3000 characters needed characters left

3 answers: sort voted first

Hey, odd effect. So refraction is the one thing that become wrong? I don't have that shader, nor pro, so I can't tell exactly what is wrong. To me, it looks as if the refraction rays bounce off in the wrong direction (they seem to bounce back up, instead of bounce into the surface interior).

alt text

This suggest an issue with either the way the refraction is calculated in the shader, or the normals somehow end up incorrect (either vertex or bumps), or it somehow render the back side of the water mesh.

What you could try is make sure you don't use a cube for the water mesh, and if you do, make sure the bottom is obscured with some other mesh like the terrain. You can also try turn off any bump maps or anything else that may alter the normal of the surface.

However, since the reflection also use normals, it's hard to argue that the normals would be incorrect since if they were, the reflection would also be wrong, but the reflection seems to work just fine.

I am puzzled :)


Comment contents:

I took the "refracted" image and flipped it vertically. It's hard to tell from the small image but close up you see that all pixels are placed identically, which wouldn't been the case if the projection was skewed or rendered from another point of view. To me, it seems it is a mirrored version of the viewport to the pixel.

Refracted mirrored

Left version is the scene above water. Right version is the refraction of the water.

Close up

Close up on the closest ball with a yellow cube (?) behind it. Similar pixels suggest same view is used.

more ▼

answered Apr 16 '11 at 01:29 PM

Statement gravatar image

Statement ♦♦
20.1k 35 70 175

By the way, what does the refraction fix checkbox do?

Apr 16 '11 at 01:32 PM Statement ♦♦

@Statement. It does do something different. I will post an example of it next friday, but it doesn't fix it.

Apr 16 '11 at 04:15 PM Marnix

@Statement. The normals should be correct indeed. Reflection goes fine. Also: The mesh i'm using is a default mesh (a circle) from the example. The water3example can be used in the free edition as well.

Apr 16 '11 at 04:21 PM Marnix

Hm, it can? But it looks like there's some render-to-texture going on :P

Apr 16 '11 at 04:32 PM Statement ♦♦

Yes it can, but it doesn't show you all features. I think it will look ugly, but at least a working example is presented. Actually, the texture used looks like the exact mirroring of the main viewport, don't you think?

Apr 17 '11 at 09:33 AM Marnix
(comments are locked)
10|3000 characters needed characters left

if you turn the Fresnel power to zero the fake reflection should be gone.

at least that worked out for me; don't know what the fresnel should be doing instead of those weird reflections.

more ▼

answered Jun 28 '11 at 02:16 PM

LeeGibson gravatar image

LeeGibson
51 8 9 10

@LeeGibson This doesn't solve the problem, because there will be no refraction left. Fresnel is the lerp factor between refraction and reflection. What is true, is that there is something wrong in the refraction model.

Jun 28 '11 at 02:37 PM Marnix
(comments are locked)
10|3000 characters needed characters left

Hey, you told me to have a look, so yeah! You need one separate material for each instance of water you have- this usually fixes the bug! So just duplicate the material, and assign it to your other water. I hope this helps you.

more ▼

answered Jun 26 '11 at 09:39 PM

Fishman92 gravatar image

Fishman92
2.4k 101 113 128

Wait, ignore that. Try putting in a blank static cubemap and see what happens.

Jun 26 '11 at 09:41 PM Fishman92

Huh? This is already a static cubemap that is assigned to the camera. How blank do you need it? You mean that you want me to clear the camera with a solid color? I only have one water instance in the example above. So there is only one water instance.

Jun 26 '11 at 09:55 PM Marnix

in your inspector screenshot, the static cubemap field is empty.

Jun 26 '11 at 10:03 PM Fishman92

Ah good one, but I hope that that's not the problem, because I am going to use UniSky in my project, so that would mean that I can't reflect the actual weather in my game when I want to use Water3. I'll try this soon and come back to you with my findings.

Jun 26 '11 at 10:06 PM Marnix

@Fishman92 This doesn't fix it. There is no difference on my problem if I add it. There is something wrong with the refraction texture of the water, but I can't find where this is drawn.

Jun 28 '11 at 02:39 PM Marnix
(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x300
x120
x7
x4

asked: Apr 15 '11 at 03:16 PM

Seen: 1614 times

Last Updated: Jun 28 '11 at 02:40 PM