Cycles feedback

@Alaska
Your pictures, your scene, show that NLM and ODIN work differently, and they
show that there is no clear winner.

NLM shows weaknesses on the table, but ODIN shows weaknesses on the right
seat, and these stripes are not easily corrected, if at all… that’s pretty bad.
Could this possibly be a moiré/artefact effect due to your .jpg compression? (fairplay)

The spots left by NLM with 24px at 4092 samples surprise me, because the image
with NLM 8px at 4092 samples shows less spots (!?)

Are the main light sources portal lights?

There’s a slight mistake in your group - DiffInd denoiser has albedo plugged into the normal slot.

1 Like

Thanks. I hope that is okay now.
I’m not really good with nodes, this node group is a copy of LordOdin Blenderartists user really.

Edited: I was wrong.

I saved the images in a PNG format. So compression artifacts shouldn’t be an issue.
The strips actually come from weird topology on the seat. I did not create that scene, I just downloaded the scene and modified it.

Anyone have problems with baking AO on complex meshes?
I’m trying to bake 8K map, but on the target object there is a lot black artifacts. Interestingly baking 8K map on subdivided Suzanne goes fine.

I tried various blender versions of cycles x and apparently, while speed has improved in one build from a week ago or so, viewport was not as responsive anymore, I then tried today’s build and speed seems on par with 2021-08-13 which seemed the fastest from the ones I tried (only tested like 4 builds like 15 days apart each).
Final render speed always was faster in more recent builds but viewport didn’t always go hand in hand. I’m on a GTX 1650.

Cycles X breaks completely with the compatibility to 2.93x.
The problem is that Christensen-Burley is not available in PrincipleBSDF and that AO in Cycles X gives different results.

In the attached .blend file you can see how Christensen-Burley in 2.93.x gives the sphere a glowing effect; neither Random-Walk, nor Random-Walk Fixed Radius are able to deliver a comparable result.

This can be seen particularly clearly in the sphere at the bottom left; here Christensen-Burley lets the light of the point-lamp shine through the subsurface material, altogether a very realistic effect.

It looks like neither of the random walk options will let the light rays pass through the SSS material anywhere near correctly. So with Cycles X it is no longer possible to realistically light shine through the skin. With skin you could also emphasise this effect with AO, because AO in 2.93/2.83 creates an Illumination effect, which is still visible when the intensity of the background lighting to 0.

If you open the .blend file in 2.93x, then switch off the two lamps in the scene, this will show how AO influences the lighting here.

If you switch on AO in World settings in 2.93x, then the following happens the luminous effect is ideally intensified. AO seems to work significantly differently in Cycles X; the effect of AO in 2.93.x cannot be created in 3.0.

I have tried all possible node setups, even unusual ones, but nothing works the same.
For example, you can copy the base colour to emission in PrincipleBSDF and set the light intensity to 0.05, but even then the light at the bottom of the sphere is not displayed correctly (here the light must actually pass through a little more material (angle), i.e. take a longer path, and therefore be somewhat darker).

Also with transmission and transmission-roughness no realistic result can be achieved, similar but not good.

It also seems that in 3.0 Cycles X SSS no longer works correctly. If, as in my scene, there is a light behind the object with SSS material, then light should pass through the SSS material; unfortunately this only works at very high settings under Subsurface (5 or 10) but then the light colour changes significantly. The properties of Christensen-Burley are simply missing here.

To create realistic subsurf material with 3.0 you need Christensen-Burley, because neither Random Walk nor Random Walk Fixed radius offer a solution here.

Why is the set-up for AO in 3.0 so complicated?
(shouldn’t everything become simpler…)

Maybe there is a solution I haven’t found yet, then please let me know. But I suspect that there is no equivalent in 3.0…

.blend file:
https://www.magentacloud.de/lnk/GmCogVt9

(sorry, but I still can’t upload a .blend file here, and I can’t upload multiple images in one post.)

2 Likes

Just to note, the random walk algorithm works fine if you use the standalone SSS node in your own shader setup. Many issues people have with shading are due to the decisions that were made when the Principled Node was being put together (ie. no Oren Nayer for realistic shading of rough surfaces, replaced with what appears to be a hack using the velvet shader).

