Options
Go to last post Go to first unread
RobinsonUK  
#1 Posted : Thursday, December 12, 2019 4:17:20 PM(UTC)
RobinsonUK

Rank: Advanced Member

Joined: 7/18/2016(UTC)
Posts: 129

Thanks: 26 times
Was thanked: 29 time(s) in 23 post(s)

Disclaimer: personal project, etc.


It took me a couple of weeks to work out how to get a Daz character with Futa through Maya and into Unreal Engine.  I'm using the original maps, i.e. not special "for export" maps.  One thing I've noticed is a thing with normal maps is that dependent on light direction some veins look as if they're inverted, i.e. indents rather than bumps.  I've tried pretty much everything including remaking the normal map, flipping the green channel etc, but no dice.  I'm using tessellation and displacement to get the relief.


If anyone is pro with normal maps I'd appreciate some tips... I realise this is a niche activity...


 



hardwire666  
#2 Posted : Thursday, December 12, 2019 8:23:00 PM(UTC)
hardwire666

Rank: Member

Joined: 11/10/2018(UTC)
Posts: 11

Thanks: 1 times
Was thanked: 2 time(s) in 1 post(s)
It would probably be better to use displacement for the larger veins and normal map for the smaller detailed veins.
RobinsonUK  
#3 Posted : Thursday, December 12, 2019 8:29:24 PM(UTC)
RobinsonUK

Rank: Advanced Member

Joined: 7/18/2016(UTC)
Posts: 129

Thanks: 26 times
Was thanked: 29 time(s) in 23 post(s)
Yea, I'm struggling to get the displacement map working correctly with a layered material.
Meipe  
#4 Posted : Saturday, December 14, 2019 2:12:57 AM(UTC)
Meipe

Rank: Advanced Member

Joined: 9/15/2012(UTC)
Posts: 1,522

Thanks: 1284 times
Was thanked: 1468 time(s) in 722 post(s)
RobinsonUK  
#5 Posted : Sunday, December 15, 2019 1:45:38 PM(UTC)
RobinsonUK

Rank: Advanced Member

Joined: 7/18/2016(UTC)
Posts: 129

Thanks: 26 times
Was thanked: 29 time(s) in 23 post(s)

Originally Posted by: Meipe Go to Quoted Post
Did you try to invert the red channel?


Actually looked worse after doing that.  Perhaps it's something specific to the shader in UE 4.


RobinsonUK  
#6 Posted : Thursday, December 19, 2019 6:15:31 PM(UTC)
RobinsonUK

Rank: Advanced Member

Joined: 7/18/2016(UTC)
Posts: 129

Thanks: 26 times
Was thanked: 29 time(s) in 23 post(s)

I've tried every which way (swap R, swap G, swap R and G, tangent Space, world space, etc).  I think it's just how normal mapping works in Unreal Engine.  I added some parts to the shader to dial down the intensity of the map but still, from one angle (left) it looks fine but from the other (right) the relief looks like indentation.  It's dependent upon the angle between the light, the object and the eye.  Displaying normals in Maya everything looks alright too...  


 



Meipe  
#7 Posted : Friday, December 20, 2019 5:58:34 AM(UTC)
Meipe

Rank: Advanced Member

Joined: 9/15/2012(UTC)
Posts: 1,522

Thanks: 1284 times
Was thanked: 1468 time(s) in 722 post(s)
RobinsonUK  
#8 Posted : Friday, December 20, 2019 2:00:39 PM(UTC)
RobinsonUK

Rank: Advanced Member

Joined: 7/18/2016(UTC)
Posts: 129

Thanks: 26 times
Was thanked: 29 time(s) in 23 post(s)

Originally Posted by: Meipe Go to Quoted Post
Can't you force Unreal to use OpenGL maps?

https://forums.unrealeng.../19754-directx-or-opengl


I think the probability of me getting it to work with OpenGL is close to zero. DX11, DX12 and Vulkan are the only options in the standard build.  I don't fancy derping around in Github to work out how to do it (that's my day job).


 


