V6 Goal: Rendering features

Rendering features

Over the past few months we have been working on getting some new rendering related features ready for the WIP release.

The list of features has been governed by listening carefully to both novice and expert users of the rendering feature set. I see this next phase in the development of the rendering tools as an attempt to tune the user experience for the huge number of new tools that we have added to Rhino’s visualization toolset over the last few years.

For users who know very little about rendering the intention is to hide complexity and reduce what knowledge is needed to achieve great results. Ideally, a user in this position should never see a control that they do not understand. For these users, the following improvements have been made:

  • New rendering defaults result in a much better image without any settings changes.
  • New material user interface reduces complexity.
  • New rendering panel has all of the settings for rendering in one place.

For expert users, the intention is to remove many of the paper-cuts that prevent a smooth expert rendering workflow, but also provide new powerful features that make it possible to achieve results in Rhino that were before simply impossible. To that end, we have added the following tools:

  • Per-face material assignment for polysurfaces.
  • Improved decal assignment and modification tools.
  • Improved texture unwrapping across multiple objects.
  • New features in the base renderer.
  • Tagging and filtering of materials, environments and textures.

New rendering defaults

The aim is to make a dramatic improvement to the first rendering that you get when you press the render button. We are doing this not by making changes to the rendering engine, nor by adding significant new features. We are simply changing the defaults to something that will look far better in virtually every situation.

The target is to place models into a simple “white studio” setting by default.

  • The skylight is turned on by default and the image based lighting is provided by a pre-loaded studio environment.
  • Reflections are provided by a pre-loaded studio environment.
  • The background is a solid white color.
  • The ground plane is on by default, at a height automatically selected for the model (just below the lowest object) and with the new “Shadows only” material selected by default.
  • Gamma is set to 2.2 by default, and linear workflow is turned on.

Note that the early builds of Rhino WIP will not fully support some of these features in the display.

New material user interface

V6 adds a material type selector just below the material name. While Rhino 5 added the ability to select alternate material types supplied by 3rd party renderers, Rhino WIP adds the ability select from 6 new material types based on physical material properties. These are:

  • Glass
  • Gems
  • Metal
  • Plastic
  • Plaster
  • Paint

Although the details for this system are still to be fully worked out, the intention is that the user will only see the general V5 material user interface by choice. A white plaster material user interface will be the first page the user sees, and a choice of “Type” will be the first decision to be made. Once the type is selected, only the UI elements that apply to this type will be available. The material interface will be, as a result, radically more simple than in previous versions of Rhino.

The new “Type” selector will also work for 3rd party renderers, allowing users to quickly switch between the default Rhino types and 3rd party defined types.

Note that we intend to add some more items to this list as development goes on. In particular we’re currently working on textured materials such as wood.

Rendering Panel

Rhino WIP adds a new panel which collects together all of the various rendering settings into one comprehensive control panel. The panel is extensible by 3rd party renderer developers to ensure that 3rd party settings are found where the users expects them to be.

In addition, the Rhino Render settings panel which included some UI features not available to 3rd parties in V5 has now been built into the core of Rhino WIP.

Per-face materials

Rhino WIP supports the assignment of materials per surface on a polysurface. Previous versions have included internal support for this, but the UI has never allowed for this. Rhino WIP now supports per-face material assignment using all of the main assignment methods:

  • Drag and drop from the Material Editor or Libraries panel.
  • Editing or selection from the Properties panel material page (which has been extended to allow sub-object selection).
  • Right-click “Assign to selection” command from the Material Editor.

All methods use the standard CTRL-SHIFT selection modifier.

Improved decal assignment and modification tools

The decal workflow and interface has been improved.

  • Several dialog boxes have been removed from the start of the process so that the most common choice - picking a bitmap file - becomes the first operation.
  • Picking the location of the decal is now controlled using completely standard Rhino pickers.
  • Mapping widgets control the editing of the decal location after it has been placed.
  • Several improvements have been made to the decal object properties page, including per-decal previews, easier to read buttons and a better texture picker.

Improved texture unwrapping across multiple objects

The unwrap command now supports the selection of multiple objects. If several objects are selected, each of the objects is unwrapped into a separate portion of the UV grid. The subdivision of the grid is currently fairly simple. Unwrapping across object seams is currently a work-in-progress.

New features in the base renderer

