Clipping Plane cut is ~3 times faster than Level Cut Plane

I experienced a huge viewport performance drop when using Cut Planes associated with Levels vs normal Clipping Planes - note that this is a very simple Cut Plane (not any zig-zag section).
VA Levels Cut Planes are very handy, but the performance dropdown is unbearable at times.

HI @Czaja can you share that model so we can test this in our machines?
Thanks!

I’ve sent you a private message with the file.

For the future, how the VA Team would like to receive bigger files?
External download link sent to visualarq@asuni.com?

Thanks for the support!

Thanks @Czaja for the file. We will see how to improve performance speed when using VisualARQ cut planes and Sections.
If you ever need to send us large files, you can generate a link with www.wetransfer.com and send it to us to visualarq@asuni.com

1 Like

Hi,

Any news on that?

I got my mesh settings set to jagged&faster.
Rhino Clipping Plane gives me 46 fps - (which is already a low number given on how simple scene this is) and Level Cut Plane is 15 fps… This is really too low to work and this particular scene is nothing in size.

I don’t want any new features. This thing is making my decent computer acting like it is 15-20 years old. I doubt there is something that would make a bigger difference in user experience than resolving this absolutely bad viewport performance.

Hi Czaja, no news on this issue yet. I’ll let you know as soon as we figure out how to improve it.

Hi @Czaja, I let you know we have just released VisualARQ 2.11 which brings important performance improvements when working with VisualARQ sections or cut planes. It’s not as fast as Clipping planes, but nearly, considering that VA sections calculate more stuff than clipping planes (like the section attributes).

See more details here: VisualARQ 2.11 available - VisualARQ

Thank you very much for working on that issue.

It’s difficult for me to make exact comparisons because Rhino versions changed and I also made some changes in the display settings in the meantime.


Can you take a look at this file?
All Blocks came from Revit via Rhino.Inside.

Test Scene: https://1drv.ms/u/s!Ara31Y5vLih0l8NMY3bCngljLTVJJQ?e=B2wk8g

System Info

Rhino 7 SR8 2021-6-17 (Rhino 7, 7.8.21168.01001, Git hash:master @ 401162001ce142638467ff15f97e7bc9e02b017a)
License type: Edukacyjna, build 2021-06-17
License details: Cloud Zoo

Windows 10.0.19042 SR0.0 or greater (Physical RAM: 32Gb)

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

Non-hybrid graphics configuration.
Primary display and OpenGL: NVIDIA GeForce GTX 1070 (NVidia) Memory: 8GB, Driver date: 4-8-2021 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 462.31
> Integrated accelerated graphics device with 4 adapter port(s)
- Secondary monitor is laptop’s integrated screen or built-in port
- Windows Main Display attached to adapter port #1

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

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

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 4-8-2021
Driver Version: 27.21.14.6231
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 8 GB

Rhino plugins that do not ship with Rhino
C:\Program Files\Rhino WIP\Plug-ins\Karamba\License\Karamba3D_LicensePlugin_Rhino7.rhp “Karamba3DLicense”
C:\Program Files\Rhino WIP\Plug-ins\Tibidabo\Tibidabo.rhp “Tibidabo”
C:\Users\USER\Desktop\Crayon\unpacked 1.1.1\Crayon.rhp “Crayon” 1.1.0.0
C:\Program Files\Rhino WIP\Plug-ins\Tibidabo\VisualARQ.rhp “VisualARQ”
C:\ProgramData\McNeel\Rhinoceros\7.0\Plug-ins\Datasmith Rhino Exporter (d1fdc795-b334-4933-b680-088119cdc6bb)\DatasmithRhino7.rhp “Datasmith Exporter” 4.27.0.0
C:\ProgramData\McNeel\Rhinoceros\7.0\Plug-ins\Twinmotion Direct Link 2020.2 (e24ee14a-9514-47da-8fe6-f6e61b20160e)\Twinmotion Direct Link 2020.rhp “Twinmotion Direct Link 2020” 1.0.6.0
C:\Users\USER\AppData\Roaming\McNeel\Rhinoceros\packages\7.0\IntelDenoiser\0.6.0\IntelDenoiser.Windows.rhp “IntelDenoiser.Windows” 0.1.0.0
C:\Users\USER\AppData\Roaming\McNeel\Rhinoceros\packages\7.0\NVIDIADenoiser\0.4.0\NVIDIADenoiser.Windows.rhp “NVIDIADenoiser.Windows” 0.4.0.0
C:\Users\USER\AppData\Roaming\McNeel\Rhinoceros\packages\7.0\SubstanceImporter\2.0.0\Substance.Win.rhp “SubstanceImporter” 2.0.0.0

