Reflection "artifacts" on eye material in eevee?

Hey everyone
I just started learning how to use Eevee this week and I’m having some trouble with the material on my character’s outer eye. I got it looking nice and glossy but when you rotate the camera and look at the eyes from anything other than directly front on, weird reflections/artifacts start appearing around the iris and pupil. Have I done something wrong when it comes to setting the shader up? Missed a setting? I’m using the “principled shader” with the following settings:


tweaking the IOR setting seems to kind of make it better, but to get it to go away completely I have to set it to 0, and then I lose that nice distortion on the reflections.
Here are some screenshots of the problem:

Capture2 Capture3
The previous images were screenshots of the viewport render, but this is occurring in a propper render as well:

I’m really not sure where I’m going wrong here, none of the tutorials I looked at seemed to have this issue. Any help would be greatly appreciated
Thanks in advance!

Part of that is due to the IOR setting…set lower to 1.33 or so…
Now a bit about eye and reflection and transparency…

I always have a water layer over the diffuse., so I use a transparency shader…
There are several ways to do this, all combined in a princaple as you have, using a glass shader, or what I have been using lately, a glossy shader mixed with a transparency…

Glass Shader…

With the IOR set, you will get some artifacts.
You can replace the glass shader with a principled also, and get the same results, just turn off the IOR…


The glossy mix (just replace the glass with a glossy) works well for simple stuff. You have to remember to always set alpha mix, in the shader settings…

Thanks you!
the setups you suggested did fix the problem, but making the IOR lower/mixing it with a transparency shader has caused some other problems. Part of the reason for having the IOR set to what it was, is that because the eyes are so big and cartoony if you look from side-on you see the socket, but with the right IOR setting it doesn’t, at least not as much.


Out of curiosity, I took the old setup I had into cycles and the problem didn’t show up.

I also remember learning a similar setup in Renderman too (though its been years since I used it) so it seems to be an issue with IOR that’s unique to Eevee.

i believe its because eevee reflection and refraction are screen space, meaning it can’t reflect/refract things occluded in the scene.

viewing from the side, the majority of the iris and pupil are flat so there’s no usable data to refract, so it just samples the world background instead.

i wonder if there might be a node setup that fakes refractive distortion on an iris texture applied directly to the lens.

I haven’t tried it…but perhaps Real Glass Shader from @chippwalters on Gumroad might take care of this issue… If I get a chance I will check or go to Gumroad and get it Free.

das lord chipp
I have been using glass + transparency in eevee lately.
But the real glass is here. I like mixing it with transparency too.

oops Got you guys mixed up there! Corrected my post :wink:
I used glass and transparency for a long time now, but recently I have switched to just a glossy and transparency…mostly for Cornea and Iris for the eyes… most of the stuff is for gaming and not hyper-realistic it works better for me…for other things I was using glass with transparency but setting the alpha blend to additive…gave me transparent glass with reflections and allowed a glass object behind to show through, without cutting it off inside the front object ( in Eevee ), but that was removed in 2.81, as alpha-blend works in 2.81.

Was just playing with 2.82.5 and for some reason, the previous work-flow, diffuse opaque, behind a transparent alpha-blend, is turning the whole thing transparent in Eevee viewport render?