Of course one possible issue is that Disney’s principled model was created more for the ability for a creator or a producer to direct the art style (along with ease of use) than physical realism. This reasoning is even laid out in the original paper.

1 Like

I have tested the standalone subsurface scattering node in 3.0, unfortunately it does not work either. Both random walk options give the same result as in PrincipleBSDF.

Realistic or even creative subsurface effects are no longer possible with 3.0…

The render time with Cycles X is almost the same as with Cycles when using AO and SSS, so no gain either.

Why is something like this deleted without replacement?
These are things you just need, such things are the strength of Blender: Looks like everything that makes work is just deleted or ignored (like Mantaflow , NLM, Game-Engine etc…)

The Blender team is so strong and numerous, and also financially strong, as never before, why are such essential features dropped? I can not understand such decisions.

Let me repeat what was mentioned in the last meeting notes.

Cycles X landed in master. During the bcon2 stage we still plan to solve a few important issues, and of course fix reported bugs in general.

  • Optimizing transparent hair rendering to avoid performance regressions, by baking transparency per curve vertex
  • Improve ambient occlusion to work with transparent shadows and hopefully improving performance
  • Improving random walk SSS for some mesh shapes, or restoring Christensen-Burley if not possible.

Many renderers and studios have switched over to random walk SSS completely. The idea that realistic or creative effects are no longer possible is hyperbole. People have done realistic and creative renders with random walk SSS in Cycles, and other renderers.

I don’t think for example the glowing sphere effects is realistic, or what subsurface scattering is supposed to do. Glowing in SSS often comes from a lack of energy conservation, which Christensen-Burley suffers from. If you want things to glow, you have to use emission. I have not seen convincing examples of why Christensen-Burley is significantly better for realism or creative reasons, mostly things where more manual work is required on the mesh topology.

There are real trade-offs, and we are looking into tweaking random walk SSS to handle some cases better, so that less manual work is needed to deal with various mesh topology, and if that fails we can restore Christensen-Burley. But there are real technical downsides to doing that.

17 Likes

Regarding NLM, again there are technical reasons why it’s not ideal to keep. It uses a lot of render buffer memory, which makes it a poor fit to combine with e.g. path guiding algorithms which don’t work well with small tiles. For animation denoising we have reason to think it will become possible with OIDN in the future, and the current NLM animation denoising was never properly integrated in the UI and didn’t work that well in my tests.

In the tests @Alaska did I think OIDN is clearly better. But this forum does apply JPEG compression to images (even if uploaded as PNG), and it can be hard to tell what the exact bump mapping should look like without a fully converged reference render. Also note the bump mapping looks different in both versions even without denoising, it’s not clear to me which version the undenoised one was rendererd with.

The node setups where diffuse/glossy/transmission/volume are denoised separately is something we might implement natively in Cycles. These setups tend to producer sharper details, though also often hallucinate detail that isn’t actually there since OIDN is intended to work on renders with albedo included, and these denoise renders with albedo removed.

I think that OIDN with prefiltering turned off is a decent alternative to NLM denoising for high sample counts. It’s less likely to remove detail since it assumes the albedo and normal passes are already noise free and the detail in them is real. We are in contact with Intel regarding further improvements here also.

21 Likes

Please, consider bring back AO ambient aditive light, maybe as a ambient light type or shader node linked in world surface…

“using stronger fastgi AO factor with minor AO distance add some env light, but not so good like old AO in world properties”

2 Likes

Yes Random-Walk work differently from Christensen-Burley and it has some trouble with self intersections and sharp corners it seems. But your comparison between 2.93 and 3.0 is not really apples to apples, because AO is completely changing the lighting. When you’re blasting everything with fake ambient light, you can’t really argue that Christensen-Burley is more realistic. Also making your light so big that it intersects with scene geometry is not a good practice either.
How realistic SSS looks depends mostly on lighting. Here you can see how nicely the light is shining through the object at the end of the broken arm or inside the nostrils for example. So I would argue that SSS is not only possible in 3.0 but can produce beautiful results.

As for AO, I think it has a misleading name, both in2.93 and in 3.0 and should only be used in rare cases. “Fast GI Approximation” gives an impression that it’s just a performance setting - GI calculation will become faster at the cost of accuracy.But in reality it’s doing something completely different.
Btw you can upload images and blend files to pasteall.org.

5 Likes

Nice! Will the improvement also include some speed-up? As @Pinus mentioned, the rendertimes when using SSS seem reasonably comparable to the old Cycles in the current 3.0 alpha builds. Could the SSS-involved render times maybe have changed by the new Anisotropy and/or separate IOR?

The issue with Random Walk is with dark skin, this model has a color value of 0.04.


The main problem here is not the intersections, that’s a separate issue. The problem is the bright fringing, in the nose, lips, ears, etc, which is correct if you assume a mass that’s a solid color absorbtion throughout, but in actual skin this simply doesn’t happen, since melanin is close to the top layer in the epidermis, all the “meat” underneath the skin is the same color/scattering regardless of skin tone

Pre-emptive counterpoints:
“That means CBurley by itself isn’t realistic either, since you need to mix two or more layers”
-Then you have to create your own shaders or ubershaders, Principled has only one layer. For stylized skin, where you might want only one layer, a soft radius, and want more color to be preserved, then you out of luck. For reference, here’s a render of a two layer approach which doesn’t look bad in terms of color preservation but can’t be done with Principled
comparisonSSS2

“Just change the scale/radius based on value”
-Then you miss out on the softer scattering of higher radius, which again you may want for stylized skins as it happens in a lot of animated movies, or even realistic ones approximated with one layer, since the meat under the skin doesn’t have a different color or radius with different skin tones

“How about using anisotropy?”
-Aniso is pretty good actually, just not quite enough to remove all the fringing. Since it was added very recently, I almost didn’t test it out. I have no strong rebuttal other than that I still don’t like that small bit of fringing and want to preserve the radius :sweat_smile: Maybe extending the available aniso values?
(Edit: added another render to ilustrate that there’s still fringe with 1.0 aniso, particularly in the ears. Of course I could reduce the radius, but refer to the previous argument)


But yeah, that’s my whole argument: For dark skin, if you can only use one layer, CBurley is a better facsimile in both realistic and stylized.

Random Walk is great, the fringing is a good thing and arguably the whole point of its existence, and you can of course use it for cartoons. It’s just not what you want in all cases. This together with the intersection and self shadowing issues are some reasons to either bring CBurley back, improve Random Walk even more, or other alternatives.

For the self intersections, this other commercial-render-engine-whose-name-starts-with-A uses an object tagging system with custom properties to say “hey, all these go together in SSS” and even if they have different materials, the SSS respect eachother and the intersections look better. Not sure if I can post links

As a sidenote, the new dynamic radius (the new default SSS for Principled) seems counterintuitive, it increases the radius with dark values, I was expecting it to do the opposite. I even tried to read the Disney paper but didn’t understand if. Sure this is ok?

1 Like

@SecuoyaVR, that skin color looks more desaturated than real dark skin color, which would amplify the green fringing. It sort of looks like you’re trying to create a brown color through the red scattering with a high radius, instead of setting a brown albedo? I might be missing something but those parameter choices look odd to me if realism is the intent.

No.

You showed a very nice example where SSS works in conjunction with Random Walk, but it doesn’t work for every object, and unfortunately no longer for all materials.
You say “How realistic SSS looks depends mostly on lighting” - yes exactly, and that is the problem with 3.0 and Random Walk (FR). The statue shows a SSS effect, but realistically(?) I don’t think so, because you can’t tell which material it should be, stone? wax? plastic? It looks more like milk…

Your customer doesn’t care how realistic SSS works, it doesn’t interest him, for him only the result counts and that the visualization of a prototype corresponds to the finished product. How big a light is, or if it intersects with the scene geometry doesn’t matter, it’s the result that counts.

For example, if you create a silicone material for a product presentation, you have to “trick” it to make it look realistic, that’s how we work in 3D after all. It becomes problematic when it’s not smooth surfaces, but slats, where the light is refracted, scattered and absorbed multiple times.

Here are two of my examples:

In the past, I spent hours in studio photography with many lamps to put the objects in the “right light”, which was also anything but “realistic” because so illuminated you never see the object/product in real life, but it looks good and looks realistic!

Especially translucent/transparent materials like silicone, pvc, rubber, or gelatin as in candy cannot be created realistically enough with 3.0.
These mentioned materials are much more complex than just transparent and translucent, and here SSS has to offer possibilities, creative possibilities to implement that (see example pictures)

With material like jade (stone) or wax, which you use for a figure like in your example, Random Walk is sufficient in 3.0, but if you want to represent for example a handle made of silicone material in such a way that it looks realistic like a lavishly lit product photography in the studio, then this is not currently possible with 3.0. Maybe with 30 nodes and a lot of math; I am neither a physicist nor a mathematics professor, and I have to reach my goal with manageable effort and logic.

Why should SSS only be for materials like wax, stone, milk etc… why not for silicone, PVC, rubber etc…!?
To work creatively, you need many tools, including effects like the one from AO in 2.93x and Christensen-Burley, which give us creative people the tools we need to open up the world.

Thoughts are freedom, creativity is freedom, open source is freedom! Why are creative tools and possibilities constantly taken away from such an incredibly creative tool as Blender?

1 Like

In theory you can render all these materials, if you know the scatter coefficent of the material in question.
Typical the SSS default settings like the radius are set for blood scattering underneath the albedo/skin.

If you you know e.g.the scattering coefficent of milk you dont have a radius setting like for blood ect.

The SSS shader aproxximate a volume scattering shader effect.I dont know how good or bad the new RW SSS shader realy is.However for realistic results you have to put in values from realistic measurements,the radius,colors, amount and scale.

And the scale of the model and the scatter shader are most important because it should fit proportional to the mesh model,like a head.Eg.
The head at mesh scale 1 has a dimension of 0.22 m.Then you dont need a shader radius of 1 in the red but only few millimeter,maybe a scatter scale of 0.01 To get the radius of centimeter.
Otherwise the radius would be ca 4x the height of the head (1 vs 0.22)

Further how much of the light goes/scatter inside a skin?
The answer is quite simple.It is the refractive ratio of the skin.The albedo/skin gets a single scatter of the reflection ratio.

If you are doing this on 2.93x and the previous versions then i agree with you, but in 3.0 it does not currently work. I have spent not only hours but now days with all available settings (SSS Radius/IOR/Anisotrope), as well as with all possible variants with Translucent/Transparent and Emission/AO) to get a comparable result as in 2.93x; but unfortunately it does not work.

I have the direct comparison to the finished product. I then photograph that again and have the reference to the 3D version.
If you put a lamp in the real studio behind an object made of silicone or another translucent and colored material, which has slats like in my 3D example, then Christensen shows exactly the result as I see it in the studio with the real product.

The best I’ve achieved with 3.0 is this:

If you compare this with the picture from my previous post, you will see that this is not correct. Increasing the saturation or working with volume absorption doesn’t help here; the Light Info Node doesn’t help either. Looks like there is no lamp behind the object; but it is there and the object has some emission.

The main light source is behind the object, but in 3.0 I have too much light on the right side and front; this can’t be corrected even with the light level. The core of the object does not absorb enough light in 3.0 (Random Walk FR) and the light that goes through the slats on the left side does not show a realistic behavior; here the slats would have to get significantly darker from the outside to the inside, but at the same time not dampen the light intensity and color so much (scattering). Christensen-Burley reproduces this exactly. Christensen-Burley also takes into account the color change when the light rays take a longer path through the material.

This can be easily verified; for example, if you have a handle made of translucent silicone/rubber from a bicycle handlebar or another object made of this material with lamellas or deep profile (grooves), just hold a (pocket) lamp behind the object and see how the light goes through the material and how the color behaves.

There was a reason why Christensen-Burley found its way into the SSS Node ; )

2 Likes