Background / Environment / Skylighting discussion

Of course it does. Especially with skylight enabled.

I don’t think it should though. That’s what an environment is for. At least that’s what I think. The background should be something that is stuck in behind the render and not effect the lighting in any way whatsoever. It should be a presentation setting, not a lighting setting.

For Raytraced and Rhino Render v7 a solid bg color, or gradient, is also an environment

You know better how Cycles should behave though three other engines are doing it differently in way we expect it.

Fully agree.

1 Like

I understand that is the case. But what is the point of having background settings and environment settings if they are kind of the same thing?

An environment should affect the render output. A background is just something that the rendered output is presented on top of.

That is one way of looking at it, we chose our current way.

Why? I must say that I feel strongly that this choice is wrong.

I should add, as it works this way:

  • Why are there both background and environment settings?
  • How do I insert a presentation background colour that doesn’t affect the render output?

Please can this decision be reviewed because I can only see downsides to it being the way it is currently implemented.

OK so just FYI below result is actually what I imagine the majority of users expect:

Hard to disagree.

1 Like

I agree 100%.

Every other 3D rendering system I’ve ever used works this way:
Background = presentation
[therefore doesn’t affect the actual render]

Environment = lighting and reflection
[therefore changes the render]

At the moment, we have both background and environment doing similar things which is a) inconsistent with what users expect, b) hard to control because you have two things changing the output in a similar way with unexpected results from the mixing of the two, c) there is no way to change the background of an output without it affecting render

It is obvious that a decision was made at some point in the past that was wrong. I think this was prior to cycles even. But it is long overdue being corrected.

Edit:
Here are two renders from v5 on Mac. One with a white background, one with a black background.

Can I just add, that if there is a concern about upsetting people who have only used Rhino over the years and correcting this functionality would rock the boat with them, perhaps a checkbox in the render settings that controls whether the background affects the lighting?

Eg:
☒ Background affects scene lighting

Your black render would happen only if there is no lighting in the scene at all. For instance by adding a light with intensity 0, over a black solid background color.

Without seeing the file you used hard to say if you did it wrong or not.

One box over a black solid bg color should with otherwise default settings should give a white box on a black bg in Raytraced.

image

image

We always can and will review how things work, but for v7 the behavior as it currently stands will not change.

I can see for v8 an addition where we would have an additional checkbox or so to allow for new approach.

Of course it can be done, that is not the point.

wrt majority - you and @robinp are the first to request this as far as I know.

Yes, but this is the exact point. I have skylight turned on, so it is using the background as an environment. Changing the background colour shouldn’t change the way the object is rendered.

That would be appreciated. I think it would be a huge improvement.

It is impossible to know for sure, but every other rendering app I’ve used works the way we’ve described so its a fair chance that the vast majority of users of 3D rendering apps would expect it to work this way. I don’t think we are going to get to a point of definitive proof on this, but it is extremely likely that we are talking about a vast majority of people.

@nathanletwory would it be possible to separate out the latter part of this thread into a new one about the background / environment settings and the effects on render output? I think others might want to chip into this discussion and they won’t find it buried within this thread. thanks

It does that when you don’t have a custom skylighting environment set. You are not using default settings if a custom skylight environment is not set.

Ok, so, no longer in transit (changing tyres on the car because snow).

Background vs Environment: The 360° Environment is in the background section. As such any of the settings here are for whatever you see in the background. They all are (in Cycles) interpreted as part of the environment.

There is a separate reflection environment, if you want to have different reflections in your objects then what is in the background otherwise.

There is a separate skylight environment, if you want to light your scene with a different environment than what is in the background.

This is how you can control what is visible and what not and where.

The naive environment implementation from @D-W breaks hard for say a glass where the skylight and/or reflection environment is different from what is in the background. You expect to see what is in the background, not any of the other environments.

One more question @nathanletwory:

I’ve been playing around with the settings a bit more to hone in on what’s actually going on and what’s doing what.

It seems really strange to me, but here are some tests.

Background = black
Environment = white
Skylight = on

Raytrace:

Render view:

Different angle, same settings

Raytrace:

Render:

Why is it that the background settings override the environment settings for skylight? That seems like a bug? Shouldn’t it be the other way around, ie, skylight looks for an environment and if there is one it uses it, if none, it uses the background?

Although we disagree on the use of the background for lighting, putting that aside for a moment, surely if an environment is set it should be the environment which is used, not the background. As per the render view.

(FYI, in rendered view, I have the same background settings and set to use scene lighting so it should be using the same settings as raytrace)

I posted this in the other thread whilst the discussion was being split.

One more question @nathanletwory:

I’ve been playing around with the settings a bit more to hone in on what’s actually going on and what’s doing what.

It seems really strange to me, but here are some tests.

Background = black
Environment = white
Skylight = on

Raytrace:

Render view:

Different angle, same settings

Raytrace:

Render:

Why is it that the background settings override the environment settings for skylight? That seems like a bug? Shouldn’t it be the other way around, ie, skylight looks for an environment and if there is one it uses it, if none, it uses the background?

Although we disagree on the use of the background for lighting, putting that aside for a moment, surely if an environment is set it should be the environment which is used, not the background. As per the render view.

(FYI, in rendered view, I have the same background settings and set to use scene lighting so it should be using the same settings as raytrace)

@robinp Can you please share the 3dm file with this? This is not how it is supposed to work.

With the white basic environment you still should get the same lighting, even if the background solid color is black.

test model_v7.3dm (2.3 MB)

btw, please feel free to delete the post above from the other thread. thanks

(obviously, this most recent test was in v7. Earlier ones were in v5 to show that the behaviour of background affecting the lighting existed pre-cycles)

No need, I moved your reply :slight_smile:

1 Like

Ugh, now a double post. Sorry