Considering that blender has no fresnel that can actuate with the refraction via shader, I will probably skip all my serious glass and water renderings straight to yafaray or lux. I won´t even bother with blender render in those cases anymore not to waste time. So I will probably not suffer this problem you told me. But it is good to know another reason to study more yafaray and its integration with blender.
yafaray is great and improving over time too
so good luck with this powerfull renderer
ounce you begin with it you become addicted to it
it’s a great renderer and much more flexible than internal blender renderer
you can check the forum to see what can be done with yafaray and the galery
and it’s easy to see how mych better it is then blender renderer
and the forum is as good as blender forum here
so have fun with yafaray
and looking foward to see your models
happy blendering
After poking in the code a bit I found that changing line 902 in /source/blender/makesrna/intern/rna_material.c from:
RNA_def_property_range(prop, 1.0f, 3.0f);
to:
RNA_def_property_range(prop, <b>0.0</b>f, 3.0f);
and compiling, allows for an IOR between 0 and 3, and will render with this.
sphere with IOR of 0.75
not sure that that’s physically possible though
additionally objects with negative IORs have been made, though not for visible light, and the above code will compile with a negative lower limit as well.
I did a test in vray and, assuming that vray is physically accurate, it seems right.
Except for that old reflection fresnell problem. Or the lack of, in this case.
But I am never sure about ior below 1 or above 2. So I can not really help here.
Attachments

IOR less than 1 are for when you try to model the refraction index for a ray going from a material with a high IOR to a material with a lower IOR. In my case, the scene was underwater. The camera was placed in the water which have an IOR of 1.33 and looking slightly at the sky where air have an IOR of 1.0. So the relative IOR from water to air is 0.75. Another way to go around this would be to tell Blender that the current IOR where the camera is placed is 1.33 and let the calculations do the rest.
The “strange” reflections/refraction effect you see on the balls are caled “total internal reflection” A phenomenon that happens when the IOR is less than 1. That is normal and is exactly the effect I was trying to get in the underwater scene.
facepalm I completely forgot about texture nodes, now it works with transparency.
Attachments
better_fresnel_new.blend (712 KB)
So… since nodes can not use refraction, you used the default “normal” input to solve it!
Now, this is a “why did I not think of this?”. And I know why. I have never used this input normal. In fact I try to use nodes because I hate the defaul shader creator.
But truly there are sollutions only achievable in this way that would seem impossible otherwise. I must learn to use it better.
Thanks a lot! here is a comparison of your shader with some modifications and the yafaray render. There are some cheats that yafaray can not be surpassed, like the use of caustics, wich I had to fake in the blender render. And the refraction of the sun, witch yafaray got much better. But still this could be used! The refraction light could be made in another pass and the caustics could be better faked, as well as the absortion light.
It may not be the best water in the cg world. But now I can say blender can render water!
Attachments
how did you do the water
with fluid simualtion?
looks great
but better with Yafaray
but still blender is not bad at all
nice work
Happy blendering
Yes, blender fluid simulation.
how did you do the reflection on top of sphere
reflection map or HDRI map?
and if reflec mpa how did you made it ?
and how do you ave a render?
i mean it is supposed to be JPG but i cannot get any JPG file in folder?
it only the name with no extension?
render looks great in blender
happy blendering


