3Delight Surface and Lighting Thread

1161719212252

Comments

  • wowiewowie Posts: 2,029
    edited July 2014

    It's AMD. No hyperthreading.
    In fact my 3delight installation had a problem. After deinstalling and reinstalling I got some more logical numbers. Didn't work by just installing over the preceding one

    So here are the new serie for External 3delight. The new one has a counter performance with Raycache and Raytrace active

    Second
    External 3DL Total Rendering Time: 2 minutes 16. seconds
    External 3DL Raychache ON Total Rendering Time: 2 minutes 23
    External 3DL Hider Raytrace Total Rendering Time: 3 min 01
    External 3DL Raychache ON + Hider Raytrace Total Rendering Time: 3 min 06

    Reyes still winning. I'll try the other Tutorial scenes and if Reyes is still ahead, I'll try with more complex scene, lightning and shaders
    One thing is missing : Point cloud with external 3DL
    Question would be : when is a scene complex enough to get some gain over Reyes?

    From my experience, you need to lower the shading rate to at least 0.2 to get quality similar to the one obtained with progressive rendering.

    Here's my numbers:
    REYES (Shading rate 1) - 1 min 4 seconds
    REYES (Shading rate 0.2) - 2 min 43 sec
    Progressive - 1 min 24 sec

    Below are the renders. Notice that the results are quite different (focus on the dragon's head). REYES with shading rate of 0.2 is quite similar to progressive.

    Progressive.jpg
    1280 x 720 - 718K
    REYES_0.2_.jpg
    1280 x 720 - 691K
    REYES_1.0_.jpg
    1280 x 720 - 625K
    Post edited by wowie on
  • Kevin SandersonKevin Sanderson Posts: 1,643
    edited December 1969

    Now, my new favourite way to get GI! I prefer it over photon mapping, it's faster for me.

    Mustakettu85, I got your Hider GI scripts to work - yay! :) But it only works one time and then you have to exit out of Studio and start again. You don't have to do that for the standard example render script. I'm thinking I messed something up somewhere, but it did render to a window with no problem or errors. Do I have to render to a file to keep it working, or something else? The end of the script looks the same as the standard example.

  • Takeo.KenseiTakeo.Kensei Posts: 1,303
    edited July 2014

    wowie said:

    From my experience, you need to lower the shading rate to at least 0.2 to get quality similar to the one obtained with progressive rendering.

    Here's my numbers:
    REYES (Shading rate 1) - 1 min 4 seconds
    REYES (Shading rate 0.2) - 2 min 43 sec
    Progressive - 1 min 24 sec

    Below are the renders. Notice that the results are quite different (focus on the dragon's head). REYES with shading rate of 0.2 is quite similar to progressive.

    You made me think quite a bit with that. I don't see a quality problem but rather a difference in shading. Activate the DOF on the camera and render. Look at the Pant and hairs. Whatever the shading rate, you won't get the same shading on these

    Same goes with point cloud. The algo for occlusion behind is not the same and doesn't give the same look. That is a matter of choice in my opinion

    For the numbers : All my renders were made at shading rate 1
    Reyes at 0.2 gives 5 min 09
    I could also just shade some parts with different shading rate : if I just shade the dragon's head at rate 0.2 and the rest at rate 1, I have no speed penalty in reyes

    Post edited by Takeo.Kensei on
  • wowiewowie Posts: 2,029
    edited December 1969


    You made me think quite a bit with that. I don't see a quality problem but rather a difference in shading. Activate the DOF on the camera and render. Look at the Pant and hairs. Whatever the shading rate, you won't get the same shading on these

    Same goes with point cloud. The algo for occlusion behind is not the same and doesn't give the same look. That is a matter of choice in my opinion

    For the numbers : All my renders were made at shading rate 1
    Reyes at 0.2 gives 5 min 09
    I could also just shade some parts with different shading rate : if I just shade the dragon's head at rate 0.2 and the rest at rate 1, I have no speed penalty in reyes

    If you add DOF, then you're actually inserting another variable into the mix. I'm thinking more in terms of raw render where you want those sharp details. To get those you need subpixel accuracy, hence the need for shading rate lower than 1 with REYES. As noted by the devs themselves, the raytrace hider already takes into account subpixel samples, so it ignores shading rate value you've chosen.

    http://www.3delight.com/en/uploads/docs/3delight/3delight_26.html
    "The `raytrace' hider only acknowledges the `jitter' and `progressive' optional parameters and is further discussed in The Ray Tracing Hider."

  • Takeo.KenseiTakeo.Kensei Posts: 1,303
    edited December 1969

    My goal was to see speed impact with different hiders or options and not really watch out on microdetails difference. But if I have to look in the details then I'll have to account that I'll get a noisy image when using DOF and raytrace hider. DOF is commonly used (at least by me). Can't get that out of the equation

    I was planning to also test Motion DOF, Displacement, SSS, Ricurves and other functions. I can't ignore that some implementations are using interpolations to have speed up and thus will give some eventually notable difference in the image

    Shading rate 1 is a good compromise in my opinion especially if rendering a movie, the micro details are not important then. But I'll also render with lower shading rate where needed to get the microdetails to see how much speed impact you may get
    Rendering at 0.2 on the whole image only to get some details on sparse place would be inefficient

    Below is croped render comparison. Left is raytrace, right is Reyes. What is acceptable lies in each one's eye

    DOF_Raytrace_vs_Reyes.png
    1510 x 754 - 1M
  • wowiewowie Posts: 2,029
    edited December 1969

    My goal was to see speed impact with different hiders or options and not really watch out on microdetails difference. But if I have to look in the details then I'll have to account that I'll get a noisy image when using DOF and raytrace hider. DOF is commonly used (at least by me). Can't get that out of the equation

    I was planning to also test Motion DOF, Displacement, SSS, Ricurves and other functions. I can't ignore that some implementations are using interpolations to have speed up and thus will give some eventually notable difference in the image

    Shading rate 1 is a good compromise in my opinion especially if rendering a movie, the micro details are not important then. But I'll also render with lower shading rate where needed to get the microdetails to see how much speed impact you may get
    Rendering at 0.2 on the whole image only to get some details on sparse place would be inefficient

    I understand your point about comparison, but in reality you're comparing apples and oranges because both hider are using different number of samples. Look again at your own render times, the difference isn't that great between the two, considering you're getting more microdetails. With your machine, the penalty is about 45 secs to 1 minute. With mine, it's about 20 secs.

    Let me put this in another way: I would say the raytracing hider with higher number of samples is faster than REYES at comparable shading rates. On some shots, it can be much, much quicker - almost as fast as REYES at shading rate 1 (though not always). There's extra points for solving seam issues, though you can argue you can compensate by having more bleed in the textures.

  • Takeo.KenseiTakeo.Kensei Posts: 1,303
    edited December 1969

    I know what you mean, but that is the goal of the test. I want to know what I can await in different case scenario in order to make the wiser choice. Let me go on further with the tests and see where it leads. Comments are always welcome

  • Mustakettu85Mustakettu85 Posts: 2,933
    edited December 1969


    Question would be : when is a scene complex enough to get some gain over Reyes?

    With actual GI (not just AO). Set UE2 to Bounce, max depth and max diff depth to at least 2 and try testing again =)

    Also with raytraced shadows through layered transparency.

    Some extra performance gain, if using subsurface shaders written for the new raytrace framework (but this will also depend on subsurface samples; however, it will not stall the progressive mode for SSS precalc, if anything).

    Should also be faster for tracing displacements and reflect/refract, including glossy reflections.

    --------

    wowie said:

    I did a quick test awhile back and found that sinc is a good solution to catch most problems. The funniest thing is that renders are a little bit faster with 3 samples rather than 2. Quality wise it's very similar to 4 and 6 samples, more so if you're already rendering at high res (more than 1080p).


    Interesting to know, thanks!

    As noted by the devs themselves, the raytrace hider already takes into account subpixel samples, so it ignores shading rate value you've chosen.

    http://www.3delight.com/en/uploads/docs/3delight/3delight_26.html
    "The `raytrace' hider only acknowledges the `jitter' and `progressive' optional parameters and is further discussed in The Ray Tracing Hider."

    Well, I don't think it ignores shading rate. This line pertains to the actual parameters that are passed in the same RiOption call as setting the hider, not to other RiOptions and RiAttributes. And even this line is outdated - if you dl the standalone and look in the PDF that comes with it (page 32 as per the printed page number - or page 39 in a PDF viewer), now the "raytrace" hider has some other parameters, too.

    And thanks again for your eye tips; I had to tweak them somewhat for my current scene with Victoria2, which does not have a separate cornea (only the eye reflection), but they're an awesome starting point!

    --------

    Mustakettu85, I got your Hider GI scripts to work - yay! :) But it only works one time and then you have to exit out of Studio and start again. You don't have to do that for the standard example render script. I'm thinking I messed something up somewhere, but it did render to a window with no problem or errors. Do I have to render to a file to keep it working, or something else? The end of the script looks the same as the standard example.

    Great to hear, Kevin! But it's weird that it only works one time, it should not be like that. I have mine on pretty much constantly, I render to a new window, and it works for multiple consecutive renders and loading/reloading scenes. Those edits I posted are the only meaningful edits I made to the standard example.

    I also set this explicitly in mine:

    // Option "render" "integer standardatmosphere" [ 0 ] 
    
    aTokens = [ "integer standardatmosphere" ];
    aParams = [ 0 ];
    Renderer.riOption( "render", aTokens, aParams );

    But it's just for the sake of it, so as not to forget about it later, since volumetrics aren't supported by the path tracer right now. I don't think it would matter...
    What if you could shoot me your scripts in a PM (PM seemed to accept all sorts of attachments, unlike forum posts), so I could look them through?


    Oh BTW, two notes that pertain to this:
    - I thought actual "Max Ray Depth" (Option "trace" "integer maxdepth") is overridden by max diff and spec depth attributes, but apparently not. It sets the cap on actually performed max bounces, so you may want to set it higher than my default 4. Of course, for GI, in most cases, the most striking difference lies between 1 and 2 diffuse bounce depth; extra bounces are mainly further refinement, but still.
    - I forgot that specular bounces also matter for refraction (not just reflection), so if you are doing refractive objects (or interreflections), by all means max specular depth should be at least 2.

    --------

    ...And I have no idea how the depth limits in UberSurface2 work now (those "indirect diffuse max trace depth" and "reflection max trace depth" sliders). I used to think they did the obvious and set RiAttributes per surface... but I looked in the RIB, and they are parameters passed to the shader itself, not attribute calls. Okay, I can guess how this might be written (raylabels, conditional statements, message passing...), but since I cannot verify its actual algo, I cannot truly recommend using or not using this feature.

  • wowiewowie Posts: 2,029
    edited December 1969


    Well, I don't think it ignores shading rate. This line pertains to the actual parameters that are passed in the same RiOption call as setting the hider, not to other RiOptions and RiAttributes. And even this line is outdated - if you dl the standalone and look in the PDF that comes with it (page 32 as per the printed page number - or page 39 in a PDF viewer), now the "raytrace" hider has some other parameters, too.

    I have tried changing the shading rate up to 10 in the render options and still got the same render and render time. This was awhile back, so I don't if anything have changed since then.

    Oh yeah. I think I might have enabled the reflection in the wrong layer for the eyereflection/surface. If you're seeing unwanted reflection with those settings, try to use the second layer instead.

  • Mustakettu85Mustakettu85 Posts: 2,933
    edited December 1969

    wowie said:

    I have tried changing the shading rate up to 10 in the render options and still got the same render and render time. This was awhile back, so I don't if anything have changed since then.

    Oh yeah. I think I might have enabled the reflection in the wrong layer for the eyereflection/surface. If you're seeing unwanted reflection with those settings, try to use the second layer instead.

    Did some tests, and you're right... it's not just that the DS progressive mode might be locked to a single value, general shading rate is simply of no importance. Cool!
    Shading rate per surface is still valid for old SSS type, though. Not for the "type" "raytrace", this only responds to samples.

    I wonder if pixel samples take on a new meaning with the new hider...

    Okay thanks, I'll keep that in mind for scenes with newer figures =)

  • Kevin SandersonKevin Sanderson Posts: 1,643
    edited December 1969

    Mustakettu85, Thank you for the tips and help! Got it to work and every time, too, without having to exit DAZ Studio and start again.
    Notepad++ was a great help and made it easier to put in the code. I think I may have done something to the line breaks when I was trying to get it to work, but Notepad was no fun to work on it. Notepad++ is so much better!

    It renders fastest so far on basic scenes (really fast) and ones that are built from scratch.. The tutorial scenes are a challenge due to their SSS shaders. I get a shader error every time with the ones I've used so far, but Fiery Genesis seemed to work alright even with the SSS error, but it was over 20 minutes on an AMD 8350 8 core.

    HiderRender2.png
    618 x 800 - 800K
  • Mustakettu85Mustakettu85 Posts: 2,933
    edited December 1969

    Mustakettu85, Thank you for the tips and help! Got it to work and every time, too, without having to exit DAZ Studio and start again.
    Notepad++ was a great help and made it easier to put in the code. I think I may have done something to the line breaks when I was trying to get it to work, but Notepad was no fun to work on it. Notepad++ is so much better!

    It renders fastest so far on basic scenes (really fast) and ones that are built from scratch.. The tutorial scenes are a challenge due to their SSS shaders. I get a shader error every time with the ones I've used so far, but Fiery Genesis seemed to work alright even with the SSS error, but it was over 20 minutes on an AMD 8350 8 core.

    You're most welcome, Kevin!

    What's the shader error you're getting with SSS? If it's about the irradiance channel, it's not a "deadly" one. It will still render SSS (at least, if the presets are using UberSurface - I never tested AoA's shader with the new hider or GI cache, I just don't use it).
    However, to get the best out of the raytrace hider, you do need a new SSS shader optimised to take advantage of it. I plan to release mine eventually - but since it will require a manual, I'm not too keen on this idea right now...

    If the Fiery Genesis tutorial is anything like the old Fiery V4 tutorial, and if my memory serves me right, the light set there is particularly sloooooooow, very inefficient. And if you enabled GI in the UE2, 20 mins is not a bad time by any means, for a closeup.

    Are you using the dzLights for directional lighting in your scenes, or the built-in DS ones from the menu? DzLights will generally be faster.

  • Kevin SandersonKevin Sanderson Posts: 1,643
    edited July 2014

    The error is 3Delight message #46 (Severity 1) The subsurface () shaderop shou... and the rest is cut off by the edge of the box. A couple flashed before that one but it looked like it was complaining about not finding some things.

    The only change I made to the tute light set was changing UE2 to Bounce Light GI. Everything else is the same so it's probably the slower setup you experienced. I don't think these are Dz Lights as there's no adjustment for samples for shadows.

    Post edited by Kevin Sanderson on
  • Mustakettu85Mustakettu85 Posts: 2,933
    edited December 1969

    The error is 3Delight message #46 (Severity 1) The subsurface () shaderop shou... and the rest is cut off by the edge of the box. A couple flashed before that one but it looked like it was complaining about not finding some things.

    The only change I made to the tute light set was changing UE2 to Bounce Light GI. Everything else is the same so it's probably the slower setup you experienced. I don't think these are Dz Lights as there's no adjustment for samples for shadows.

    Yup that's the error about irradiance not specified. Generally, severity 1 errors are "okay". And yeah, if there's no sample controls, these are the built-in ones.

  • wowiewowie Posts: 2,029
    edited July 2014

    Some renders studying Uber area lights.

    These are all done purely with just UberArea lights. I'm using 5 area lights - 4 planes and 1 sphere. Three of the planes acts as your standard rim lights (left, right, background), while the last is used to get highlights and placed quite further away from the subject (roughly 4 meters). This allows me to get quite sharp highlights without resorting to scaling the size, making shadows cast by the light to be quite sharp. The sphere is basically an overhead light.

    First render is overhead light and highlight light. In the second, I've enabled two of the rim lights. For the third, I enabled the third rim light and disabled the one on her left side. In the forth, I've enabled all rim lights and highlight light, but disabled the overhead light.

    I hope DAZ never fix these UberArea lights. :)

    4.jpg
    800 x 1040 - 634K
    3.jpg
    800 x 1040 - 640K
    2.jpg
    800 x 1040 - 613K
    1.jpg
    800 x 1040 - 615K
    Post edited by wowie on
  • Kevin SandersonKevin Sanderson Posts: 1,643
    edited December 1969

    Glad to know that error isn't fatal and SSS will still work, Mustakettu85, thanks!

    Wowie, you keep on trying things and getting very good results! I'll have to try a bunch of area lights as well sometime.

  • wowiewowie Posts: 2,029
    edited December 1969

    Glad to know that error isn't fatal and SSS will still work, Mustakettu85, thanks!

    Wowie, you keep on trying things and getting very good results! I'll have to try a bunch of area lights as well sometime.

    Thanks
    .
    I'm still very much learning though. It's the lighting that's still bothering me. I'll have to check out mustakettu85's script but haven't had the time.

  • RenpatsuRenpatsu Posts: 828
    edited December 1969

    First of all thank you all you restless guys and girls who put in a lot of effort into figuring this all out. It will be interesting to see how e.g. the Advanced Ambient light will turn out once IBL and IDL come into play and also once optimised shaders and render scripts for the more recent 3Delight features become available in DAZ Studio.

    With regards to skin shaders, after trying the AoA Subsurface Shader for some time, I am mostly going back to UberSurface2 Shader, which I am most familiar with and where I am seeing the best results for my personal taste at least. Some features of the AoA Subsurface Shader would be nice to have in UberSurface2, but on the other hand the UberSurface2 Shader also got some nice features.

    From the rendering side I am still a big fan of the PointCloud. The GI caching is certainly interesting and it is a close call compared to PointCloud from the speed on my Mac, but I am currently not using optimised shaders anyway, so the PointCloud probably got a slight advantage there. At the moment I don't have the time to delve into and compile 3Delight shaders myself and get them to embed them into Daz Studio directly, which is a bit unfortunate.

    Anyway, will be interesting to see what the future holds in 3Delight and DAZ Studio land :)

  • Takeo.KenseiTakeo.Kensei Posts: 1,303
    edited December 1969

    I give up.

    100 000 hairs + subdivided genesis = 600 000 polys = 5 min with raytrace hider vs + 30 min with Reyes

    However I just discovered that Raytrace Hider + Pointcloud = 55 s...that is the killing combination it seems

  • wowiewowie Posts: 2,029
    edited July 2014


    100 000 hairs + subdivided genesis = 600 000 polys = 5 min with raytrace hider vs + 30 min with Reyes

    However I just discovered that Raytrace Hider + Pointcloud = 55 s...that is the killing combination it seems

    That would do it. Point cloud is always going to be faster. Btw, I'm assuming you meant the point based occlusion script render.

    Post edited by wowie on
  • Takeo.KenseiTakeo.Kensei Posts: 1,303
    edited December 1969

    Not really. Made the scene outside DS. But adding the raytrace hider inside the script should do it too. One line inside.

    The progressive rendering with point cloud may even work

    I've yet also to add the raycache option in the mix

  • wowiewowie Posts: 2,029
    edited December 1969

    Not really. Made the scene outside DS. But adding the raytrace hider inside the script should do it too. One line inside.

    The progressive rendering with point cloud may even work

    I've yet also to add the raycache option in the mix

    That is interesting.

  • Takeo.KenseiTakeo.Kensei Posts: 1,303
    edited December 1969

    Yep; Not sure I didn't messed up something with SubD. I thought Reyes would handle it better as it handled the 100 000 Ricurves pretty well

    The Ricurves only took 20s with Raytrace Hider and 40 s with the Reyes. (I don't know what people have with fiber mesh. It's pretty much inefficient vs curves.)

    Last test : I lost 1s with Raycache active. Not sure I got a situation where the raycache helped

  • wowiewowie Posts: 2,029
    edited December 1969

    Yep; Not sure I didn't messed up something with SubD. I thought Reyes would handle it better as it handled the 100 000 Ricurves pretty well

    The Ricurves only took 20s with Raytrace Hider and 40 s with the Reyes. (I don't know what people have with fiber mesh. It's pretty much inefficient vs curves.)

    Last test : I lost 1s with Raycache active. Not sure I got a situation where the raycache helped

    What about raytrace hider with the raycache only (without the point cloud)?

  • Takeo.KenseiTakeo.Kensei Posts: 1,303
    edited December 1969

    No difference with only the Raytrace Hider for this scene
    Question is : How does it work? As it is undocumented, it is hard to guess and difficult to know how to use it efficiently

  • wowiewowie Posts: 2,029
    edited December 1969

    I think I've finally got it.

    Slight tweak to the SSS scale, changed it to 0.3 to clamp transluency from bleeding in dark areas.
    Light setup is a tweaked version of the previous setup, but this time I'm toning down the strength to get that soft diffuse look It's still a mess, so I haven't organized them yet.

    Julie.jpg
    800 x 1040 - 426K
  • SzarkSzark Posts: 10,634
    edited December 1969

    looking good wowie

  • wowiewowie Posts: 2,029
    edited July 2014

    Something that might be of interest about UberArea lights that some may do not know.
    * Different shapes produces different highlights/shadows.
    * Using a volume, instead of a plane means you need to adjust the strength and the number of samples.

    Here's a comparison between a rectangular plane (1st), a disc (2nd) and a sphere (3rd) flattened. I personally like the sphere better. I think it's because it's a volume, so the distribution of rays more closely mimics real light. You do need a lot of intensity and samples to get the same general luminosity. I think it's about twice the intensity and four times the samples.

    sphere.jpg
    800 x 1040 - 415K
    disc.jpg
    800 x 1040 - 425K
    plane.jpg
    800 x 1040 - 426K
    Post edited by wowie on
  • SzarkSzark Posts: 10,634
    edited December 1969

    it isn't Volume so much but the rounded edges of the flatten sphere that is producing a better light source given the light rays aren't at 90 degrees from the surface.

  • wowiewowie Posts: 2,029
    edited July 2014

    I don't think so Szark. If it is just rounder corners, the sphere and the disc should look more similar. The sphere isn't completely flat (only about 1.5%). I do think the plane is a good approximation you could use for figuring out where to place the lights.

    Post edited by wowie on
Sign In or Register to comment.