Edit: Derp.  Misread this.  The difference between GL and D3D is flipping the green channel.  I've done that in Unreal to no effect (it flips the direction of the problem but the problem still exists).

Edited by user Saturday, December 21, 2019 9:14:50 AM(UTC)  | Reason: Not specified

RobinsonUK  
#9 Posted : Saturday, December 21, 2019 1:53:01 PM(UTC)
RobinsonUK

Rank: Advanced Member

Joined: 7/18/2016(UTC)
Posts: 129

Thanks: 26 times
Was thanked: 29 time(s) in 23 post(s)

Originally Posted by: Meipe Go to Quoted Post
Can't you force Unreal to use OpenGL maps?


Very slowly groping, Harvey Weinstein style, towards a solution.  Not quite there yet.  There's nothing at all wrong with the normal map.  The problem is how tangents and binormals get calculated though I don't know where the error is.


Maya is "Y-up" by default.  Laylo's importer/exporter assumes so.  Somehow however, even though the normals are correct the tangents aren't adjusted to compensate.  Either that or something is going wrong when I copy attributes over (I import a second version of the character with Futa UV on the gens and then create a second UV channel in Maya, copying the UV attribute from this copy onto them - this gives me 2 x texture coordinate sets in Unreal for a layered material to use).


Anyway, long story short, if I apply the normal map to an .obj I exported from Daz they look fine (great even).  I've tried telling Unreal to recompute normals, tangents and binormals but it doesn't seem to fix the problem.  I'm still stuck but at least I have something to investigate now.


 



 


RobinsonUK  
#10 Posted : Sunday, December 22, 2019 7:48:29 PM(UTC)
RobinsonUK

Rank: Advanced Member

Joined: 7/18/2016(UTC)
Posts: 129

Thanks: 26 times
Was thanked: 29 time(s) in 23 post(s)

I think I've nailed it.  It was definitely strange behaviour with tangent/binormal export.  For anyone who comes here looking for how to do it, three things to note:


(1) The green channel should be flipped in the map's properties.  
(2) Maya should be set to Z-up (in settings) and the FBX exported with Z up.
(3) Send normal map through DeriveTangentBasis block in the shader graph if using UV1.


For 2, once you change settings to Z-up, the mesh and skeleton should appear to be lying down.  Just do this for the export.  For 3, Unreal Engine's shader system generates the tangents and binormals for UV0 (channel 0).  Channel 0 is what I'm using for the base mesh.  I copied the futa UVs to UV1 in Maya.  UV1 is the channel on which we need the normal map.


Maybe there's still something I'm not doing right that would fix all of these problems with a mouse click but for now it's working and looks great.  



thanks 1 user thanked RobinsonUK for this useful post.
Meipe on 12/23/2019(UTC)
kooroe  
#11 Posted : Wednesday, February 19, 2020 4:48:33 PM(UTC)
kooroe

Rank: Advanced Member

Joined: 3/14/2013(UTC)
Posts: 72

Thanks: 15 times
Was thanked: 14 time(s) in 11 post(s)
This is cool but I have a question about how where you able to get the model into unreal I can't get them to import anything with a geograft without breaking in some way.
RobinsonUK  
#12 Posted : Sunday, March 22, 2020 11:51:07 AM(UTC)
RobinsonUK

Rank: Advanced Member

Joined: 7/18/2016(UTC)
Posts: 129

Thanks: 26 times
Was thanked: 29 time(s) in 23 post(s)
Sorry for late reply. I haven't checked forum for a while. I used LayLo 3D's Genesis 3 to Maya plugin to export the base mesh. The base mesh "welds" or joins the geograft and you delete the exported shell in Maya. The next step is to add a second set of UV to the mesh in Maya. There's no export of morphs for the gens though (this is a limitation on the Daz side, not Laylo's script). If you want the morphs you have to make them yourself.

I'm pretty sure all this is also possible in Blender, though I do not have the workflow for that.
Users browsing this topic
Guest
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Powered by YAF.NET | YAF.NET © 2003-2026, Yet Another Forum.NET
This page was generated in 0.231 seconds.

Notification

Icon
Error