Path Tracer Surface Reflection Issue

Started by WAS, December 23, 2020, 12:00:23 am

Previous topic - Next topic

WAS

I'm on the latest 4.5.54 update, so not sure if this was around before, but with the Path Tracer, surfaces are reflecting luminous star points. :O

The terrain has no reflection shaders, so if this is internal with the PT, perhaps some settings should be exposed in the render node to remedy with roughness or something if it's not a "bug", though I can't see how it's not if we wanted to image map stars or procedural.  Turning up environment light exaggerates the effects and smaller stars become visible on the terrain.

Dune

It looks like the same 'issue' where the sun shines through the terrain if not shadowed out, so not on the terrain itself. You can test by having a large luminous block half behind the mountain, I guess.

WAS

You can see that the stars are limited by altitude, and dont exist behind the terrain mostly. Maybe a faint one behind the the peak. But again it is reflection as it is adjusted bt strength om surfaces. It's also the same type effect I had a issue with in PT and Standard with real reflection shaders, they grab star points perfectly without ruining the effect for other lighting.

Matt

A starry background is very difficult to sample without some kind of preprocessing (e.g. Image Based Lighting) because most samples are dark and only a tiny fraction are bright. If this is the only thing the path tracer can find for illumination, it will be extremely inefficient. It would be better to create a separate background object which is invisible to the camera but seen by other rays, which has a smoother texture.
Just because milk is white doesn't mean that clouds are made of milk.

Matt

If rendering with the path tracer, Enviro Light only affects the atmosphere and cloud layer v2. So if that changes the dots then the dots are samples of the atmosphere. Does it render like this if you don't have stars? What is the colour of the surface? It may be undersampling due to low albedo and low light.
Just because milk is white doesn't mean that clouds are made of milk.

WAS

My issue is it worked before, unless you had an actual reflective shader on the surface. Now in PT you just can't have a image map or stars.

Additionally, I don't think it's light more than reflection, as luminosity creates very blured large circles at distance.

WAS

Quote from: Matt on December 23, 2020, 01:47:09 pmIf rendering with the path tracer, Enviro Light only affects the atmosphere and cloud layer v2. So if that changes the dots then the dots are samples of the atmosphere. Does it render like this if you don't have stars? What is the colour of the surface? It may be undersampling due to low albedo and low light.

The surface is just the based Colour shader from default scene. It is just the default scene with a new seed and a stata shader. And yeah there is no issue without the stars.

WAS

Loading up the first save which is just the default scene with pasted star background and giving it a render to be sure.

WAS

December 23, 2020, 01:56:34 pm #8 Last Edit: December 23, 2020, 02:29:22 pm by WAS
Yeah, same issue. Without stars no issue.

If the terrain is sampling such small reflected shapes (of light) from so far away, I can absolutely see why it's having trouble in peoples scenes and slowing down with the terrain near the camera at the bottom of the shot with refraction.

Edit: I'd imagine a global luminosity max distance would help for it's light reach. I don't see why it should be finite.

Matt

December 23, 2020, 02:47:05 pm #9 Last Edit: December 23, 2020, 02:51:02 pm by Matt
Quote from: WAS on December 23, 2020, 01:48:49 pmMy issue is it worked before

By now you probably know what my next suggestion will be. Whenever you think something has changed for the worse, try it in older build to be sure, so we are not chasing a red herring. If it worked before there was probably something different about the way you did it last time, so see if you can find out what that was.

Help the renderer by creating a separate blurry version of the sky for the path tracer to sample, invisible to the camera but visible to other rays.
Just because milk is white doesn't mean that clouds are made of milk.

WAS

I'm not sure how I could do anything other than luminous points on a background sphere? That's all I ever have done. But I have done night shots with my stars before. Perhaps I wasn't path tracing like I wanted, was the issue. Even if it didn't, or did, it's a bug, Matt. A non-reflective surface shouldn't be reflecting points, and this is clearly going to slow down scenes, and is probably what we've been complaining about for over a year now with the PT renderer.

The procedural luminosity can't get "blurry" as it's function based.

And I don't think cheating this, just for stars is appropriate when this is clearly going to impact any scene significantly, only masked by lighting. There should be no reflection on anything unless applied, really, even in PT, regardles of "realism". If the user doesn't want it there, but PT to effect other things, that should be how it is imo. Applying a reflection shader can provide that realism if needed.

WAS

December 23, 2020, 03:11:47 pm #11 Last Edit: December 23, 2020, 03:21:40 pm by WAS
Also, holding the stars out (invisible) still applies the same effect on the ground, so I'd imagine you'd have to do it in post. Certainly wouldn't want to mess around with blurring image maps and using crap based assets (also the star maps I have in spherical are very tightly packed of even smaller points).

Matt

I understand your frustration with this, but I hope you can understand that it's not a bug, it's a fundamental problem with sampling a high frequency, sparse signal. Any path tracer will struggle with this particular setup, but could probably reduce the noise by choosing a low number for the max sample intensity (which some renderers make available in render settings).

To render a diffuse surface the renderer sends out many rays per pixel. If 999/1000 rays hit empty sky, most pixels will not see any starlight, only a few pixels will hit starlight. If this were a bright scene we would call these bright pixels fireflies and they would be dealt with by clamping the max brightness, but in a dark scene like yours they are dim enough not to be clamped.
Just because milk is white doesn't mean that clouds are made of milk.

WAS

The problem I see is it even sampling the low luminosity stars, so far away to begin with. And in usual instances with luminosity, the light reflected is a huuuge circular blob representation of what it's reflecting. This isn't even representative of light reflection (diffusion) but mirror reflection.

I mean, take a night with no moon, but stars, in the middle of the mountains, it's usually pitch black on the ground, so much so you're going to hurt yourself. Starlight isn't doing anything to help you.

WAS

That's why I mentioned some sort of global max distance for luminosity sources. Seems they're creating pollution for the renderer.