Problem with Lights in the Raytraced viewport

I’m experiencing an issue with lights in the Raytraced viewport in Rhino 6. Toggling between display modes causes lights not to effect the the scene. Toggling the layer where your lights reside off and back on will push them back into the scene. Unfortunately, I am never able to get lights to effect the scene when using _ViewCaptureToFile. This is super annoying. Functionality is better in Rhino 7 WIP…but sometimes the lights break. I am able to use lights with _ViewCaptureToFile in the WIP, though.

Has anyone else experienced this?

Raytraced viewport lights issue.3dm (140.6 KB)

Hi Ryan - does it change anything if you turn off the skylight altogether? (Lights panel)

-Pascal

Hi Pascal. Turning skylight off does not effect the lights issue.

OK - here, I can turn on and off the layers and the lights in the lights panel and see the change in the raytraced vp - you do not see that, if I understand. Maybe I need a for dummies blow-by-blow to repeat…

-Pascal

Open 3DM in v6 > navigate to raytraced viewport. Start with lights visible.

Change the viewport display mode to anything other than Raytraced.

Change it back to Raytraced and notice that Rhino lights are no longer effecting the scene.

Toggle the layer containing lights off and back on and this resets the lights in the scene. Modifying the intensity of the light will also push the light back into the scene. Most importantly, lights never work when outputting images through _ViewCaptureToFile.

Hi Ryan - yeah… that works as expected here - can you post the output from the Rhino command SystemInfo?

-Pascal

Rhino 6 SR24 2020-3-19 (Rhino 6, 6.24.20079.23341, Git hash:master @ 064283610b834170e52117f2656605b5b25d65c0)
License type: Commercial, build 2020-03-19
License details: Stand-Alone

Windows 10.0 SR0.0 or greater (Physical RAM: 32Gb)
Machine name: HP141S6LDBC926

Non-hybrid graphics.
Primary display and OpenGL: NVIDIA GeForce GTX 1080 Ti (NVidia) Memory: 11GB, Driver date: 2-6-2019 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 418.91

Secondary graphics devices.
Citrix Indirect Display Adapter (Unknown) Memory: 0MB, Driver date: 1-23-2019 (M-D-Y).

OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
Redraw scene when viewports are exposed: On

Anti-alias mode: 4x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: Height

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 2-6-2019
Driver Version: 25.21.14.1891
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 11 GB

Rhino plugins
C:\Program Files\Rhino 6\Plug-ins\Commands.rhp “Commands” 6.24.20079.23341
C:\Program Files\Rhino 6\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 6\Plug-ins\RhinoRender.rhp “Rhino Render”
C:\Program Files\Rhino 6\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 6.24.20079.23341
C:\Program Files\Rhino 6\Plug-ins\rdk_ui.rhp “Renderer Development Kit UI”
C:\Program Files\Rhino 6\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 6\Plug-ins\RhinoCycles.rhp “RhinoCycles” 6.24.20079.23341
C:\Program Files\Rhino 6\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 6.24.20079.23341
C:\Program Files\Rhino 6\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”
C:\Program Files\Rhino 6\Plug-ins\Displacement.rhp “Displacement”

Hi Ryan - are you running Cycles off the CPU or the Geforce? (Options > Cycles page)


(both work as expected here)

-Pascal

I’m running Cycles with Geforce. Changing to CPU does not change the problem.

@nathanletwory - any ideas on this one? Lights are ignored by Cycles (V6) when toggling between wireframe and raytraced…

-Pascal

1 Like

@nathanletwory Most importantly, lights never effect the scene when outputting images through _ViewCaptureToFile.

Can you switch away from all Raytraced viewports, then go to Tools > Options > Cycles and click the Restore Defaults button, then go to Tools > Options > Views > Display Modes and reset the Raytraced mode? Any improvement?

I can’t repeat the behavior myself as you describe it.

ah, here’s another clue:

I neglected to mention that I have Raytrace mode set to ambient occlusion instead of the default scene lighting. Any lighting method setting other than the default setting causes this issue. Scene lighting doesn’t cut it for the more complex model that I cannot share publicly. Are you able to reproduce this issue by changing the lighting method in Raytrace mode?

Abmient Occlusion lighting method doesn’t mean anything in Raytraced display mode setting. You should keep it to scene lighting - those are the lights in your scene, including skylight and sun.

Please describe what this means.

You can share confidentially using rhino3d.com/upload?to=nathan@mcneel.com .

Just sent over two examples. One model with ambient occlusion and one with scene lighting. My team is collectively working on many iterations of building(s), and outputting renders from the same camera view. They all contain different levels of porosity and surrounding context thus the scene lighting is not a one-size-fits-all lighting solution. With scene lighting, each model’s lighting would have to be fine-tuned to get the same result each time. I have found that with Raytrace mode + ambient occlusion, I am able to get a consistent and homogeneous result in the least amount of time. The lights are critical because they brighten up the interiors.

This might be a niche situation but I do feel there is a bug in here since the lights work with AO sometimes and not others (such as when outputting images with _ViewCaptureToFile.) I’m open to solutions that use the scene lighting but I feel like I’d be back to my original issue of needing to fine-tune each model.

Do you have in your building models the Skylight turned on?

Anyway, with Ambient Lighting selected the following things happen:

  • Existing lights don’t work when starting the raytraced viewport - due to the display mode setting the underlying changequeue mechanism doesn’t pass the lights on
  • Skylight is turnedon and set to be the single color of the background (solid color)

That is essentially what ambient lighting is: global illumination, which is done with the skylight.

I noticed though that adding lights after changing to Raytraced has the changequeue still send them along. This adds to the confusion and causes what you are seeing.

To do it “the right way” you should keep Raytraced on Scene Lighting. Further set Skylight to a custom environment that has only the solid color set, same as the background solid color in the rendering panel. Now you should get global illumination (ambient lighting) as you get with the tweaked display mode, with the additional benefit of having your scene lights work.

2 Likes

@nathanletwory Thanks! Setting skylight to a custom environment with color same as the background in the rendering panel did the trick. I’m going to read up on GI and ambient occlusion because I’ve always thought of them as separate concepts.