Levels and "Shadows ignore user defined clipping planes" setting

This has been brought up many times over the years. I’ve lost count of whether what I’m specifically showing you has ever worked (I think it has). At least in the latest VA3 beta, it doesn’t work as expected.

Clipping Plane works with the “Shadows ignore user defined clipping planes” option but VA Levels doesn’t… It’s really important that I can display a projection or 3D clipped view with real shadows.

System Info

Rhino 8 SR13 2024-10-8 (Rhino 8, 8.13.24282.10001, Git hash:master @ 7fc2e504d4c838aa0264b02fb10e24ecfff2824a)
License type: Educational, build 2024-10-08
License details: Cloud Zoo

Windows 11 (10.0.22631 SR0.0) or greater (Physical RAM: 64GB)
.NET 7.0.11

Computer platform: LAPTOP - Plugged in [100% battery remaining]

Non-hybrid graphics configuration.
Primary display and OpenGL: NVIDIA RTX A3000 12GB Laptop GPU (NVidia) Memory: 11GB, Driver date: 6-10-2024 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 538.78
> Integrated accelerated graphics device with 4 adapter port(s)
- Windows Main Display is laptop’s integrated screen or built-in port
Primary OpenGL: NVIDIA RTX A3000 12GB Laptop GPU (NVidia) Memory: 11GB, Driver date: 6-10-2024 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 538.78
> Integrated accelerated graphics device with 4 adapter port(s)
- Windows Main Display is laptop’s integrated screen or built-in port

Secondary graphics devices.
Intel(R) UHD Graphics (Intel) Memory: 128MB, Driver date: 4-2-2024 (M-D-Y).
> Integrated graphics device with 4 adapter port(s)
- Secondary monitor is laptop’s integrated screen or built-in port

OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
GPU Tessellation is: Off
Redraw scene when viewports are exposed: On
Graphics level being used: OpenGL 4.6 (primary GPU’s maximum)

Anti-alias mode: 8x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 6-10-2024
Driver Version: 31.0.15.3878
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 11520 MB

Rhino plugins that do not ship with Rhino
C:\Program Files\Rhino 8\Plug-ins\RhinoToGrasshopper\RhinoToGrasshopper.rhp “RhinoToGrasshopper” 1.0.0.0
C:\Users\Czaja\AppData\Roaming\McNeel\Rhinoceros\packages\8.0\Synapse\0.4.0\SynapseRCP.rhp “SynapseRCP” 0.4.0.0
C:\Program Files\Rhino 8\Plug-ins\Tibidabo\VisualARQ.rhp “VisualARQ”
C:\Users\Czaja\AppData\Roaming\McNeel\Rhinoceros\packages\8.0\AntFarmIO\0.0.64-beta\AntFarmIO.rhp “AntFarmIO” 0.0.64.0
C:\Users\Czaja\AppData\Roaming\McNeel\Rhinoceros\8.0\Plug-ins\Bella (813de3fb-18eb-405f-bfcd-b0b4d3da91fb)\24.2.0.0\bella_rhino.rhp “Bella” 24.2.0.0
C:\Users\Czaja\AppData\Roaming\McNeel\Rhinoceros\packages\8.0\AntFarm\0.0.64-beta\AntFarm.rhp “AntFarm” 0.0.64.0
C:\Program Files\Rhino 8\Plug-ins\Tibidabo\Tibidabo.rhp “Tibidabo”
C:\Users\Czaja\AppData\Roaming\McNeel\Rhinoceros\8.0\Plug-ins\Crayon (39629248-4fa6-47b8-83c7-745a7efea259)\1.2.0.0\Crayon\Crayon.rhp “Crayon” 1.0.0.0
C:\Users\Czaja\AppData\Roaming\McNeel\Rhinoceros\packages\8.0\SubstanceImporter\2.0.7\Substance.Win.rhp “SubstanceImporter” 2.0.7.0
C:\Program Files\Rhino 8\Plug-ins\Karamba\License\Karamba3D_LicensePlugin_Rhino8.rhp “Karamba3DLicense”

Rhino plugins that ship with Rhino
C:\Program Files\Rhino 8\Plug-ins\Commands.rhp “Commands” 8.13.24282.10001
C:\Program Files\Rhino 8\Plug-ins\WebBrowser.rhp “WebBrowser”
C:\Program Files\Rhino 8\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 8\Plug-ins\RhinoScript.rhp “RhinoScript”
C:\Program Files\Rhino 8\Plug-ins\IdleProcessor.rhp “IdleProcessor”
C:\Program Files\Rhino 8\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 8.13.24282.10001
C:\Program Files\Rhino 8\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 8.13.24282.10001
C:\Program Files\Rhino 8\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 8\Plug-ins\MeshCommands.rhp “MeshCommands” 8.13.24282.10001
C:\Program Files\Rhino 8\Plug-ins\IronPython\RhinoDLR_Python.rhp “IronPython” 8.13.24282.10001
C:\Program Files\Rhino 8\Plug-ins\RhinoCycles.rhp “RhinoCycles” 8.13.24282.10001
C:\Program Files\Rhino 8\Plug-ins\Grasshopper\GrasshopperPlugin.rhp “Grasshopper” 8.13.24282.10001
C:\Program Files\Rhino 8\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 8.13.24282.10001
C:\Program Files\Rhino 8\Plug-ins\Displacement.rhp “Displacement”
C:\Program Files\Rhino 8\Plug-ins\SectionTools.rhp “SectionTools”

VA 3.0.9.19023

Hi @Czaja I’m not sure if this has ever worked. I’ll report it and get back to you when we fix it.

Hi @Czaja,

I’m doing some tests to see what is what you want. But I have found some questions, as I don’t think that the option “Shadows ignore user defined clipping planes” works well with Rhino Clipping planes.

I’m using the default “Rendered” display mode, with no changes (except for the “Shadows ignores…” option, of course).

I’ve created a very simple model, with two extrusions (no VisualARQ custom objects involved).


Here is how the model looks like with no clipping planes or VisualARQ levels:


Now I use a Rhino clipping plane (“Shadow ignores…” is disabled):


And now, using a VisualARQ level, at the same elevation (“Shadow ignores…” is disabled):

Both options looks identical to me, with is expected.


Now I enabled the option “Shadow ignores user defined clipping planes” on the “Rendered” display mode.

Here is how it looks like with a Rhino clipping plane:

There are some differences: shadow is larger, but it’s much smaller than the shadow on the “Unclipped” image. Also, the faces of the extrusion are much lighter.


Here are the results with a VisualARQ level:

As expected, it’s equal to the image without the “Shadows ignore…” option.

Do you have the same behavior on your models?
Do you like the results with the Rhino clipping planes?
Do you expect VisualARQ levels to produce the same result as Rhino clipping planes? I’m asking this because I can try to produce the same shadow in the first image, with faces correctly lit. I’m not saying I can do better than Rhino. If I turn off our level cut planes during shadow computation, I’ll get the same results as Rhino (basically, VisualARQ and Rhino will do the same…)

Here is the model if you want to test:
TestShadowIgnore.3dm (119.6 KB)

Regards,

Enric

Hi,
Thanks for chiming in.

I think I got the same results following your steps on my computer.

To put things short: I would expect the same shadow results while using Levels (turning some of them off toggling cut plane) as with the Clipping Plane.

Using the scene you provided I want to achieve the same shadow using only Levels (without any use of the Clipping Plane). - Given that in my display settings I have “shadows ignore user defined clipping planes”

I want to be able turn off visibility of some levels and get realistic shadows.

Hi @Czaja,

I’ve fixed this issue in VisualARQ 3.1, which will be released in a few weeks. A release candidate will be published soon.

Enric

Hi, thanks!
Your screenshot looks like the shadows are cast only by the visible clipped geometry instead of the full one but I believe we understood each other. Maybe it looks like that because Skylight is so strong that white surfaces are overexposed.

Hi @Czaja,

Here are the results using materials and non-rectangular shapes:

Non-clipped image:


VisualARQ level cut plane (with “Shadows ignore…” disabled):


VisualARQ level cut plane (with “Shadows ignore…” enabled):

Enric

3 Likes

Hi, I tested the latest Release Candidate. It seems working, however there is one thing that do not look as expected. Sectioned part of the object is shadowed, it’s debatable if it’s looking good or it’s useful. - In my opinion it can be a little bit confusing and can look bad.
Clipping Plane on the other hand gives the expected result.

Clipping Plane

Level Cut Plane

Hi @Czaja,

While I understand your perspective, as you mentioned, the correct version is open to interpretation. Consider the possibility of another extrusion behind, which the clipping plane doesn’t account for, leaving it unclipped. This extrusion should ideally cast a shadow over the clipped extrusion; otherwise, it might look off, creating a bright surface in an area that should appear shadowed.

Enric

On the other hand, if we had some hatch surface fills in the scene (e.g. for the floor) and they would be in shadow, and if the Level Cut intersection were also in shadow, then one could think that it is not an intersection, but another surface with a hatch.

The only distinguishing feature between a surface with a hatch standing in shadow and an intersection would be a thicker line at the cut (which could also visually merge with other lines if we used different line thicknesses in the scene…)
In my humble opinion, the interiors of the solids that we cut should be devoid of shading because it is a kind of conventional representation of the interior.

If we wanted to be correct about the lighting inside the wall, it should be completely black (assuming we are not cutting through a very thin object and there is no light scattering there like if we were cutting through the wax or butter.

To sum up, the whole cutting through 3D objects is a convention that I think is more understandable when the cutting planes are not shaded.
I hope I am not being too picky :slight_smile:


But hold on… I just discovered a BUG in Rhino Clipping Planes and Shadows…

"Shadows ignore user defined clipping planes" doesn't work - #21 by Czaja

Hi @Czaja,

Which “Background” option do you have selected in the section style for the extrusion? If it’s set to “By Viewport,” then standard shading rules will apply, based on the display mode configuration. However, if you choose a specific color, lighting and shadows won’t be taken into account.

Enric

1 Like

Thanks, this is a very good tip. I didn’t check that.

Last thing for now… do you experience the same selection issues?

Hi @Czaja,

From watching the video, it’s clear to me that the issue is that the picking code doesn’t consider the “Clippable” attribute.

Additionally, the section area is non-selectable, and osnap doesn’t work on it either. We’re already aware of this issue.

Enric