Home 3D Art Showcase & Critiques

[WIP] [UE4] Daenerys Targaryen

polycounter lvl 3
Offline / Send Message
stororokw polycounter lvl 3
This will be the final female character that I have planned for my portfolio. My main goal is to create a likeness and make it game ready.
I will rotate between my other works in progress and try to finish them.

Advice and critiques are welcomed.

Replies

  • stororokw
    Options
    Offline / Send Message
    stororokw polycounter lvl 3
    wip 1
    I started blocking the primary forms last week and created a setup in UE4 so I can start iterating on the likeness sculpt.

    Zbrush

    UE4 decimated meshes.
  • Shyralon
    Options
    Offline / Send Message
    Shyralon polycounter lvl 11
    Looks good, really like the UE4 renders - would you mind sharing your skin/eye setup?
    Main thing that is currently bothering me are the lips and the chin, seems like the chin should go more outwards and the shape of the lower lip maybe could be a bit more straight in the middle.
  • Xelar
    Options
    Offline / Send Message
    Xelar polycounter lvl 2
    I agree with Shyralon. You seem to have modeled the lips based on a sad picture and ended up with lips that pull down.
    Also her chin is too weak. Compare her 3/4 view in the bottom right reference with your model.
    If you're working with hair planes on the eyebrows, don't make them too dense. Looks great otherwise. 
  • stororokw
    Options
    Offline / Send Message
    stororokw polycounter lvl 3

    @Shyralon @Xelar
    Thank you both for the critiques. I straightened out the lips and moved the chin outwards not sure if it is enough though, but I will gather more references and reevaluate.

    I attached the skin material to the post. For the backlit parts I had to edit the source code of the engine. I am just copy pasting code and still trying to figure things out at the moment.

    For the eyes I have three parts one is the actual eyeball (MI_EyeRefractive), one is to blend the eye with the head (MI_EyeBlend), and the last one is to to darken the eye and blur all the parts together (MI_Eye_Occlusion_Bust). You can find all the materials in unreal's photorealistic example.


  • slosh
    Options
    Offline / Send Message
    slosh hero character
    This is looking really good so far!
  • jose.fuentes
    Options
    Offline / Send Message
    jose.fuentes interpolator
    you're off to an amazing strart! 
  • CybranM
    Options
    Offline / Send Message
    CybranM interpolator
    looks real nice :smile:
    What hairstyle will you make? I'm assuming the double braided one in the centre of your ref-image.
  • wellweishaupt
    Options
    Offline / Send Message
    wellweishaupt polycounter lvl 6
    Looking great buddy, can't wait to see more!!! :)
  • Swaggernaut
    Options
    Offline / Send Message
    Swaggernaut polycounter lvl 2
    Good attention to detail to making her eyes purple as they're supposed to be
  • stororokw
    Options
    Offline / Send Message
    stororokw polycounter lvl 3
    @slosh Thank you.
    @jose.fuentes Thanks. I hope I can improve on this project.
    @CybranM Unfortunately the season 7 braiding is too complicated (shown below), so I am probably going to go for the style from season 3/4.
     
    @Swaggernaut Thanks. I try.
                                                                                                                             
    Not much progress I have just been experimenting.

    I worked on adding a secondary specular lobe and a fuzz layer to the material. The fuzz layer was exaggerated and also made blue for debugging purposes. I still need to figure out how to send custom data from the material.

    I also started to play around with the hair material to see how to achieve very light hair colour and how I might go about creating the braids.

    Created a comparison image for Single specular lobe vs Double specular lobe + fuzz:
    https://imgsli.com/MDgwMg



  • stororokw
    Options
    Offline / Send Message
    stororokw polycounter lvl 3
    Sadly I have been messing around with the skin material again, but after many issues I managed to add in some extra material pins to control the fuzz, transmission and secondary specular. Hopefully the skin looks more velvety.
    Time to move on and get back to sculpting.


  • Portgas
    Options
    Offline / Send Message
    Portgas triangle
    Looks pretty good so far. How did you make the skin? Thanks.
  • Nathair23
    Options
    Offline / Send Message
    Nathair23 polycounter lvl 2
    Looks amazing and very alike, I love the skin texture and material!
  • stororokw
    Options
    Offline / Send Message
    stororokw polycounter lvl 3
    @Portgas
    For the peach fuzz I am using the cloth work done for The Order 1886. Pages 5-9.

    But for some reason when lit from behind I am getting no fuzz on the rim of objects.

    For the transmission I think I was initially trying to use:
    http://www.derschmale.com/2014/06/02/deferred-subsurface-scattering-using-compute-shaders/

    For the two specular lobes I am using the implementation details on slide 45 of:
    http://www.iryoku.com/downloads/Next-Generation-Character-Rendering-v6.pptx

    @Nathair23 Thanks. I got side tracked and spent too much time on the material.
  • almighty_gir
    Options
    Offline / Send Message
    almighty_gir ngon master
    you should pull-request this shader work, see if you can get it into the engine as like an advanced skin material.
  • stororokw
    Options
    Offline / Send Message
    stororokw polycounter lvl 3
    you should pull-request this shader work, see if you can get it into the engine as like an advanced skin material.
    I think it is unlikely since it requires another MRT/buffer and that probably incurs significant rendering cost for relatively little in return.
    https://forums.unrealengine.com/unreal-engine/events/84784-mclaren-car-configurator-rendering-techniques-june-2nd-live-from-epic-hq?p=759898#post759898

    I hope that Epic will improve their skin shader because so many other game engines already have features like transmission for quite a while now.

    I was wondering if you know what marmoset uses for its fuzz effect?
  • almighty_gir
    Options
    Offline / Send Message
    almighty_gir ngon master
    yeah i do.

    before we get into that though, what's causing it to use an extra buffer? all of this can be done with what's already there.
  • stororokw
    Options
    Offline / Send Message
    stororokw polycounter lvl 3
    <div>#elif MATERIAL_SHADINGMODEL_SUBSURFACE_PROFILE</div><div>	// Optimization: if opacity is 0 then revert to default shading model&nbsp;</div><div>	#if SUBSURFACE_PROFILE_OPACITY_THRESHOLD</div><div>	if (Opacity > 0.0)</div><div>	#endif</div><div>	{</div><div>		GBuffer.ShadingModelID = SHADINGMODELID_SUBSURFACE_PROFILE;</div><div>		GBuffer.CustomData.rgb = EncodeSubsurfaceProfile(SubsurfaceProfile);</div><div>		GBuffer.CustomData.a = Opacity;</div><div>	}</div><div>	#if SUBSURFACE_PROFILE_OPACITY_THRESHOLD</div><div>	else</div><div>	{</div><div>		GBuffer.ShadingModelID = SHADINGMODELID_DEFAULT_LIT;</div><div>		GBuffer.CustomData = 0;</div><div>	}</div><div>	#endif</div><div>	GBuffer.CustomData1.r = GetMaterialCustomData0(MaterialParameters);</div><div>	GBuffer.CustomData1.g = GetMaterialCustomData1(MaterialParameters);</div><div>	GBuffer.CustomData1.b = GetMaterialCustomData2(MaterialParameters);</div><div>	GBuffer.CustomData1.a = GetMaterialCustomData3(MaterialParameters);</div>

    GBuffer.CustomData.rgb is already being used for subsurface color
    GBuffer.CustomData.a is being used for opacity
    I am storing specular2 and specular2 roughness in the green and blue channels, transmission is alpha and fuzz in red.
    After that these values are being used in ShadingModels.ush.
    Maybe I am doing something wrong? I don't know much about real time rendering.
  • almighty_gir
    Options
    Offline / Send Message
    almighty_gir ngon master
    To be honest, i would probably modify the existing BRDF (or copy/paste it, and modify that one) that's used to calculate specular reflections, so that it just calculates two lobes, and adds them together. No need to go into the gbuffer for that. If you're smart about it, you can probably even derive a way of doing it so that the secondary lobe's reflectivity and roughness are derived from the first, which would stop you having to hand in additional parameters.

    Similarly, you can probably calculate transmission in the surface shader too.

    I'll see if i have time to experiment with this over the weekend. But what you're doing now is cool man, good job!
  • Sunray
    Options
    Offline / Send Message
    Sunray polycounter lvl 7
    Any chance you could share the shader or give some breakdowns? I'm trying to get my skin to look nice in ue4 your's look incredible! How do you add extra slots to a material like the fuzz/specular2/specular 2 roughness?
  • Shyralon
    Options
    Offline / Send Message
    Shyralon polycounter lvl 11
    It's coming along great!
    Really impressive what you are doing with the skin shading.
  • stororokw
    Options
    Offline / Send Message
    stororokw polycounter lvl 3
    @almighty_gir
    That sounds like it is way beyond me, but I am trying to learn OpenGL so I can understand RT graphics in particular deferred rendering. However, I am prioritising learning 3D art .

    Good luck the compile times are horrible.

    @Sunray
    Probably after I can get the transmission to work properly. I am stuck trying to figure out where or how to get the shadow map information to the shaders.

    To enable the pins you need to go to Engine/Source/Runtime/Engine/Private/Materials/Material.cpp
    and there is a function bool UMaterial::IsPropertyActive(EMaterialProperty InProperty) const
    where you can enable the pins for certain shading models.

    To rename the pins in the file Engine/Source/Editor/UnrealEd/Private/MaterialGraph.cpp
    there is a function FText UMaterialGraph::GetCustomDataPinName( uint32 Index ) const where you can rename the custom data pins.

    To use them you need to call the functions half GetMaterialCustomDataX(FMaterialPixelParameters Parameters)
    defined in Engine\Shaders\Private\MaterialTemplate.ush

    @Shyralon
    Thank you.

                                                                                                                                                                                                                  
    I have been busy with work, so I was just fixing and testing stuff. I am using the new datapack from eisko.

  • Sunray
    Options
    Offline / Send Message
    Sunray polycounter lvl 7
    Thanks! really looking forward to seeing your final render btw.
  • stororokw
    Options
    Offline / Send Message
    stororokw polycounter lvl 3
    @Sunray
    Thanks hopefully I can get there soon.
                                                                                              
    Some more experimentation, but this time with the hair:
    • I tried adding glints to the hair shader, but still very hacky at the moment. 

    Comparison showing only R and TRT components (without scattering):
    https://imgsli.com/MDg3MQ

    • Added back ambient occlusion(SSAO) for the hair shader, which had been removed from recent versions of the engine.


    • I also did some experimentation with X-Gen for styling and then converting them to polygons, but I wasn't able to get anything useful. I was wondering if anyone has gotten some success with it? or if anyone else is working with UE4's hair material and getting good results because official documentation on authoring textures is so scarce.
  • Sunray
    Options
    Offline / Send Message
    Sunray polycounter lvl 7
    glints are looking pretty cool man adds a lot.
  • stororokw
    Options
    Offline / Send Message
    stororokw polycounter lvl 3
    Sunray said:
    glints are looking pretty cool man adds a lot.
    I like the addition of the glints. I think it helps to give the hair some texture/noise and shimmer.
                                                                                                                    
    More hair stuff:
    1. Added a forth lobe that is supposed to help with low absorbing hair at more grazing angles.
    2. Fixed an issue with the glints being too bright. Now the eccentricity works within the expected range of 0.85 to 1.

    3. Due to the lack of a normal map I added some pixel depth offset to give the appearance of depth/volume to the hair cards.
    I jacked up the dial so you can more easily notice the effect it has.

    I am probably getting closer to the final look of the hair, but I am still trying to achieve the softness.


    Some early hair colour experiments. Some of the colours are probably too saturated and there's not enough colour variation, but it's easy to see the different components.



    References

    http://www.graphics.stanford.edu/papers/hair/
    https://benedikt-bitterli.me/pchfm/
    https://docs.unrealengine.com/latest/INT/Resources/Showcases/PhotorealisticCharacter/
  • stororokw
    Options
    Offline / Send Message
    stororokw polycounter lvl 3
    After a long break I started working on this again. Currently blocking out the hair. I need to figure out what I should do for the back of the head, and the braids.
    There is quite a lot of dithering/noise, but hopefully it will go away once the hair cards are UV mapped and textured.


    I also changed the shader, using an idea from Uncharted 4, by reducing the shadows on the hair. This is supposed to make it look softer.
    Left is unmodified and right is modified shadows.

    https://imgsli.com/MTIxMw
    Reference
  • Mepra
    Options
    Offline / Send Message
    Mepra polycounter lvl 4
    It looks really good , it's nice  to see your process with the character , i always have problems with the hair and xgen .Excited to see your final result :smile:  
  • stororokw
    Options
    Offline / Send Message
    stororokw polycounter lvl 3
    Thanks Merpra. I think hair is problematic for everyone.
    Started working on the hairline and fly aways. This seems to be as thin as they can go before the anti aliasing starts failing.



  • stororokw
    Options
    Offline / Send Message
    stororokw polycounter lvl 3
    Finished UVing and texturing the hair.

    I also added some normal map support to the hair shader. A fairly uninteresting test, but the left plane is using default lit shading model with normal map, and the right the hair shader with normal map.

  • stororokw
    Options
    Offline / Send Message
    stororokw polycounter lvl 3
    Havent worked on this in a couple months. Blocked out body and some of the clothes.
Sign In or Register to comment.