Clean Surface Luminosity

Started by WAS, April 04, 2018, 01:20:33 AM

Previous topic - Next topic

WAS

I was playing around with the Sirenko Nebula method, and wanted to try using a rock population to insert "random" starts within the nebula. Seemed pretty straight forward until I forgot about the horrific glow luminosity gives. Is there anyway to get a cleaner look? Second image is what the nebula looks like with normal light source. Is it because of the lack of distance control?

Oshyan

It's because luminosity is very hard to sample effectively without certain advanced rendering optimizations, especially for volumetric shading. Even high-end renderers (e.g. Renderman, etc.) often struggle with the combination of luminous surfaces (area lights) and volumetric shading.

- Oshyan

WAS

#2
Quote from: Oshyan on April 04, 2018, 08:52:49 PM
It's because luminosity is very hard to sample effectively without certain advanced rendering optimizations, especially for volumetric shading. Even high-end renderers (e.g. Renderman, etc.) often struggle with the combination of luminous surfaces (area lights) and volumetric shading.

- Oshyan

I see. Seems odd that even at the same time, it can be achieved relatively easiy, on a real-time basis, such as this repo for Unity engine: https://github.com/Unity-Technologies/VolumetricLighting I've used this for city lights on buildings and the roads (which were hidden) for interaction on haze/smoke which added little to load time, but was no where close to as grainy as this, while being a game.

What are the limitations here?

It'd be cool if there was  light array feature, or population. Lighting is super important, and on a procedural scale, doing it manually on a large scale can be too meticulous. It'd be cool to be able to insert lights procedurally or at least in series.


I would like to note that this "effect" seen by the glowing rock population can be seen with too bright of a light source. So I'm wondering if it is the lack of light distance control and the "constant' blast of light where it's either "on" or "off" when adjusting luminosity. Once you get to a certain luminosity it will show on the clouds, but doesn't seem to change when increasing any further.

Kadri


Just curious. Did you try it with an EXR image render?
I doubt it but maybe you could get a little better output with postwork control in that way?

Oshyan

All your answers to why it's possible are in the notes of that project. For example:

"Area lights give great direct light results, but their shadows and scattering in the fog are very rough approximations in this project."
"Direct light soft shadows are implemented using PCSS - the technique was good enough for our specific cameras, but in general isn't great and the settings are difficult to tweak. Real time shadows from area lights is still an open research topic."
"The scattering contribution in the fog is limited to the same frustum and not physically correct either."
"Tube lights use a very cheap and practical solution to approximate area lights, but the resulting quality is much lower."

In other words, like all realtime solutions with current technology, they are "cheating" heavily. :D

That being said I recognize that the results can often look very good. The problem is they are not accurate or fully realistic. We aim for a higher standard of realism but yes, it does take longer. I do wish we had a better ability to find an in-between, with fast and reasonably realistic results, accepting some compromise. Right now the Terragen way is pretty much "max realism or nothing". ;)

- Oshyan

WAS

#5
Quote from: Oshyan on April 05, 2018, 04:06:13 PM
All your answers to why it's possible are in the notes of that project. For example:

"Area lights give great direct light results, but their shadows and scattering in the fog are very rough approximations in this project."
"Direct light soft shadows are implemented using PCSS - the technique was good enough for our specific cameras, but in general isn't great and the settings are difficult to tweak. Real time shadows from area lights is still an open research topic."
"The scattering contribution in the fog is limited to the same frustum and not physically correct either."
"Tube lights use a very cheap and practical solution to approximate area lights, but the resulting quality is much lower."

In other words, like all realtime solutions with current technology, they are "cheating" heavily. :D

That being said I recognize that the results can often look very good. The problem is they are not accurate or fully realistic. We aim for a higher standard of realism but yes, it does take longer. I do wish we had a better ability to find an in-between, with fast and reasonably realistic results, accepting some compromise. Right now the Terragen way is pretty much "max realism or nothing". ;)

- Oshyan

I still think this is really an issue having to do with no real distance control, leaving luminance either having to be extremely bright, or it doesn't function at all (besides the surface being bright with no casting). If there was control of the distance light was being emitted from the surface, it would probably work fine. Using the surface displacement as vector alignment for light direction, or if none, just straight on the axis of the shape (like a sphere). When you look closely, light is working just as it should be, and is scattered via the cloud, but it's just probably a 10000x too bright, but with current setup, it's either too bright, or literally non-luminous. If you use a light source, and up all the settings to ridiculous extremes, you get the same result as a luminous surface with high luminosity.

Looking forward to some sort of solution to this as it's always been a limitation I recall for the last 10 years or so really. There are countless ideas I've had that are limited simply by the fact the only light sources are technically a light-ball, spotlight, and a fixed sun, and are completely reliant on user control. Nothing using a series of lights is possible without manually doing it, something that has been addressed in every rendering program I've used so far, including light arrays, which I guess would be populations in Terragen with the added ability of columns/rows as apposed to just random seed based. So far it all seems to be a simple process to incorporate in future versions to have light populations like the shader array + population, especially like the shader array as it's just instances and locations and the math done for the user instead of having to do all the calculations or positions.

Totally understand wanting to be realistic and not "cheating", but I feel the functionality is almost there, just needs to be refined. Though the option for "fake" realism never hurts. Similar to all the other fake options, stones, clouds, etc, and some of the fake options you just have to do to really achieve some things in TG. Just the ability to create relatively smooth luminous light itself may bring in a whole lot more professionals for cinematic use, as watching makings of on movies and world, they often incorporate planes with random lighting for the "Moth Effect" to attract audiences. And I don't mean the go-to lens flaring.