The number of new features added to the built-in Rhino Renderer toolset is very small, but is a direct response to the requests of users over the last few years. By far and away the most commonly requested features have been glossy reflective/refractive effects and fresnel reflection. These features have been integrated into Rhino WIP in a way that actually reduces the UI complexity.

The complete list of new renderer features is:

  • Fresnel reflection
  • Glossy reflection and refraction (currently called “Polish” and “Frost” in the UI)
  • Custom environment for Reflection/Refraction.
  • Shadow only ground plane.
  • Diffuse texture alpha channel used for object transparency.

Tagging and filtering of materials, environments and textures

Tags can now be added to materials, environments and textures. Tags are added from the tag icon on the content tooltip. Tags are added to all selected content. Clicking on an existing tag name from the tooltip cause the editor to be filtered by that tag.

The new search field on the content editors allows you filter in search style format so filter the lists by name.

1 Like

Hi Andy
Thank you for your effort for improvement. I will try and give you my opinion.
Ciao Vittorio

There seems to be some issues with the OpenGL presentation of the scene.
The lighting is not right and the materials are not showing the color.

Yup - there are some nasty bugs in the material shaders of the version you have. The next build will fix this.

1 Like

Andy, it looks like unfiltering the view, once filtered, is only possible if the material editing UI is showing - i.e.not just the list - even then it is not all that obvious- can you add something in the same place that you add tags and filter with tags to also unfilter the view? (or am I missing something?)

Also, the tooltip when hovering over the little tag icon on the material shows the material name- I’d expect it to show the current tags on that material- the name is already showing. Does that make sense?

thanks,

-Pascal

Yup, I just logged a bug on that. We’ll sort that out.

Per face materials don’t like EdgeSoftening, etc, here-

http://mcneel.myjetbrains.com/youtrack/issue/RH-28496

-Pascal

Thanks. It’s the other way around actually - it’s edge softening that doesn’t like per-face!

Another wish is to have brighter than “100” lights.
Having to put two lights in one location to fake a bright light is on of the V5 limitations I would like to see gone. The reason I use Rhino 5 Render is because of Neon speed. I usually start off with Rhino render and then swap to Brazil only if I need advanced features, because of speed and convenience if I have to share the file with customers.

Try typing in a number more than 100.

Em, yeah, then it converts back to 100.
What do you see?

Not here. We’re talking about Rhino WIP, right?

Nope, and the clue was that I was referring to Neon :wink:

Glad to hear you have updated this for V6!!!
Thank you!

Works here, though I guess the slider is little misleading - that needs a little fixing up- the slider only knows about 0-100 and does not reset itself to the actual max if more than 100. i.e.moving it back from max the slightest amount sends it to 99. I guess the slider should have boxes for range, at least for the top end, and this should be set automatically for any number more than 100 that the user plugs in for the light… I’ll make a bug track item if that sounds like a reasonable way out.

http://mcneel.myjetbrains.com/youtrack/issue/RH-28510

-Pascal

Hi Andy, can you please update Rhino WIP so it accepts Enter after the value has been typed in?
Now I have to click somewhere for the value to work.

Or make it so it automatically uses the value in the text field, so when we type 200 it first updates with 2 then 20 and then 200. Maybe with a one second delay.

@andy, can you please add a bug to the list for this? I’m not tracking this conversation closely enough to do it justice.

http://mcneel.myjetbrains.com/youtrack/issue/RH-28559

This is now fixed - it will be released in the next build.

1 Like

Hi @andy,
we really need light fall off too. I was looking forward to test out Raytraced mode on an architectural project, but the interior lights just throw hard shadows out of the window an messes up the image. I used a point light.

All render programs need to handle light fall off if they are to be used for interior and exterior use.

This image is the initial test of using a physical sky and the sun together with interior lights in raytraced mode.

Here I used a huge arealight (to simulate light from the ceiling) and it looks much better, but can not be used to simulate the interior light, as this is just a hack.

As you can see an area light also needs falloff. Here a simple planar light is lighting up all this. Imagine this was a tv screen, it would not throw that even light all across the room.

Here you can see the same image with an emitting material:

So to sum it up, we need:

  • Light falloff
  • An emitter multiplier

I would also like:

  • an “emitter material” as a simplified material type.
    (With mapping, visibility, shadows intensity and a multiplier as options)
  • The ability to see arealights emitting surface in Raytraced mode.

Splendid!
What about MaterialID / ObjectID? Would it be too much trouble to implement?
P.S. I’m thinking about switching from vRay to Rhino Render. :smiley: