Page 3 of 3

Re: how to render grass properly?

Unread postPosted: Mon Feb 08, 2021 5:59 pm
by sam
So just so you know SSS needs a geometry defining a volume to work properly. So unless your grass has a thickness like in real life (and not a flat polygon) it won't work. This is why you need to use diffuse backlighting on geometries that don't have any thickness.

Re: how to render grass properly?

Unread postPosted: Wed Feb 10, 2021 8:18 pm
by sam
Just a disclosure about SSS. SSS is an approximation to render objects that have a volume. Today the best approximation to SSS on very thin surfaces is diffuse backlighting since it actually evaluates everything coming behind: lights, emission, diffuse reflection etc...

SSS (diffusion or random walk) is a way to approximate what's inside a geometry from the entry color of the surface. In a way that's reverse rendering. To do so, it considers the inside of a geometry to be an homogenous volume with fixed set of physical properties (attenuation...). It doesn't evaluate objects within nor the light it receives or reflects/scatter inside.

True SSS would be transmission scattering, but you would need to actually model the different layers down to the bones. Obviously that would be insanely slow to render, not to mention difficult to model. So all we do is a (smart) approximation of an effect.

BxDFs are also approximations of a microfacet surface etc... everything is. So contrary to what you say diffuse backlighting IS the way to go when using flat geometries that have no thickness like grass.

Re: how to render grass properly?

Unread postPosted: Fri Feb 12, 2021 4:37 pm
by RayCaster
is he trying this with opacity maps or clip maps?

Re: how to render grass properly?

Unread postPosted: Thu May 13, 2021 1:41 pm
by kirkr22
Is there anything that makes grass /foliage rendering quicker in Clarisse5? Aadaptive AA ? Translucency?

I had to switch to Octane . While Clarisse does it slightly more realistic it's either forever on my 12 core Ryzen or smeared by denoiser.

With GPU renders getting more interactive and videocards getting more memory it's kind of making Clarisse a bit out of use for my tasks. So I need a reason to buy another year.

Re: how to render grass properly?

Unread postPosted: Fri May 14, 2021 7:42 am
by mdkai
Well don't get me wrong but did you see Akams example ?
Image
2,5 Minutes for a well looking patch of grass ?

About what timescale are we talking ? Did you set things up properly, with opacity map, translucency(back light) ?

Re: how to render grass properly?

Unread postPosted: Fri May 14, 2021 8:09 am
by sam
Hi Kirk22,

If your scene is GPU compliant (not too many BSDFS, bounces and fit in memory), GPU rendering offers the most bang for the buck. Period. I don't know which graphics card you have but an old GTX1060 should be about on par with a 12 core ryzen. We don't have a magic wand. For the money CPU are slower than GPUs for rendering simple scenes. But you can't really compare the two. It's like comparing a van and all its super high practicality to a Formula One.

If you want faster performance out of Clarisse, you need to invest in a bigger CPU because it only uses the CPU. For example, a AMD 3990x 64 core Ryzen really competes with GPUs but even though it is twice up to 4 times slower than a 3090. However, unlike with GPUs, performance is linear with complexity and more importantly you don't have any memory limitations whatsoever.

And grass fits in the simple scene cases. It's a lot of instances made of a simple 3 lobe material (diffuse, glossy and back diffuse)

Re: how to render grass properly?

Unread postPosted: Fri May 14, 2021 5:52 pm
by kirkr22
mdkai wrote:Well don't get me wrong but did you see Akams example ?
Image
2,5 Minutes for a well looking patch of grass ?

About what timescale are we talking ? Did you set things up properly, with opacity map, translucency(back light) ?


I'd love to see a screen of raytracer and material settings . Because on my ryzen 3900x it would take around 40 minutes I think for 2k resolution. I use no alpha clip but rather flat geometry for each grass blade although. No SSS, just backlight .

So maybe I am doing a silly mistake I am not aware of.

I hate Octane actually. it's always a memory issue with it and you have to render you scene in parts to compose later and waste huge time for all that. Also Clarisse is so much more convenient in every detail . But Octane introduced the scatter node recently that allows to tweak scattering totally interactive. It serves now that purpose of look development too, to certain extent at least so it's a big question for me now to decide what to use.

Re: how to render grass properly?

Unread postPosted: Fri May 14, 2021 6:39 pm
by kirkr22
sam wrote:Hi Kirk22,

