Rhino WIP: New V6 Display Engine

Hi All,

With the next WIP release, there will be a completely new display architecture in use, as well as a new OpenGL engine. This change involved upgrading our display code to always use modern OpenGL routines when available, and required a complete rewrite of most of the core shaders/code used in the rendering system.

This is a relatively large change in the WIP, and impacts almost every aspect of Rhino, so please let us know about everything and anything you see/find, regardless of how trivial it might seem. Also, any glitches in previous versions that you’ve grown accustomed to, or complacent with, we want to hear about those too.

At this point, we need to make sure things are functioning exactly as expected…then we will begin addressing speed and performance issues, so please bear with us during this transition…but we still want to hear about performance issues you have as well.



Hi Jeff,

Thanks for the heads up looking forward to your* wizardry.

*)you and the team


The 2017-March-7 WIP has been released!

@jeff, @stevebaer,

this is quite impressive. I got a mesh (4450289 vertices, 8900268 faces), comparison in shaded display mode with mesh wireframe visible, TestMaxSpeed result using Radeon HD7970 with 3GB display RAM:

Rhino 5: Time to regen viewport 100 times = 41.84 seconds
Rhino 6: Time to regen viewport 100 times = 3.26 seconds.

Now here comes the bummer, since 1998 my Rhino always slowed down tremendously when i used flat shaded display. Especially flat shade is required to analyze bad polygon meshes. So i did the test with flat shade enabled, in shaded display mode with wireframe enabled, same mesh:

Rhino 5: No result after 10min, endless loop with hourglass, restart required
Rhino 6: Time to regen viewport 100 times = 3.43 seconds.

Really nice and good job. Thanks. Where can i buy it ?


Are you bummed because it took 3.43 seconds instead of 3.26? :slight_smile:

LOL, no because i can actually use flat shade for the first time. And of course because of the speed i get now with meshes + wireframe. Usually i got good speed in shaded mode in Rhino 5 but as soon as the wireframe was overlayed, it dropped noticably.

Comparison, mesh in shaded mode, without wireframe:

Rhino 5: Time to regen viewport 100 times = 0.94 seconds.
Rhino 6: Time to regen viewport 100 times = 1.90 seconds.

now, mesh with wireframe over the shaded display:

Rhino 5: Time to regen viewport 100 times = 39.89 seconds.
Rhino 6: Time to regen viewport 100 times = 3.26 seconds.

so it may be a bit slower without wireframe in V6, but it is 10 times faster with wireframe compared to Rhino 5. I’ll test some nurbs objects now… :wink:


@stevebaer, large scene nurbs test, using file with 680MB, content:

53306 block instances, 5912 curves, 5632 polysurfaces, 17114 surfaces

Testing Wireframe display, with curves, no shading:

Rhino 5: Time to regen viewport 100 times = 229.60 seconds.
Rhino 6: Time to regen viewport 100 times = 265.25 seconds.

Testing Shaded display, no curves, no wireframe:

Rhino 5: Time to regen viewport 100 times = 376.06 seconds.
Rhino 6: Time to regen viewport 100 times = 716.42 seconds.

I am curious what results @Micha gets with larger scenes. My examples show that there is an improvement when large meshes are used with wireframes or when flat shade is enabled. But with scenes using many objects (blocks, polysurfaces, surfaces, curves etc.), V5 seems to be ahead, so better hide some objects to work with such large models…


Please remember that this WIP is more about making sure things look correct after a large change in technology and are not about performance improvements.

Jeff pointed out that we will be making performance improvements once we know things are displaying the correct way on user’s computers.

Yes :wink: The Rendered display shadows are btw. no comparison to V5, it really is smooth and seems to tax my GPU a lot judging from the fan which spins up immediately once entered.

Looking forward to performance improvements and appreciate that i finally can use flatshade.


Since I don’t see a real progress in the performance test results I will wait for the official display testing start. :wink:

It’s nice if the mesh results are better than before, but my biggest problem is the shaded NURBS display. I hope that I don’t need to convert my scenes to meshes anymore in the future. I would like to stay at my NURBS data - RAM is cheap and work time is valuable.
If I remember me right I have seen a stronger GPU usage too, but no better display times.

For me the performance of two basic modes are interesting - shaded mode for scene manipulation and rendered mode for material/texture setup. Both in conjunction with blocks.

I’m very curious for basic performance improvements, since special effects was never my problem (I disabled options like shadows …), but working on complex scenes is a pain. For me the basics display needs a hugh speed improvement. A few percent speed improvement wouldn’t help so much. It’s so hard to work on low frame rates like 1fps (typical at my current projects at v5).

1 Like


btw. the difference in above performance test may also come from the fact that in V5 i do not have AA enabled while in V6 this is required to get smooth looking curves. In V5 i get this without AA:

While it looks like this in V6:

With AA (x8) in V5:

With AA (x8) in V6:

I avoid using AA in V5 and used LineSmoothing instead which looks like this:

How to try this in V6 ? It looks like _TestToggleLineSmoothing is an unknown command…


I’ve been talking about this on another thread, but I wanted to include it here so the right eyes see it :

A post was split to a new topic: Picture not showing up in Vector Output

Very valid point; we’re focused on making sure the display actually draws things in the right place with the right colors on everyone’s computers at the moment. Hopefully we can get past this stage quick and start focusing on performance.

@stevebaer, something broken here with rendered display mode once i turned off skylight, i can see the shadows through the object and the horizon where the groundplane ends.

I’ve turnded on edges to make it clear that thats a cube below, every other settings are at defaults.

version is: 6.0.17068.11361


@jeff has been seeing that too lately, so we should be able to get it fixed. If you resize your viewport a little, does the effect go away?

Yes, funny :wink:


Hi @stevebaer, one minor difference between decals, in V5 a decal has been applied with the direction “forward”, the decal appears on the first outer surface only:

In the current WIP (6.0.17068.11361) i can see the decal appear on the inside too using the cylinder example:


Thanks clement,

I made a YT item: https://mcneel.myjetbrains.com/youtrack/issue/RH-38372


1 Like

btw, apart from that, super awesome :wink: