Rhino 7 Arctic Display does not support 'SetObjectDisplayMode'

Hello All,

Our workflow in the office depends upon the ability to set object level display modes on colored meshes. We need the colors that are assigned to the mesh to be displayed accurately on screen (i.e. these colors cannot pass through a shader in arctic mode, causing them all to be darker).

In Rhino6 this worked perfectly, we would use arctic mode with white objects as the content, and a colored mesh as the analytical result output.

Here is an example of the desired output, achieved using Rhino 6:
Rhino6_ArcticshadedColors

In Rhino7, I am not able to display the mesh using colors assigned to the mesh while also displaying surrounding context buildings in arctic view white rendering. The colors are always overridden by the layer colors:


Here is another attempt, where I changed the display mode to display by object color, but this erases all of the shading in the context buildings:

I upload the display modes I’m using, as well as the rhino files for both Rhino 6 and Rhino 7
BrokenArcticView_Rhino7.3dm (1.4 MB)

WorkingArcticView _Rhino6Example.3dm (1.4 MB)
Rhino6ArcticDisplayMode.ini (11.5 KB)
Rhino7displayMode_Arctic-ObjectColor.ini (12.9 KB)
Rhino7displayMode_Arctic-Standard.ini (12.8 KB)

Hello - as far as I can see this works as expected here, if I understand the goal -

The colored objects use your colored Arctic scheme. Does that look correct?

Can you please run SystemInfo in Rhino and copy/paste the results here?

-Pascal

Thanks for the help Pascal!

I’m afraid this is not the expected behavior. I am hoping to see the mesh (currently blue) as a gradient of colors from red to yellow… while also simultaneously displaying all the other objects as white shaded volumes.

Here is the SystemInfo:
Rhino 7 SR8 2021-7-15 (Rhino 7, 7.8.21196.05001, Git hash:master @ 45c1fd6dc85c7c1cce8c0bbe6f3e16481ae9abfa)
License type: Commercial, build 2021-07-15
License details: LAN Zoo Network Node

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

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

Hybrid graphics configuration.
Primary display: Intel(R) UHD Graphics (Intel) Memory: 1GB, Driver date: 9-5-2020 (M-D-Y).
> Integrated graphics device with 3 adapter port(s)
- Windows Main Display is laptop’s integrated screen or built-in port
Primary OpenGL: NVIDIA Quadro RTX 4000 with Max-Q Design (NVidia) Memory: 8GB, Driver date: 7-7-2021 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 462.98
> Integrated accelerated 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
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: 7-7-2021
Driver Version: 27.21.14.6298
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\Chaos Group\V-Ray\V-Ray for Rhinoceros\V7\VRayForRhino.rhp “V-Ray for Rhino”
C:\Users\Alexanderj\AppData\Roaming\McNeel\Rhinoceros\packages\7.0\EleFront\4.2.2\ElefrontProperties.rhp “ElefrontProperties” 1.0.0.0

Rhino plugins that ship with Rhino
C:\Program Files\Rhino 7\Plug-ins\Commands.rhp “Commands” 7.8.21196.5001
C:\Program Files\Rhino 7\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 7\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 7.8.21196.5001
C:\Program Files\Rhino 7\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 7.8.21196.5001
C:\Program Files\Rhino 7\Plug-ins\rdk_ui.rhp “Renderer Development Kit UI”
C:\Program Files\Rhino 7\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 7\Plug-ins\RhinoCycles.rhp “RhinoCycles” 7.8.21196.5001
C:\Program Files\Rhino 7\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 7.8.21196.5001
C:\Program Files\Rhino 7\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”
C:\Program Files\Rhino 7\Plug-ins\Displacement.rhp “Displacement”

Hello - there was no map assigned to the display mode - if I assign a map then it seems to work- here the plane is assigned the custom arctic - is that better?

-Pascal

Thanks again, but I’m afraid we aren’t quite there!

The colors are assigned to the mesh itself, not as a texture map… is there a way to use the mesh’s colors? Assigning the colors to the mesh as a texture map would be extremely brittle.

See the Rhino 6 example if you’re in doubt about the source of the colors.

Ah, OK, vertex colors… I see now, thanks. I can get what I think(?) you want by setting the viewport display to Shaded or Rendered and the ‘buildings’ to use ‘Arctic’ -
image

your original image at the top-
image

-Pascal

HI Pascal,

Hmm, I don’t think that my intention is clear yet.

In architectural representation, we want to be able to use the arctic view, not the shaded view. For a nice visual reading of the shapes, it’s really important that the ambient occlusion shadows are visible. If I were to visualize it without the analysis mesh with sunlight hours, it would look like this, notice how there is a shadow on the ground at all of these edges where the buildings meet the ground. This shadow is really important visually, it establishes the ground plane.

If I change the mode to shaded, and then set all of the objects to Arctic using SetObjectDisplayMode, I receive something similar to what you posted. There is no ambient occlusion shadow and the shapes all appear extremely flat (this is difficult to read and extremely dated as a visualization technique. It makes the graphics look like they are 15 years old and that’s not acceptable for our office’s design documentation).

I want for the buildings and urban context to display with ambient occlusion based shading / Arctic mode WHILE displaying only the mesh using vertex colors.

I also do NOT WANT the ambient occlusion to apply to the mesh, because this will distort (likely darken) the colors on the mesh vertexes. That is also a deal-breaker because it means that the colors will not match the colors defined in our color legends.

I also want to emphasize that this worked in Rhino 6. If you still aren’t clear on what I mean, perhaps it is easier to speak by phone. Send me an e-mail to alexanderj@big.dk to set that up. I’m happy to help get this resolved however I can!

Hi Alexander - default Arctic in V6 to do what you want, and in V7, default Arctic, using ambient occlusion as the lighting mode, breaks the vertex colot display on the mesh - is that it in a nutshell?

RH-65568 Display: Ambioent occlusion lighting mode ignores vertex colors

-Pascal

I think that captures it, thanks!

Has this been solved? Because I’m also in architecture and I want to do the same thing but can’t figure out how. I want to set all objects in the scene to Arctic mode but I want a single mesh (imported from Ladybug,Honeybee, Gismo etc…) that has multiple colors assigned to the mesh itself to be set to shaded or rendered mode so that the multiple colors on the mesh are visible when everything else is white. Right now, if you go to arctic mode for the scene and then do setobjectdisplaymode on a multi colored mesh, the mesh just stays white.

I do not have a solution for this issue yet.

Possible work-arounds:

  1. downgrade to Rhino six for this step
  2. Used flat shading and color the object green for example, and then use that to create a mask so that you can combine a capture of the display mode without arctic (ie perfect mesh colors) with a capture of the display mode with Arctic(nice shadows, but no colored meshes). You can create the masks in Photoshop by selecting by color or you might be able to do it with your rendering agent if you turn on some thing like material IDs when specifying which layers are exported from the render.
  3. create a grasshopper script that uses the dot to display colored markers on each mesh face.