If your scene is GPU compliant (not too many BSDFS, bounces and fit in memory), GPU rendering offers the most bang for the buck. Period. I don't know which graphics card you have but an old GTX1060 should be about on par with a 12 core ryzen. We don't have a magic wand. For the money CPU are slower than GPUs for rendering simple scenes. But you can't really compare the two. It's like comparing a van and all its super high practicality to a Formula One.

If you want faster performance out of Clarisse, you need to invest in a bigger CPU because it only uses the CPU. For example, a AMD 3990x 64 core Ryzen really competes with GPUs but even though it is twice up to 4 times slower than a 3090. However, unlike with GPUs, performance is linear with complexity and more importantly you don't have any memory limitations whatsoever.

And grass fits in the simple scene cases. It's a lot of instances made of a simple 3 lobe material (diffuse, glossy and back diffuse)



I would be appreciative for such simple scene example . I think I have something excessive somewhere that makes it longer than necessary. I recall I used Metal ray in 3d max years ago in some minimal but still enough and ok settings and it was nowhere that slow as I have in Clarisse.

Re: how to render grass properly?

Unread postPosted: Mon May 24, 2021 1:58 pm
by ionut_armasu
sam wrote:Just a disclosure about SSS. SSS is an approximation to render objects that have a volume. Today the best approximation to SSS on very thin surfaces is diffuse backlighting since it actually evaluates everything coming behind: lights, emission, diffuse reflection etc...

SSS (diffusion or random walk) is a way to approximate what's inside a geometry from the entry color of the surface. In a way that's reverse rendering. To do so, it considers the inside of a geometry to be an homogenous volume with fixed set of physical properties (attenuation...). It doesn't evaluate objects within nor the light it receives or reflects/scatter inside.

True SSS would be transmission scattering, but you would need to actually model the different layers down to the bones. Obviously that would be insanely slow to render, not to mention difficult to model. So all we do is a (smart) approximation of an effect.

BxDFs are also approximations of a microfacet surface etc... everything is. So contrary to what you say diffuse backlighting IS the way to go when using flat geometries that have no thickness like grass.


We are all right. Is just a matter of tools and what they are fit for. For example, after extensive tests , I can confirm that(as I like the subsurface scattering effect that I can achieve for grass in other software) in clarrise I can achieve it by applying SSS but not in an efficient manner after the whole thing is scaled up to billion of grass strand. It works to some degree, but not realistic unless you are prepared to wait for centuries to compute after it is combined with extensive AA strategy, so an animation will be bye-bye(which will confirm what Sam said). Yes, backface illumination is a form or doing it especially when the camera is not very upclose. Now, if back face illumination will have a gradient input so that you could mimick the scattering of light just like in real world, could work but keep in mind, the closer you get, the more you will start to see the limits of backface illumination and the more you wish to do something about it. After all, backface illumination is an approximation, so the closer you get, the more you will understand it is an approximation and why it looks fake.
I did try to use transparency channel driven by a megascans translucency map and the reduction in speed is up to killing the session completely because of lack of resources I suppose(mind that I do have a ryzen 3990x and still killed the session).
I find the best solution is to use transmission channel just as the opacity channel would be used and voila, the extremely realistic grass strands will start to appear. The transmission channel will be driven by a texture so that the scattering of light could be represented realistically.
There is another factor to take into account. The closer you are from the grass strands, the more you will like to increase the bounces of light so that it will also start to be visible that the grass has some level of translucency.

I did reply because I have a huge respect for people that are so determined that they built their own render engine. All my replies about this subject are not tested in clarrise 5.

Re: how to render grass properly?

Unread postPosted: Mon May 24, 2021 8:31 pm
by ionut_armasu
Just as an example of light scattering into billion of grass strands,I attached this picture. Could be done using back face illumination? Most probably yes. But here is the thing... Would I, as a user, want to adjust the back face illumination of bilion of grass strands using a map that I will have to create from scratch just so that I have a very fine control over the light that is scattered and constantly adjust all until I reach the thing i like most or should I just use the map I have for translucency from megascans and just let the software do the job for me? I chose to let the software do the job even if the job might take longer compared to back face illumination.
But Indeed, if one wants animation, sss (even with thickened grass strands) or using the transmission, is not the way to go. The only option that will remain will be back face illumination. However,back face illumination on its own will not be sufficient in a scene like this.
Hard to fake translucency of stuff using illumination on the other face of the object while the object is not translucent. In the picture below is no cheating.. the effect is done purely by the translucency of the grass. Even on the hills, the subtle gradient in colour is done by the grass translucent properties. I didn't try to see how is with Clarisse 5 using SSS just to see how it goes since it would be faster, but maybe in the future I'll try it again

Nevermind the bad render...is just an example...