3Delight Surface and Lighting Thread

18911131452

Comments

  • millighostmillighost Posts: 261
    edited December 1969



    It uses a photon map on the normal geometry, so no point cloud (unless you count the photon map as a point cloud, which it internally practically is) and mixes that with the direct lighting (50-50 ratio) using raytracing (for the direct light shadows).

    Did you use photon mapping from Shader Mixer or a custom shader (Shader Builder or manually scripted)?

    ---------------------------

    That particular render was manually scripted. It does not use DazStudio at all, so strictly by law it has to be seen as an off-topic post. The same render is possible with ShaderMixer, too, but is way slower (over 10 minutes even) for some unknown reason. I do not know about ShaderBuilder, which i usually avoid whenever possible. Mainly because it forces one to constantly switch between mouse and keyboard, so i use it only when creating a custom ShaderMixer node, for instance.

  • millighostmillighost Posts: 261
    edited December 1969


    @Millighost : you say you used photon mapping but that is not what I get with photons ( it's very blurry even with 1024 samples). Did you use Indirectdiffuse() with final gather or is it a tech I don't know?

    Yes, indirectdiffuse (with 1500 samples) and 1 Mio photons basically. Lowering one value significantly without raising the other would result in noticable artifacts. The indirectdiffuse() is in the surface shader, however, that might be a difference (with ShaderMixer's Indirect Diffuse Camera it will go per default into a light source, which makes it a bit more difficult to relate the indirect diffuse and direct diffuse to each other IMO). And at least on my system ShaderMixer is slower, but apart from the speed ShaderMixer works too. Your render looks a bit too contrasty to me (backwall overlit, shadows too dark), did you enable square falloff (necessary when mixing direct and indirect light) and gamma correction (required to compare the renders)?

  • SpyroRueSpyroRue Posts: 5,020
    edited December 1969

    wowie said:
    More renders, this time with SSS.

    Excellent work with your custom skin shader settings, the specular highlights is particularly striking and likewise difficult to achieve. Has a realistic quality about him reminding me of Maya renders and Hellboy's work among others, very inspirational, great stuff :)

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


    @Millighost : you say you used photon mapping but that is not what I get with photons ( it's very blurry even with 1024 samples). Did you use Indirectdiffuse() with final gather or is it a tech I don't know?

    Yes, indirectdiffuse (with 1500 samples) and 1 Mio photons basically. Lowering one value significantly without raising the other would result in noticable artifacts. The indirectdiffuse() is in the surface shader, however, that might be a difference (with ShaderMixer's Indirect Diffuse Camera it will go per default into a light source, which makes it a bit more difficult to relate the indirect diffuse and direct diffuse to each other IMO). And at least on my system ShaderMixer is slower, but apart from the speed ShaderMixer works too. Your render looks a bit too contrasty to me (backwall overlit, shadows too dark), did you enable square falloff (necessary when mixing direct and indirect light) and gamma correction (required to compare the renders)?

    It's just that I didn't activate Gamma correction I guess.

    @Mustakettu85 : Never tried to "flag" but I guess it's just a 'if then...else' test. Never seen matte object reference in 3delight either but it seems to be a new implementation in Rman so you may have to wait for it to be implemented

  • wowiewowie Posts: 2,007
    edited January 2014

    This will likely be my final skin and light setup.

    It's basically the same as before, but I added blurred raytraced reflections on the first layer. I toned down the stronger specular highlights a bit so the skin doesn't look (too) wet. I was silghtly surprised by the render time - around 2 minutes with shading rate 1 (hence the lack of fine details). Took two renders with different light setup.

    Test2.png
    800 x 1040 - 931K
    Test1.png
    800 x 1040 - 937K
    Post edited by wowie on
  • wowiewowie Posts: 2,007
    edited January 2014

    Spyro said:

    Excellent work with your custom skin shader settings, the specular highlights is particularly striking and likewise difficult to achieve. Has a realistic quality about him reminding me of Maya renders and Hellboy's work among others, very inspirational, great stuff :)

    Thanks. Yup, I am mainly using his renders as reference (along with actual photographs). Speaking of Hellboy, here's another render from me of M4 Elite Rob trying to mimic what he'd gotten with Reality/Luxrender. Generally the same skin settings as before but without SSS. At shading rate 1, it took about 40 seconds to render. With shading rate set to 0.25, render time went up to roughly 2 minutes.

    The light/skin setup probably could be made more simple though. Right now, I'm using two UE2 (with different occlusion coverage and colors) plus two distant shader lights. I think you can either use environment map for the skin reflection (instead of raytracing) or use Age of Armour's Advanced Ambient Light as a substitute for indirect specular. I don't have it though, so I don't know for sure. I think if you plugged in the same HDRI image to both UE2 and Adv Ambient Light you really don't need anymore lights. The UE2 can act as both direct/indirect diffuse and Adv Ambient light for speculars.

    Rob.png
    800 x 1040 - 809K
    Post edited by wowie on
  • SpyroRueSpyroRue Posts: 5,020
    edited December 1969

    Are you using US2 or AoA SSS? Getting that nice white sheen has been particularly difficult for me. I generally use AoA, but explored US2, the results between the two vary somewhat. I use 2 Spec channels, devoting Spec2 to the sheen, i did find that not using a spec map on spec2 provided a neat result, I indeed played with specular colour, keeping it roughly opposite to the skins colour, typically a blueish hue. Are you getting such plausible specular because of raytraced reflections or is it all in your specular settings? You've totally inspired me to improve my custom characters!

  • wowiewowie Posts: 2,007
    edited January 2014

    Spyro said:
    Are you using US2 or AoA SSS? Getting that nice white sheen has been particularly difficult for me. I generally use AoA, but explored US2, the results between the two vary somewhat. I use 2 Spec channels, devoting Spec2 to the sheen, i did find that not using a spec map on spec2 provided a neat result, I indeed played with specular colour, keeping it roughly opposite to the skins colour, typically a blueish hue. Are you getting such plausible specular because of raytraced reflections or is it all in your specular settings? You've totally inspired me to improve my custom characters!

    UberSurface 2. I haven't touched AoA's Subsurface (though I do have the video).

    Both specular layers have specular maps plugged in the strength slot (most MATs will load it in the color slot). Works fine either way.

    You need to setup fresnel on both layers. I'm using 0.75 falloff with 50 % strength for the stronger specular (I'm using the first layer for that) and 0.25 falloff at 75 % strength. I generally set my specular colors at 176/175/192 so it'll look slightly blue.

    Glossyness/roughness is 30% (stronger specular) and 7.5% (weaker specular).

    Specular strength will vary depending on specular maps and the specular light. I setup my specular light at 850 % so the resulting specular strength without maps is around 5 %. In my experience, if you want fine skin details, you need to use specular maps. Bump maps won't have the same effect since it works (mostly) with the diffuse channel. You'll end up with dry looking skin that way.

    I did some more renders with more than one figure. With some angles and figures close together (skin on skin), raytraced reflection is causing some unwanted artifacts. So, I think the best way doing indirect specular is with AoA's Adv Ambient Light. It will definitely render faster since you're not doing reflections.

    Post edited by wowie on
  • SpyroRueSpyroRue Posts: 5,020
    edited December 1969

    Thanks very much for that :) Fresnel Specular is something that makes US2 particularly stand out to me, when I did some homework on skin materials it was difficult to determine what values were necessary for 3Delight and US2. When I had a play it seems I was far from the values you mention lol. The other thing about US2 thats appealing to me is the layering capabilities.

    For a long time I've been struggling with the common dry looking skin, but my efforts to break from it often created more problems LOL Am totally new to US2 tbh, I went from HSS to AoA, but often used the original Ubersurface with props and clothing. Having read through this thread, by the looks Uber2 appears to be common preference when it comes to human skin.

  • wowiewowie Posts: 2,007
    edited December 1969

    I believe AoA's Subsurface can also apply fresnel to speculars (when you enable it). HSS and UberSurface do not. I don't know about PWsurface since I never bought it.

    I did stuck with HSS for a long time but the lack of fresnel made it very hard to get specular right so it was a lost cause. It's generally fine for reflective metals though, since you can use reflection+fresnel.

  • MattymanxMattymanx Posts: 6,657
    edited December 1969

    I never got into using Uber Surface or HSS. My poison was always pwSurface2 until the AoA SSS shader came along. Also I have become a huge fan of AoA's lights that he made. I wish he would do a distant light too so we could have greater control.

    image below is G2F. The hair uses US1 while the skin uses AoA SSS. The image is not post worked except for the name. Lights are 3 Advanced Spotlights and one Advanced Ambient Light.

    Please see the gallery link here - http://www.daz3d.com/gallery/#galleries/22950 - for all 4 versions of the image. The Aiko image in the same folder uses AoA SSS shader on the skin as well and is the first time I used it.

    171_-_Glamour-1.png
    720 x 1080 - 485K
  • wowiewowie Posts: 2,007
    edited December 1969

    Here's a breakdown of my lights and how they render. Here are the specular and diffuse contribution. Even with bump maps enabled, you can see the diffuse render is very flat.

    Diffuse.png
    800 x 1040 - 712K
    Specular.png
    800 x 1040 - 555K
  • wowiewowie Posts: 2,007
    edited January 2014

    As I said before, I'm using two UE with different colors and occlusion coverage. This allows me to have a more 'gradual' occlusion - darker at the end with just a touch of occlusion leading to that area. It also allows me to 'lit' the darker areas with different colors - a darker red. I believe this is a more accurate way of doing it rather than using colored shadows.

    The last shot is how all the diffuse light - the two UE2 light and the directional shader light - comes together.

    TotalDiffuse.png
    800 x 1040 - 745K
    UE2.png
    800 x 1040 - 633K
    UE1.png
    800 x 1040 - 628K
    Post edited by wowie on
  • MistaraMistara Posts: 38,675
    edited December 1969

    wowie said:
    This will likely be my final skin and light setup.

    It's basically the same as before, but I added blurred raytraced reflections on the first layer. I toned down the stronger specular highlights a bit so the skin doesn't look (too) wet. I was silghtly surprised by the render time - around 2 minutes with shading rate 1 (hence the lack of fine details). Took two renders with different light setup.


    looks fantastic

  • Mustakettu85Mustakettu85 Posts: 2,932
    edited February 2014


    @Mustakettu85 : Never tried to "flag" but I guess it's just a 'if then...else' test. Never seen matte object reference in 3delight either but it seems to be a new implementation in Rman so you may have to wait for it to be implemented

    Basic "RiMatte"-type of Matte is there, but it does not want to set the attribute. Maybe because it´s a boolean one, and I was trying to setFloatAttrib. Should I try setIntegerAttrib instead?

    And yeah, flagging would def be a simple "if then else", that's not a problem, but, first I don't know if it's the optimum way to get to it by first iterating over all dzNodes, then getting all dzShapes for each, then dzMaterials and then dzRSLShaders... (I may have missed a step LOL) I haven't found a method in dzScene that would give me just the materials without all that hassle.

    Then, DzRSLShader Class Reference page says:
    "These methods affect the shader object at render-time, and are provided for the render-time script only. Calling these functions from outside the render-time script will have no effect. "

    So I don't understand if it would be possible to set object attributes for a shader (again, it is weird - we need methods of the shader class to set OBJECT RiAttributes?!) when calling from a rendertime script for a light.

    ...but we all know it is possible to do flagging because AoA did it. I just hope it doesn't require jumping through a billion hoops.

    ---


    That particular render was manually scripted. It does not use DazStudio at all, so strictly by law it has to be seen as an off-topic post.

    Thanks for explaining... and no, it's not off-topic (at least in this thread since it only says "3Delight" in the title ;D)

    ---

    wowie said:
    I believe AoA's Subsurface can also apply fresnel to speculars (when you enable it).

    I have not found a Fresnel node in AoA's network. There is a chance I may have overlooked it if it's in some unexpected place, but I can't see it where I'd put it. Either way, since it's all ShaderMixer, it should not be that hard to get it in...

    EDIT: pwSurface does not attenuate specular either. So for premade shaders, it's US2 all the way.



    It's generally fine for reflective metals though, since you can use reflection+fresnel.

    But metals do not have really any noticeable Fresnel attenuation, do they? I've always thought this is what makes them metals actually (this, and coloured highlights).


    Right now, I'm using two UE2 (with different occlusion coverage and colors)

    Oh WOW. Not just the skin (that's twice the wow), but the fact that... it is possible to use two UEs and they won't get all weird?! I'd thought omnifreaker was advising against using two because they'd kill each other with artefacting... so I never tried...


    I think if you plugged in the same HDRI image to both UE2 and Adv Ambient Light you really don't need anymore lights.

    I'm not sure AdvAmbient colour can be mapped - I have it installed at home, so I'll check.

    What can be mapped and do specular is 3Delight's native envlight2. I finally got it to work within DS (stupid me did not notice the nospec and nodiffuse were both set to 1 somehow!) and I'm sooo happy... Extra pretty and easy to use. Fast, too (though I would not advise feeding multilayered transmapped hair to it =)). Gives predictable directional shadows when using quality HDR maps like these here: http://www.openfootage.net/?tag=hdri

    This particular render could use more specular because the skin came from my go-to setup with a spec light stronger than a tinted diffuse, and I'm not done with the eyes yet, but still. Me likes. No fuss.

    laura_env2_notrans.png
    400 x 600 - 370K
    Post edited by Mustakettu85 on
  • Mustakettu85Mustakettu85 Posts: 2,932
    edited December 1969

    BTW, does anyone know if that 3Delight-specific specular model is anyhow Cook-Torrance? It does not seem to have built-in Fresnel, but...

    ...just in case some people have not noticed: http://www.3delight.com/en/uploads/docs/3delight/3delight_35.html#SEC133 - 3Delight's own specular is not "standard specular" or Phong. You may have seen it even out of shader builder - as that prettier model you can choose in pwSurface or a shader mixer spec node.

  • mjc1016mjc1016 Posts: 15,001
    edited December 1969


    So I don't understand if it would be possible to set object attributes for a shader (again, it is weird - we need methods of the shader class to set OBJECT RiAttributes?!) when calling from a rendertime script for a light.

    Just remember in 'Renderman' terms, it's all a shader...there are 3 types...surface (color/image/texture...and a sort of subtype...displacement (which includes bump/normalmaps)), volume and light.

  • Richard HaseltineRichard Haseltine Posts: 80,497
    edited December 1969

    mjc1016 said:

    So I don't understand if it would be possible to set object attributes for a shader (again, it is weird - we need methods of the shader class to set OBJECT RiAttributes?!) when calling from a rendertime script for a light.

    Just remember in 'Renderman' terms, it's all a shader...there are 3 types...surface (color/image/texture...and a sort of subtype...displacement (which includes bump/normalmaps)), volume and light.

    and camera.

  • wowiewowie Posts: 2,007
    edited December 1969

    @Mustakettu85

    You're right. I did a quick glance at the readme PDF for AoA's Subsurface and Adv Ambient light, I didn't find any fresnel explanation and the light color/intensity doesn't seem to have a drop down option for textures. Quite unfortunate. Probably would be a good idea to request those features though.

  • Type 0 NegativeType 0 Negative Posts: 320
    edited December 1969

    I'm having a brain malfunction, I'm forgetting something simple.

    UberEnvironment2 loads with a EnvironmentSphere

    That EnvironmentSphere textured with the UberEnvironment2 presets, like FullMoon, Park, etc. does those matter? If the thing is invisible to the render it would make no difference if the EnvironmentSphere was just deleted right? It is only there if you want to turn it on and see it render in the background right?

  • Richard HaseltineRichard Haseltine Posts: 80,497
    edited December 1969

    The sphere is just there as a guide, it isn't functionally significant.

  • Mustakettu85Mustakettu85 Posts: 2,932
    edited December 1969

    mjc1016 said:

    Just remember in 'Renderman' terms, it's all a shader...there are 3 types...surface (color/image/texture...and a sort of subtype...displacement (which includes bump/normalmaps)), volume and light.

    and camera.

    Thank you guys. But I know that much.
    Okay, English is not my native tongue, so I apologise for never making myself clear enough, as it seems.

    What I meant was - will the "set...Attribute" methods be available for dzRSLShader objects defining surface materials, if I'm calling those methods from a rendertime script that is attached _not_ to those surface shaders but to one of the light shaders? The scripting documentation does not make it clear.

    I'm sorry that it's not a specifically RSL-related question, but I'm asking here and not in a new thread (likely doomed to be lost) somewhere in the depths of the developers forum because I see a handful of knowledgeable faces here.

    I would also appreciate any suggestions for the best practice of debugging rendertime scripts - I can't seem to find any commands like "step in" etc

    Thank you everyone!

  • millighostmillighost Posts: 261
    edited December 1969


    What I meant was - will the "set...Attribute" methods be available for dzRSLShader objects defining surface materials, if I'm calling those methods from a rendertime script that is attached _not_ to those surface shaders but to one of the light shaders? The scripting documentation does not make it clear.
    Not directly. But the scripts are still normal scripts and can do other things than simply setting attributes on the current shader. They can go through all the scene, setting values here and there and so on (if that was the question).


    I'm sorry that it's not a specifically RSL-related question, but I'm asking here and not in a new thread (likely doomed to be lost) somewhere in the depths of the developers forum because I see a handful of knowledgeable faces here.

    I would also appreciate any suggestions for the best practice of debugging rendertime scripts - I can't seem to find any commands like "step in" etc


    print() and App.flushLogBuffer() works well.
  • Mustakettu85Mustakettu85 Posts: 2,932
    edited December 1969


    Not directly. But the scripts are still normal scripts and can do other things than simply setting attributes on the current shader. They can go through all the scene, setting values here and there and so on (if that was the question).

    The thing is, what I want to set is RiAttributes: the script attached to a light should iterate through dzNodes, dzShapes, dzMaterials, read, say, ambient strength values (easy with dzDefaultMaterials and kinda weird for dzShaderMaterials), and if the value is, say, 13%, it gets the dzRSLShader and sets its surface invisible to the light.

    According to scripting documentation, the methods that set RiAttributes are grouped under "render-time" in the dzRSLShader class, and this is what is said about them:

    "Methods (render-time)
    These methods affect the shader object at render-time, and are provided for the render-time script only. Calling these functions from outside the render-time script will have no effect. "
    http://docs.daz3d.com/doku.php/public/software/dazstudio/3/start - there's an archive with the documentation which used to come with DS3 scripting kit. Surely something might've changed between DS3 and DS4, but it seems the DS4 scripting documentation is not up in its entirety - this page is almost empty: http://docs.daz3d.com/doku.php/public/software/dazstudio/4/referenceguide/scripting/api_reference/object_index/start

    I can't seem to grasp if a rendertime script attached to another shader (not the one we want to set the attribute for) would be able to call these methods. I'd really like to know it for sure before I plunge any deeper into designing the way to extract my flag from an arbitrary dzShaderMaterial.

    Why are these methods render-time, anyway? It would've been so much easier to just get selected surfaces from scene, get their dzRSLShaders and set their RiAttributes at an arbitrary time during scene setup...

    Yeah, the easiest thingt would be to generate a RIB and edit it manually, but where's the challenge in that?


    print() and App.flushLogBuffer() works well.

    Thank you. Missed the buffer flushing method. It's less confusing to me than just print().

  • millighostmillighost Posts: 261
    edited December 1969


    Not directly. But the scripts are still normal scripts and can do other things than simply setting attributes on the current shader. They can go through all the scene, setting values here and there and so on (if that was the question).

    The thing is, what I want to set is RiAttributes: the script attached to a light should iterate through dzNodes, dzShapes, dzMaterials, read, say, ambient strength values (easy with dzDefaultMaterials and kinda weird for dzShaderMaterials), and if the value is, say, 13%, it gets the dzRSLShader and sets its surface invisible to the light.

    But there would be the problem: DzDefaultMaterial does not have a shader, because the shader for the DzDefaultMaterial is only determined when the material is rendered. The default material's properties can be modified, but not using RiAttributes. So until rendertime the DefaultMaterial's shader is not known, ergo no shader script can be run. Not unsolvable, but in the general case otherwise that would mean to run the shader scripts everytime a material setting is modified, which would be awkward.
    Also, materials often have more than one shader (displacement, surface etc). If some of them would iterate through the scene to set attributes, it would be highly dependent on the order of the items, and it would likely only work if the different shader scripts where working hand in hand (which they do not, because their respective creators do not usually talk to each other, which, of course happens anyway, but running the shader scripts at only one point during rendering - namely when the shader is actually used - makes this a bit less problematic).


    According to scripting documentation, the methods that set RiAttributes are grouped under "render-time" in the dzRSLShader class, and this is what is said about them:

    "Methods (render-time)
    These methods affect the shader object at render-time, and are provided for the render-time script only. Calling these functions from outside the render-time script will have no effect. "
    http://docs.daz3d.com/doku.php/public/software/dazstudio/3/start - there's an archive with the documentation which used to come with DS3 scripting kit. Surely something might've changed between DS3 and DS4, but it seems the DS4 scripting documentation is not up in its entirety - this page is almost empty: http://docs.daz3d.com/doku.php/public/software/dazstudio/4/referenceguide/scripting/api_reference/object_index/start


    It could not work reliably. The renderer outputs objects in a specific order, e.g. with two objects:
    1 output attributes for object 1 using the shader script
    2 output object 1
    3 output attributes for object 2 using the shader script
    4 output object 2
    and so on. Object 2 might be the light in your case. But the shader script for object 2 cannot possibly modify the attributes of object 1, because that was already sent to the renderer; so even if it could call object 1's shader's setAttribute method, it would be too late.
    I can't seem to grasp if a rendertime script attached to another shader (not the one we want to set the attribute for) would be able to call these methods. I'd really like to know it for sure before I plunge any deeper into designing the way to extract my flag from an arbitrary dzShaderMaterial. Why are these methods render-time, anyway? It would've been so much easier to just get selected surfaces from scene, get their dzRSLShaders and set their RiAttributes at an arbitrary time during scene setup... Yeah, the easiest thingt would be to generate a RIB and edit it manually, but where's the challenge in that?
    print() and App.flushLogBuffer() works well.

    Thank you. Missed the buffer flushing method. It's less confusing to me than just print().

  • Mustakettu85Mustakettu85 Posts: 2,932
    edited December 1969

    Millighost,

    Thanks a lot for this post. It's truly enlightening.


    But there would be the problem: DzDefaultMaterial does not have a shader, because the shader for the DzDefaultMaterial is only determined when the material is rendered.

    - GODS! Why does it seem such an extra super backwards way of doing things?!


    But the shader script for object 2 cannot possibly modify the attributes of object 1, because that was already sent to the renderer; so even if it could call object 1's shader's setAttribute method, it would be too late.

    Yeah, I was wondering if something like that could happen. So basically then, the light has to go in first, right? But what would determine the order in which scene objects get processed?


    -------

    Given that I have several ideas going on at once, and one of them is a decent kinda glass... documenting baby steps towards that.
    This is a bunny featuring a ShaderMixer "fakey glassy" network that resulted from my reflecting upon this: http://renderman.pixar.com/resources/17/rps/opacityRevealed.html

    The shadows don't seem to look right for a solid glass object (I think - does anyone have a glass ball or something handy?), but they're just an experiment, transmission opacity driven by Fresnel transmission. Kinda makes them more interesting.

    I would´ve thrown in caustics for good measure, but it does not seem to play well with the way the shader is set up: when raytype is transmission, the shader uses the experimental opacity to get coloured shaded shadows, otherwise it's opaque (working from the article linked above). But it seems that to get caustics in shader mixer, you need the object to be transparent to light rays?..

    I'm wondering if it's worth it trying to implement absorption in SMixer, or should I move to Builder where I could write "normal" code? This network is already out of hand, this is why no screenshots, but I could upload the .dbm or .dsa if anybody's curious.

    glassybunny.png
    500 x 500 - 252K
  • wowiewowie Posts: 2,007
    edited December 1969

    I was browsing when I stumbled upon this.
    The artist's page - http://www.matkovic.com/anto/gallery.html
    So, it looks like the hair look I'm aiming for can be done. :)
    Just need to figure out how to implement this in DS.

    3dl-test-dsm-translucency.jpg
    1280 x 1280 - 352K
  • mjc1016mjc1016 Posts: 15,001
    edited December 1969

    wowie said:
    I was browsing when I stumbled upon this.
    The artist's page - http://www.matkovic.com/anto/gallery.html
    So, it looks like the hair look I'm aiming for can be done. :)
    Just need to figure out how to implement this in DS.

    Sorry, but that does not look like transparency mapped hair...if you zoom in to where the hair meets the scalp you'll see that it is individual strands and they have 'shape'.

    It's fibremesh, or more likely curve based hair...and you've got a choice of two existing implementations for that. LAMH or Garibaldi...

  • wowiewowie Posts: 2,007
    edited February 2014

    mjc1016 said:

    Sorry, but that does not look like transparency mapped hair...if you zoom in to where the hair meets the scalp you'll see that it is individual strands and they have 'shape'.

    It's fibremesh, or more likely curve based hair...and you've got a choice of two existing implementations for that. LAMH or Garibaldi...


    I think the technique can also be applied to transmapped hair. If I read the WIP notes correctly, it's using a combination of DSM lights, no AO, colored shadows and a gradient falloff. It's the gradient falloff that's stumping me.
    Post edited by wowie on
  • mjc1016mjc1016 Posts: 15,001
    edited December 1969

    wowie said:
    mjc1016 said:

    Sorry, but that does not look like transparency mapped hair...if you zoom in to where the hair meets the scalp you'll see that it is individual strands and they have 'shape'.

    It's fibremesh, or more likely curve based hair...and you've got a choice of two existing implementations for that. LAMH or Garibaldi...


    I think the technique can also be applied to transmapped hair. If I read the WIP notes correctly, it's using a combination of DSM lights, no AO, colored shadows and a gradient falloff. It's the gradient falloff that's stumping me.

    I'm not exactly clear on what that is...let alone how to implement it. I mean some of the stuff I've seen seems to make it out to be a SoftImage only type thing that's similar/same to 'quadratic' and other stuff makes it out to something entirely different.

    But is it going to be 'better'/quicker/easier than something like a Marschner shader?

Sign In or Register to comment.