Oshyan

Appreciate your feedback and ideas. We are definitely thinking about all these things, of course. I think some future plans (which we've hinted at or talked about in the past already) will probably help with the general rendering issues.

- Oshyan

WAS

Quote from: WASasquatch on April 05, 2018, 07:57:22 PM
Quote from: Oshyan on April 05, 2018, 04:06:13 PM
All your answers to why it's possible are in the notes of that project. For example:

"Area lights give great direct light results, but their shadows and scattering in the fog are very rough approximations in this project."
"Direct light soft shadows are implemented using PCSS - the technique was good enough for our specific cameras, but in general isn't great and the settings are difficult to tweak. Real time shadows from area lights is still an open research topic."
"The scattering contribution in the fog is limited to the same frustum and not physically correct either."
"Tube lights use a very cheap and practical solution to approximate area lights, but the resulting quality is much lower."

In other words, like all realtime solutions with current technology, they are "cheating" heavily. :D

That being said I recognize that the results can often look very good. The problem is they are not accurate or fully realistic. We aim for a higher standard of realism but yes, it does take longer. I do wish we had a better ability to find an in-between, with fast and reasonably realistic results, accepting some compromise. Right now the Terragen way is pretty much "max realism or nothing". ;)

- Oshyan

I still think this is really an issue having to do with no real distance control, leaving luminance either having to be extremely bright, or it doesn't function at all (besides the surface being bright with no casting). If there was control of the distance light was being emitted from the surface, it would probably work fine. Using the surface displacement as vector alignment for light direction, or if none, just straight on the axis of the shape (like a sphere). When you look closely, light is working just as it should be, and is scattered via the cloud, but it's just probably a 10000x too bright, but with current setup, it's either too bright, or literally non-luminous. If you use a light source, and up all the settings to ridiculous extremes, you get the same result as a luminous surface with high luminosity.

Looking forward to some sort of solution to this as it's always been a limitation I recall for the last 10 years or so really. There are countless ideas I've had that are limited simply by the fact the only light sources are technically a light-ball, spotlight, and a fixed sun, and are completely reliant on user control. Nothing using a series of lights is possible without manually doing it, something that has been addressed in every rendering program I've used so far, including light arrays, which I guess would be populations in Terragen with the added ability of columns/rows as apposed to just random seed based. So far it all seems to be a simple process to incorporate in future versions to have light populations like the shader array + population, especially like the shader array as it's just instances and locations and the math done for the user instead of having to do all the calculations or positions.

Totally understand wanting to be realistic and not "cheating", but I feel the functionality is almost there, just needs to be refined. Though the option for "fake" realism never hurts. Similar to all the other fake options, stones, clouds, etc, and some of the fake options you just have to do to really achieve some things in TG. Just the ability to create relatively smooth luminous light itself may bring in a whole lot more professionals for cinematic use, as watching makings of on movies and world, they often incorporate planes with random lighting for the "Moth Effect" to attract audiences. Or for ambient effects like a lit plane behind a block of buildings to simulate light pollution from the other street(s). And I don't mean the go-to lens flaring.

Matt

#8
The main difference between your Terragen test and the realtime solution you referenced is that they use light sources. If you use light sources in Terragen it will render much better in Terragen too. The fact that their lights are area lights is kind of orthogonal to the issue here. For any renderer, the key is that it knows where light sources are (including area lights), but it doesn't know where randomly placed bright surfaces are so it has to use random sampling to find them. For large and moderately bright surfaces this is OK, but for tiny points of intense light it's very, very difficult.

You might be able to get this technique to work using the technique I posted in the other thread (Denis's volumetric stars thread).

As you said, though, what we need in Terragen are light populations. I'm pretty sure we'll add that some day.

Matt
Just because milk is white doesn't mean that clouds are made of milk.

WAS

#9
Quote from: Matt on April 25, 2018, 05:49:43 AM
The main difference between your Terragen test and the realtime solution you referenced is that they use light sources. If you use light sources in Terragen it will render much better in Terragen too. The fact that their lights are area lights is kind of orthogonal to the issue here. For any renderer, the key is that it knows where light sources are (including area lights), but it doesn't know where randomly placed bright surfaces are so it has to use random sampling to find them. For large and moderately bright surfaces this is OK, but for tiny points of intense light it's very, very difficult.

You might be able to get this technique to work using the technique I posted in the other thread (Denis's volumetric stars thread).

As you said, though, what we need in Terragen are light populations. I'm pretty sure we'll add that some day.

Matt

I believe they used surface luminosity mostly. For example the "outside" you see is just a solid surface glowing acting as though it's a sky being seen out of focus, that was the key point i took away from their method. There isn't actually an outside creating volumetric lighting casting into their object, its simulated via a surface.

I have since definitely ditched the small scales. For what I (and Denise) am doing, it might actually be more appropriate to work on large scales rather than tiny scales. For one, the detail in the nebulas and galaxies may be easier to work with, and also offer better small-scale detail. For example, I notice our small scale detail is pretty pixely in some renders, even when Denise renders in high quality.

Matt

But do they have to tag those luminous surfaces as area lights? Or does it work with every single polygon in the scene?

Matt
Just because milk is white doesn't mean that clouds are made of milk.

WAS

Quote from: Matt on April 25, 2018, 05:20:40 PM
But do they have to tag those luminous surfaces as area lights? Or does it work with every single polygon in the scene?

Matt

I am not sure. Considering it's Unity based I would imagine it only interacts with volumetric fog, and surfaces, not sure about every polygon, I would definitely assume not.