Control amount of Transparecy of Material in Arctic Mode?

I have been having a really hard time dealing with display modes and transparency materials in Rhino.

I want to be able to control the amount of transparency of my objects in Arctic mode, but it looks like no matter the settings the only options I got is: Transparent or not Transparent.

So this is Default Arctic. The cone has Default Material applied to it, but with 40% transparency.
How come 0% look exactly the same as 40%?!

Now this is with 41% transparency:
So an increase of 1% goes from fully opaque to fully transparent.

And this is with 85% transparency:
Meaning and increase of more than double the transparency (from 41%) has no noticeably change.

I can’t understand how this even gets past devs, but worse, released. Don’t devs check things?

I should be able to control the amount of transparency of my objects with this slider right? Or it just just some of those things that the user can configure but actually is not meant to? It is my understanding transparency is ‘supported’ in Arctic mode right? If this is what you guys mean by ‘supported’ it clearly is not…

I tried fiddling with Arctic shadow settings and I got even more confused.

This slider basically seems to control at which transparency percent objects are actually transparent. Which is already super confusing. Add to that the ‘Never cast shadows’ and ‘Always cast shadows’ key which does not correlate with what the slider controls, at least not with the effect one sees in the viewport.

-If I select ‘Always cast shadows’ my objects will never be transparent no matter their transparency percent set in the material, even when I set their transparency to 100%.
-If I select ‘Never cast shadows’ my objects will always be transparent not matter their transparency percent set in the material, except at 0%.

How is this consistent? If a 100% transparency objects has no actual transparency, it follows that a 0% object be transparent…

Now, when colors of material change, everything seems to just get upside down.
To do this, I simply change the ‘Color material usage’ setting to Rendering Material, from the default Custom.

First, having different colored materials should not have this drastic effect on transparency:

Default Arctic, rendering material, 40% transparency on cone. Red plaster on cubes

Default Arctic, rendering material, 40% transparency on cone. White plaster on cubes

So by just changing the color you get to see transparency.
Except, it has not shadows.
Now one will think, maybe if I set that Arctic setting to ‘always cast shadows’ I will get shadows in my object. But no… Its the reverse, you have to set it to ‘never cast shadows’ to get this:

No matter the counterintuitive logic behind it, both red results still look horrible. That is not how transparency is supposed to look.

And I can’t even control it. When I change the transparency percent of the cone, I just get less or more saturated red on the inside…

I am at a complete loss when it comes to transparency in Rhino materials. At least in Arctic mode.

Guys please ask if anything is not clear…

Hi @ShynnSupn

Thanks for the writeup. I agree with you about the issues - the situation is quite bad and needs some fixing. I’m going to need a bit more time to read through thoroughly and make YouTrack items. I will get back to you hopefully this week.

-David

2 Likes

Okay, let’s go through what’s actually happening here, and why.

The main problem here is that Rhino does not support making shadows lighter if they are caused by transparent objects. So ideally, if we have a solid object, the shadow that is cast due to the object should be at “full strength”, a shadow cast due to a 50% transparent object should be at “half strength”, and a shadow cast due to a 100% transparent object should not be visible at all.

Rhino only supports casting a full strength shadow, or none at all. This is why we’ve offered a setting to users to specify at what transparency level Rhino should be rendering the full shadow, and when it should render no shadow at all. I completely understand that this setting is confusing. Ideally, it should not need to exist at all - the shadows should just look right without the need for any user input.

In order to support shadows that change in intensity according to the transparency of the object causing the shadow, we would have to change the way sharp shadows (e.g. the Sun) and skylight shadows are rendered. These changes are not exactly trivial to make, especially in the skylight case.

Now regarding Arctic mode: things get a tad more confusing when dealing with Arctic mode. In Arctic mode, all objects are the same white color. The only way to actually distinguish objects is to render shadows around them. This is why it’s easy to think an object is solid, when in reality it has transparency but the shadows have been rendered at full strength making it look solid. It’s confusing, I know! The reason your blocky object is not visible inside the cone object is because the skylight shadow algorithm doesn’t take into account transparency, so when we generate the shadows the algorithm doesn’t see the blocky object because it’s behind the cone. If, however, we move the “Transparent Objects” slider, we can make it so that the cone is now 100% see through, and therefore we can see the blocky object and render shadows for it.

In your last picture we can see that your blocky object can be seen really clearly (too clearly) through an object that is only 10% transparent. This is because the “Transparent objects” slider is all the way to the left, which makes it so that transparent objects never cast shadows. This in turn makes the cone object not appear in skylight shadows calculations, so that it is essentially invisible to it. Therefore we get shadows only on the blocky object.

As you can tell, this is all very confusing and not really working correctly. To eventually remedy this, I have created the following two YouTrack items which should remove the need for the slider and make things work correctly in regards to shadows and transparent objects:

Keep in mind that this is not trivial to implement, and I’m fairly sure that the fix will not make it into Rhino 7, but a subsequent version. Sorry to disappoint on that front!

Finally, I think you might be able to work around the issue by using Raytraced mode. I know it’s not exactly the same look at Arctic, but there might be a way to get really close to the same look, while also handling shadows and transparency correctly. @nathanletwory might have some tips on how to achieve the Arctic look in Raytraced.

Thanks for reporting this - it helps us prioritize items better when people take the time to write about what issues they’re having.

Regards,
-David

2 Likes

Make a copy of the Arctic mode and edit its Other Settings. Set the Realtime display engine to Cycles.

As material I’d use the Physically Based material, with in the opacity section the Alpha lowered to say 0.25

I also set in the Rendering panel under Dithering and Color Adjustment the Gamma to 1.0. That gives a bit stronger shadows, which is better for Arctic type renderings like this.

2 Likes

Hmm, I apparently chose the wrong display mode. What I posted is just Raytraced mode. Let me check the Arctic Raytraced settings and repost sample.

edit: hrm, the custom material setting in the view display mode configuration is not very nice for this type after all :confused:

I’d stick with not adding materials to objects and having select Physically Based materials for the transparent bits. For the skylighting I used the StudioC environment that comes with Rhino in the render of the previous post.

edit: logged RH-65791 Make it possible to create a custom render material for object shading override in display settings, for better material override control.

1 Like