1
$\begingroup$

We're making an eye in Blender class, and the way the professor showed us was to cut off a bit of a sphere, make the iris and pupil separately, put those in the sphere, then put a transparent cover(cornea) on that, so that the eye has "depth".

What I'm struggling with is, whereas the professor has his iris perfectly visible through the "cornea" even in the Material Preview window, my "cornea" just reflects the world around it and only renders transparent in the Render window. (I tried to ask my professor about this but he just said "Something must be wrong with your shader" and moved along)

enter image description here

This is what it currently looks like with the cornea.

enter image description here

This is what's behind the cornea. It's supposed to show through in Materials Preview.

enter image description here This is the BSDF I was told to use. I'm not sure what some of them do, but I've messed around with nearly every parameter and nothing much changed.

So far I've tried applying different textures, unwrapping UV, changing render engines (currently set to Cycle as per professor's instructions), changing the blend mode to Alpha Blend, and plugging in different transparency nodes altogether.

TL;DR: Trying to make an eye so that the iris shows through a transparent outer layer, transparency not working.

What am I doing wrong?

$\endgroup$
5
  • $\begingroup$ Hello could you please share your file? blend-exchange.com $\endgroup$
    – moonboots
    Commented Dec 6, 2023 at 7:30
  • 1
    $\begingroup$ @moonboots Why? Material Preview uses Eevee, it's one of the usual problems with Eevee and transmissive materials. I'll write an answer... $\endgroup$ Commented Dec 6, 2023 at 7:43
  • $\begingroup$ because i'm alwys lazy to read and i always prefer to check the file ;) $\endgroup$
    – moonboots
    Commented Dec 6, 2023 at 8:02
  • 1
    $\begingroup$ @moonboots I prefer reading before the server and eventually my computer are filled with unnecessary files :) $\endgroup$ Commented Dec 6, 2023 at 8:24
  • $\begingroup$ @moonboots I edited the post to contain the link at the bottom! Let me know if I messed anything up, it's my first time on this website. $\endgroup$ Commented Dec 6, 2023 at 8:54

1 Answer 1

1
$\begingroup$

The Material Preview uses Eevee which does not show neither alpha transparency nor transmissive materials by default. And while alpha transparency can easily be enabled by setting the Blend Mode to something else than Opaque under Material Properties > Viewport Display > Settings, this does not work with transmissive materials (which is what glass usually is).

To make a transmissive material transparent, you also have to go to Material Properties > Viewport Display > Settings and below the Blend Mode and Shadow Mode (which can both be left at Opaque for transmission) you'll find a checkbox Screen Space Refraction. You have to enable this:

material refraction

Now you still can't see the iris through the lens - the problem is, you have to enable Refraction for Eevee as well, and the tricky part is, when you are using Cycles, this Eevee option is not available although the Material Preview uses it.

So you have to switch the Render Engine to Eevee, then you can enable Refraction under Screen Space Reflections (which have to be enabled too, but they are usually by default):

render refraction

Afterwards you could switch back to Cycles and the preview will use this setting.

You can also go back into the material and maybe play around with the Refraction Depth setting, most accurate would be to adjust it to the thickness of the transmissive object, this might make refractions look more realistic - if you need that for the preview.

A workaround to avoid switching render engines and only having to change the Blend Mode in the material would be, to create different shaders for Cycles and Eevee within the same material.

Usually, the Material Output is set to All, but you can set it to Cycles or Eevee. This way you can output two completely different shaders depending on the render engine.

In your case it would be enough to have one Principled BSDF with Transmission set to 1 and Alpha to 1 for Cycles, and another with Transmission set to 1 but Alpha set to something lower (I would not set it to 0, otherwise you lose the reflections in the preview, and not blend with Alpha Clip either because it has no reflections). Although you could simply use a shader with a lower Alpha for Cycles as well, leaving it at 1 is more realistic.

My example below uses the new 4.0 Principled BSDF, but it's just Transmission and Alpha you have to care for in your version. With this setup you only have to use a different Blend Mode to make the material see-through in preview:

different material outputs

$\endgroup$
2
  • 1
    $\begingroup$ Thank you so much! I just had to enable screen spac refraction and that solved the issue for the moment without needing to do the other steps, but if I run across more problems I'll try the other solutions you listed as well! $\endgroup$ Commented Dec 6, 2023 at 9:00
  • $\begingroup$ @Tinygreensnake You're welcome. If you only had to enable Screen Space Refraction than probably the other setting was already enabled... $\endgroup$ Commented Dec 6, 2023 at 9:27

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .