Wish for Rhino option: rendered color automatically similar to shaded color

During a Level 1 training last week, one of the trainees asked this very practical question.
Isn’t it an idea to have a switch in the properties menu to activate this feature?

1 Like

I’m sure there are several scripts for this (this is one of them) but I suppose you would want this built-in? I don’t disagree :wink:

(the script applies it to objects - I suppose it could be applied to layers).

Thanks Wim,

I already expected there to be a script :slightly_smiling:
However, I do think that this is a basic feature that would be useful.
Thank you for your reply and script Wim!

@Gerard, @wim,

there is a command _SynchronizeRenderColors which does the same as the script linked above but allows to select objects.



Nice to see again that there’s so much more in vanilla Rhino :slightly_smiling:…and I never found out!
However, my wish would also include to synchronize per object until I overrule the render color (material) for one or more objects.

Here’s a script to set the render colour to the same as the layer colour, is that what you’re after. After saving it to a directory you keep your scripts just drag and drop onto rhino, it adds this alias Rhino.AddAlias “MTL”, “_-RunScript (MatToLayer)”

Materials to layer colour.rvb (715 Bytes)


Thank you for your script Mark.

Hi Gerard - Does this mean that each object would keep a wireframe colored material automatically, as a default state, until over ridden, or that layers would have a layer-colored material by default? I’m not sure I follow this part of your request.


Thank you Pascal,

What I mean is that layer colors are automatically set as layer render color
And that per object shaded colors are automatically set as object render color.
Then the user can also override these at a later time by adjusting only the layer render material or object render material.

Many trainees think that they added colors to layers (colored rectangles) and objects, and then switch to render display to find out everything is white.
Of course I can explain now about _SynchronizeRenderColors, but it still makes sense to set Rhino automatically to synchronization until someone turns the setting off.

Hi Gerard - presumably then, changing the layer color would change the render material until the override happens, correct? They would stay in sync?

This would just happen, in your system, if there were no override, if I understand things, but in the case of an override of the layer material, would you really expect the shaded colors to follow? That seems problematic… why not just work in a rendered mode?

(I’m not trying to ‘bust chops’, I just am not sure I understand yet - it seems somewhat messy, potentially, if things have to stay synced up and change automatically)


I think this is a very useful default feature.


Currently the default render material for an object is set by layer. This would remain unchanged.

Yet the default material diffuse color for a layer is based on the layer color. So a red layer has a red material. ( to avoid cluttering; these layer materials are not exposed to the user).

In a default setup the objects have the color and material of the layers.

Once a user changes the material(type) of an object or the material of a layer. The default is broken and the linkage to layer color is broken.

This will not be intuitive for changes in the object display color as that will not be reflected in the material.

So maybe it’s worth developing a special ‘Default’ material. This material will get its diffuse color from its carrier’s display color, be it an object or layer.
Inside blocks the objects display color would be used.


1 Like


1 Like

Hi Pascal,

Thank you for your reply.

Yes, Pascal. Currently I am working on a training file and have the same wish again

The whole shaded color and render color difference is a historical grown characteristic of Rhino. Now we have it, we can make use of it. We can give objects the real color in rendered display and give for example ‘edited’ objects a red color in shaded display.

However, most people start in shaded display and when they think of making a render, they find out all objects are still grey (white). Therefore it would make sense for me that by default the render colors of layers and objects, follow the shaded color. Until…they are overridden with a new ‘render’ color at layer of object level.

The shaded color never follows the render color!
And when an object or layer has a different render color, it will not change when the shaded color is edited (again).

Hi Gerard, all-

What if there were a setting on Materials > Color that was simply ‘Layer color’ and default layer materials get this set?

Would that solve the problem?
(I have no idea how realistic that is to implement…)


1 Like

I think it’s important that a new default doesn’t mess with old files. And I think users should learn that objects needs materials. That said I do see the need, so read on.

And I don’t think new layers should render as layercolor as default as this would only affect OpenGL and Rhino Render, and then they would have to wait 3 years for Flamingo to support the changes and Brazil and Vray and Maxwell and all the others would also have to update to the new RDK. So I’d rather see that Rhino Render adds support for a material override in both a “ClayRender” mode (ignore all materials and render them white, but respect transparency) and a “LayerColor” mode.

Rendered display can already use the displaycolor instead of the material color, so adding a new display mode with shaded layer colors and shadows should do the trick.

Thanks Pascal,

That’s at least a solution.

However when you offer Rhino level 1 training over and over again, you might agree that it is counter-intuitive for new users to first learn about and set shaded colors to layers and objects and then press Render…to find out everything is still white (grey). And somehow find out that there are also render colors. As it has historically grown right now the way it is, it is time to reconsider this functionality.

@Holo: yes, adding another ‘render’ display based on shaded colors is also possible. However, for me it is about awareness and understanding basic Rhino. What’s shaded and wha’ts rendered. and how use people Rhino who are self taught? Offering a new render display based on shaded, might be even more confusing.

Well, learning how stuff works is part of becoming a master, and using layer colors to display organised structure is an industry standard among engineers, so maybe the solution is to add another display mode, and maybe rename the current one.

How about if shaded display shows isocurves in layer colors and render mesh in material colors, would that solve anything for you?

It would be the hybrid between rendered mode and wireframe, and is easily done with a single mouse click in shaded display mode settings.

Hi Jorgen,

Yes, I agree that Rhino is a tool that needs time to become a master. And thank you for your ideas.
To me, most important is not what I change in Rhino, but what Rhino is from the shelf. And from that perspective it is still not practical that render colors don’t match shaded colors automatically until I touch them in layer properties or object properties.

1 Like

Hi Gerard, yes I agree, I didn’t mean this as a workaround as those doesn’t help beginners at all. They have enough on their mind with Rhino as it is out of the box.
It was just an idea for an easy to implement factory default.

Hi Gerard - actually I do not follow your point here… for one thing, as is, this seems like a perfect ‘teaching moment’ to point out that there is a difference in appearance when it comes to rendering, compared to working modes. This is as it should be, right? And, if in fact my suggestion were implemented, the initial ‘problem’ you describe would go away - no gray on rendering. Now… I say that would potentially confuse new users even more, since they might well come away thinking that working mode object colors and materials are the same.


1 Like