Rhino plugins that ship with Rhino
C:\Program Files\Rhino WIP\Plug-ins\Commands.rhp “Commands” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino WIP\Plug-ins\RhinoBonusTools.rhp “Rhino Bonus Tools”
C:\Program Files\Rhino WIP\Plug-ins\RhinoLabsTools.rhp “Rhino Labs Tools”
C:\Program Files\Rhino WIP\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\rdk_ui.rhp “Renderer Development Kit UI”
C:\Program Files\Rhino WIP\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino WIP\Plug-ins\IronPython\RhinoDLR_Python.rhp “IronPython” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\RhinoCycles.rhp “RhinoCycles” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\Grasshopper\GrasshopperPlugin.rhp “Grasshopper” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”
C:\Program Files\Rhino WIP\Plug-ins\Displacement.rhp “Displacement”

With Blocks: FPS
Normal: 55,65
Clipping Plane: 47,06
Level: 10,90

You can see a big fps dropdown even if nothing is cut, (Level’s “Poziom 6” Cut Plane is above every geometry in the scene), so probably many things are being processed even if they are not needed.

Blocks exploded FPS
Normal: 13,20
Clipping Plane: 18,71
Level: 11,60

After exploding Blocks, nothing is working with desirable speed.

On the side note:
Arctic mode seems to not work correctly with Sections but with Levels it’s ok.

Hi @Czaja ,
Have you done these tests with VisualARQ 2.11?

These are my results with your model, using Rhino 7 SR7 and VisualARQ 2.11:

With Blocks: FPS

  • Normal: 20.45
  • Clipping Plane: 26.23
  • VA Level: 17.21

Blocks exploded: FPS

  • Normal: 20.45
  • Clipping Plane: 26.67
  • VA Level: 18.03

As you can see, exploding blocks doesn’t change much in my case. Also, when enabling a VA Level the test is a bit slower than using a clipping plane, but with less difference than yours.
Which Rhino version do you have?
Are you running Rhino from Revit when doing these tests?
What other plugins do you have installed? try to disable them all except VisualARQ and Tibidabo, just to check if you get the same performance.
Kind regards,

By the way, I could not reproduce the issue with the Arctic display mode. It works well with VA sections and Level Cut planes in my PC. Have you edited that display mode? (restart it to defaults, just to check if the problem persists).

Can you share the same model as in your video?

I posted system info in the previous post (using Hide Details option to not bloat the post)

System info

Rhino 7 SR8 2021-6-17 (Rhino 7, 7.8.21168.01001, Git hash:master @ 401162001ce142638467ff15f97e7bc9e02b017a)
License type: Edukacyjna, build 2021-06-17
License details: Cloud Zoo

Windows 10.0.19042 SR0.0 or greater (Physical RAM: 32Gb)

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

Non-hybrid graphics configuration.
Primary display and OpenGL: NVIDIA GeForce GTX 1070 (NVidia) Memory: 8GB, Driver date: 4-8-2021 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 462.31

Integrated accelerated graphics device with 4 adapter port(s)

  • Secondary monitor is laptop’s integrated screen or built-in port
  • Windows Main Display attached to adapter port #1

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

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

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 4-8-2021
Driver Version: 27.21.14.6231
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 8 GB

