Rhino WIP Feature: Direct3D Display

Rhion 9.0.25252 in Direct3D There is a Draw Problem with DrawMeshShaded(Mesh mesh, DisplayMaterial material, int faceIndices); and e.Display.DrawMeshFalseColors(); @stevebaer

@stevebaer, will there be a way to directly draw our own buffers similarly to how GHGL does it? Ideally, we’d have a cross-platform way which also works on OSX.

It would be great, if you could allow developers to pass triangle and index buffers directly to the DisplayPipeline without the need for wrapping it in Rhino.Geometry.Mesh.

I hope so at some point, but it will take quite a bit of effort and will need to be done after we have a fully working implementation of a D3D based display pipeline. My hope is to rewrite GhGL at some point to be cross platform capable.

5 Likes

Shadows are not working in Direct3D:

OpenGL:

Yep…it’s on my list. I just haven’t gotten to it yet due to more pressing functional issues regarding DirectX atm.

Thanks,

—Jeff

1 Like

The latest WIP (Oct 14, 2025 build) now defaults to using Direct3D on Windows

4 Likes

I was scratching my head why none of my GL components were working in Grasshopper, and why the geometry previews looked so nice and reflective.

Is there anything we can do to help make your GL components GPU agnostic?

Hi @stevebaer, since Rhino 9 dropped support for Intel Macs, I’ve been running it under bootcamp as a workaround, and it actually worked great for a while.

But lately things got rough:

  • With OpenGL, I’m seeing lots of display glitches (shading issues, wrong curve display, display modes acting weird).
  • With Direct3D, Rhino just crashes immediately.

Do you know if OpenGL will still be supported going forward? And are there any known Direct3D issues with AMD GPUs or bootcamp drivers?

I suspect that when we figure out why this is happening and fix it, Direct3D will just work. @jeff any ideas on how to debug this crash?

We will continue to support OpenGL, but it will not be the default display technology used by Rhino.

Not at the moment, no… However, I suspect it’s probably the same thing Max is seeing with his old Mac/AMD setup, which apparently was introduced back when instancing changes were made to curve drawing (RH-88776). It’s been on my list for a while, but since I cannot reproduce the crash, it’s just been sitting there.

I will see if I can get an old iMac bootcamp’d here, it uses an AMD 580… so hopefully, that will reproduce the crash, and I can then debug it.

I’ll let you know how it goes.

-J

This should be fixed in the next WIP… it’s fixed in the latest build of the day, which I can provide a link to if you’d like to try it out sooner.

-J

1 Like

@flixchameroy ^^^ please try Direct3D in the next WIP

1 Like

Does the switch from OpenGL to Direct3D also unlock any other capabilities or improvements that we as users will notice? For example, more efficient clipping planes, or jogged clipping planes? Were there aspects of graphics rendering that were previously difficult or impossible but will now be feasible with Direct3D, or are these changes mainly about making your work easier going forward?

Hi Moby -

Weren’t these questions answered in the first post of this thread?

-wim

I’m not sure how now having to maintain yet another (3rd) graphics engine “makes our work easier”… So no, this is not one of the reasons we’re doing this.

-J

Ah, don’t get me wrong. I know this means extra work for you. By “making it easier” I meant that it will apparently be easier for you to support more machines - but that’s not important, poor choice of words on my side.

I understand we can expect a performance boost, but it seems not everything has been implemented yet to make an apples-to-apples comparison. It also looks like users will have a better chance of using hardware running Windows on ARM. And purely out of curiosity, I asked whether there are any display/rendering features that were difficult or impossible to implement with OpenGL but would become easier or possible with the move to Direct3D. Just curious, cheers.

Amazing, works great ! Thanks for the quick fix :slight_smile:

For reference, my bootcamp drivers are not the official Apple-provided ones (from 2020..), but updated AMD drivers from 2025. I don’t know if/how Rhino’s Direct3D works on 2020 drivers.

Thanks for letting us know. Ya, I used the 2025 drivers on my bootcamp’d iMac when fixing this…but it should all work on the 2020 drivers as well, since we only target DirectX 11.

-J

There isn’t anything you can do using DirectX that you can’t do using OpenGL and vice versa…they’re both just a graphics API. The difference between them is the support (or lack thereof). Microsoft pretty much guarantees that all DirectX drivers work on all the configs that run their OS, and they have strict certification processes in place to do so… because if DirectX isn’t working, then their OS isn’t working. Stability and support is the key here, and with new hardware architectures hitting the market, it’s a safe bet that DirectX is going to work long before OpenGL will.

-J

1 Like