Rhino plugins that do not ship with Rhino
C:\Program Files\Rhino WIP\Plug-ins\Karamba\License\Karamba3D_LicensePlugin_Rhino7.rhp “Karamba3DLicense”
C:\Program Files\Rhino WIP\Plug-ins\Tibidabo\Tibidabo.rhp “Tibidabo”
C:\Users\USER\Desktop\Crayon\unpacked 1.1.1\Crayon.rhp “Crayon” 1.1.0.0
C:\Program Files\Rhino WIP\Plug-ins\Tibidabo\VisualARQ.rhp “VisualARQ”
C:\ProgramData\McNeel\Rhinoceros\7.0\Plug-ins\Datasmith Rhino Exporter (d1fdc795-b334-4933-b680-088119cdc6bb)\DatasmithRhino7.rhp “Datasmith Exporter” 4.27.0.0
C:\ProgramData\McNeel\Rhinoceros\7.0\Plug-ins\Twinmotion Direct Link 2020.2 (e24ee14a-9514-47da-8fe6-f6e61b20160e)\Twinmotion Direct Link 2020.rhp “Twinmotion Direct Link 2020” 1.0.6.0
C:\Users\USER\AppData\Roaming\McNeel\Rhinoceros\packages\7.0\IntelDenoiser\0.6.0\IntelDenoiser.Windows.rhp “IntelDenoiser.Windows” 0.1.0.0
C:\Users\USER\AppData\Roaming\McNeel\Rhinoceros\packages\7.0\NVIDIADenoiser\0.4.0\NVIDIADenoiser.Windows.rhp “NVIDIADenoiser.Windows” 0.4.0.0
C:\Users\USER\AppData\Roaming\McNeel\Rhinoceros\packages\7.0\SubstanceImporter\2.0.0\Substance.Win.rhp “SubstanceImporter” 2.0.0.0

Rhino plugins that ship with Rhino
C:\Program Files\Rhino WIP\Plug-ins\Commands.rhp “Commands” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino WIP\Plug-ins\RhinoBonusTools.rhp “Rhino Bonus Tools”
C:\Program Files\Rhino WIP\Plug-ins\RhinoLabsTools.rhp “Rhino Labs Tools”
C:\Program Files\Rhino WIP\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\rdk_ui.rhp “Renderer Development Kit UI”
C:\Program Files\Rhino WIP\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino WIP\Plug-ins\IronPython\RhinoDLR_Python.rhp “IronPython” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\RhinoCycles.rhp “RhinoCycles” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\Grasshopper\GrasshopperPlugin.rhp “Grasshopper” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”
C:\Program Files\Rhino WIP\Plug-ins\Displacement.rhp “Displacement”

Rhino 7, 7.8.21168

VisualARQ 2.11

I’m not running Rhino inside Revit in this test.

Previous tests were made with Shaded mode - which display mode you used?

I updated my graphics card drivers (although they were only 1,5 month old)

Restored default Shaded and Arctic display modes


New tests

NEW SYSTEM INFO

Rhino 7 SR8 2021-6-17 (Rhino 7, 7.8.21168.01001, Git hash:master @ 401162001ce142638467ff15f97e7bc9e02b017a)
License type: Edukacyjna, build 2021-06-17
License details: Cloud Zoo

Windows 10.0.19042 SR0.0 or greater (Physical RAM: 32Gb)

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

Non-hybrid graphics configuration.
Primary display and OpenGL: NVIDIA GeForce GTX 1070 (NVidia) Memory: 8GB, Driver date: 5-6-2021 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 462.59
> Integrated accelerated graphics device with 4 adapter port(s)
- Secondary monitor is laptop’s integrated screen or built-in port
- Windows Main Display attached to adapter port #1

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

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

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 5-6-2021
Driver Version: 27.21.14.6259
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 8 GB

Rhino plugins that do not ship with Rhino
C:\Program Files\Rhino WIP\Plug-ins\Tibidabo\Tibidabo.rhp “Tibidabo”
C:\Program Files\Rhino WIP\Plug-ins\Tibidabo\VisualARQ.rhp “VisualARQ”

Rhino plugins that ship with Rhino
C:\Program Files\Rhino WIP\Plug-ins\Commands.rhp “Commands” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino WIP\Plug-ins\RhinoBonusTools.rhp “Rhino Bonus Tools”
C:\Program Files\Rhino WIP\Plug-ins\RhinoLabsTools.rhp “Rhino Labs Tools”
C:\Program Files\Rhino WIP\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\rdk_ui.rhp “Renderer Development Kit UI”
C:\Program Files\Rhino WIP\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino WIP\Plug-ins\IronPython\RhinoDLR_Python.rhp “IronPython” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\RhinoCycles.rhp “RhinoCycles” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\Grasshopper\GrasshopperPlugin.rhp “Grasshopper” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 7.8.21168.1001
C:\Program Files\Rhino WIP\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”
C:\Program Files\Rhino WIP\Plug-ins\Displacement.rhp “Displacement”

SHADED MODE

With Blocks: FPS

  • Normal: 60,98
  • Clipping Plane: 59,81
  • VA Level (cutting nothing): 15,84
  • VA Level (cutting the same as CP): 16,61

Blocks exploded: FPS

  • Normal: 18,77
  • Clipping Plane: 26,23
  • VA Level (cutting nothing): 15,69
  • VA Level (cutting the same as CP): 17,07

ARCTIC MODE

With Blocks: FPS

  • Normal: 50,00
  • Clipping Plane: 46,38
  • VA Level (cutting nothing): 47,06
  • VA Level (cutting the same as CP): 25,50

Blocks exploded: FPS

  • Normal: 52,91
  • Clipping Plane: 50,79
  • VA Level (cutting nothing): 52,88
  • VA Level (cutting the same as CP): 27,95

HIDDEN

With Blocks: FPS

  • Normal: 60,35
  • Clipping Plane: 37,65
  • VA Level (cutting nothing): 59,81
  • VA Level (cutting the same as CP): 37,22

Blocks exploded: FPS

  • Normal: 60,39
  • Clipping Plane: 41,29
  • VA Level (cutting nothing): 60,39
  • VA Level (cutting the same as CP): 39,51

I didn’t save that file and I can’t reproduce that behavior right now.

Hi @Czaja,

Can you tell me the differences between “Normal” and “VA Level (cutting nothing)”?

Thanks,

Enric

“Normal” is when all Levels Cut Planes are OFF and all levels are visible.
Which I understand as not even an attempt to cut anything by VisualARQ.
“VA Level (cutting nothing)” is when Toggle Cut Plane is enabled, but the Cut Plane is so high that it is not cutting through any geometry in the scene.

Hi @Czaja,

I can see the same speed issues on my computer. Unfortunately, this is a Rhino issue when there are display conduits enabled.

Let me explain more in detail:
A display conduit is a Rhino SDK feature that allows plug-ins to modify the display. In a conduit, a plug-in can draw more things on the viewport, cut geometry, change colors, etc. There are several kinds of conduits, being the “Draw Object” conduit the conduit used by our section feature to cut geometry and draw section lines and hatches for each sectioned object.

Rhino has several display optimizations in order to be fast, but some of these optimizations have to be turned off when there is an active “Draw Object” conduit because Rhino doesn’t know what is the plug-in conduit going to do. There are optimizations like cache the display mesh or wires on the GPU, merge all curves inside a block into a single object, etc.

Rhino’s “Print Preview” feature is also implemented using a “Draw Object” conduit, but in this case, the conduit is just changing the effective color, so the print color is used instead of the display color. If you enable the “Print Preview”, you will see the display speed penalty is similar to the display speed when there is a VisualARQ cut plane enabled.

We have worked very hard to reduce the overhead of our conduit’s code, but there is a limit. Drawing real-time sections, with hatches, lines, mesh caps, etc is not as easy as it sounds. We can try to work with McNeel so we can try to find a way to keep as many optimizations enabled as possible. Or we can try to use some tricks (aka hacks) to inject our display conduit while keeping all optimizations. This is something I’ve in mind for Rhino 8.

Regards,

Enric

2 Likes

Thanks a lot for the insight. It’s easier to swallow if one knows the reasons. Also, I value your posts’ educational character. :wink: I’m sure that you will come with some solutions in the foreseeable future.
In the meanwhile, If you know any tips&tricks for the users to help keep their FPS reasonable, please share them on VA Blog or somewhere.

Best luck with the integration of optimizations!

Those performance drops with sections and levels are the real issue when we tested Visual ARQ.
Right now Rhino 8 is in the making, is there something you can say about Visual ARQ working with the Rhino WIP version?

I’m looking forward to it. Besides a couple of current drawbacks VA looks promising.