Home Technical Talk

Official handplane support thread - Now freeware!!

1234579

Replies

  • Boonta
    Offline / Send Message
    Boonta polycounter lvl 13
    direct bakeing to source tangent space!! THATS COOL !! gonna try it out soon
  • ZacD
    Offline / Send Message
    ZacD ngon master
    Are you going to support UE4/Mikk Tangent basis?
    JordanW wrote: »
    Here's an update on the Xnormal / Synced normals pipeline.

    We found 2 steps to better sync normal map rendering:


    The first step is a setting in xnormal you can change to make it better synced with our rendering:

    Click the plug icon on the bottom left
    Click Tangent basis calculators tab
    Select Mikk - TSpace plugin
    Click Configure button
    Check the Compute binormal in pixel shader box.

    ( I will make sure the docs are updated with this)

    The second step was a change to our renderer and will be available in the next release. The good news is you can go ahead and make this xnormal change and when the next version of Unreal Engine is available to you, your art will look better.
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    I'll test out the new UE4 implementation soon. Can you link me to jordan's post so I can determine when that updated render code is released? If it works well it is definitely something we would want to support.
  • Computron
    Offline / Send Message
    Computron polycounter lvl 7
    AlecMoody wrote: »
    I'll test out the new UE4 implementation soon. Can you link me to jordan's post so I can determine when that updated render code is released? If it works well it is definitely something we would want to support.

    Quoting a post actually includes a link directly to the source.

    Click this green arrow in any quote to go to it:
    2NF9raB.png
  • Seenax
    Offline / Send Message
    Seenax polycounter lvl 8
    replyed in the wrong thread. delete please, sorry
  • NautalusX
    My object space bake in xnormal is going crazy with the mirrored parts. Also I have offset the mirrored Uvs 1 tile over.

    5050_zps3ec9e708.jpg

    The Mirrored pieces have been symmetry modified to make the other half and welded. I used FBX for the high and the low. For the cage I used averaged normals with ray distance calculator. On the low I exported smoothing groups and tangents. On the low I set my smoothing to match my UV borders.

    I went through all the 'hoops' now im still confused as to why my mirrored pieces are baking funky? Triangulation on mirrored pieces seems ok as well a perfect copy.

    EDIT: Here is what happens after I run it through handplane with all the settings on AUTO.
    1515_normals_unreal_zpsa00868b1.jpg
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Those colors are inverted or rotated shading. The object space source map being fed into handplane is facing a different direction than the lowpoly model it is using to calculate.

    What does your object space bake look like on the model? Place colored lights on opposite sides of the model to ensure the object space normals are actually facing the right way.

    My guess is that you are accidentally using a different set of shells for your object space bake as you are for the handplane conversion. Re-bake your object space map and use the exact same 3d file for your handplane conversion. You can also send the model over to me and I will nail down the cause: alecmoody@gmail.com
  • NautalusX
    Ok I sent you the files.. Ive always had trouble with mirroring pieces.. with this weird shading issue.. the way id always fix it in the past is to bake different tangent space maps flipping around the channels till each piece looks right and then id compose all them tangent space maps into one final map. Which shouldn't be so difficult.. I should just offset 1UVtile and be done. Not sure what I'm doing wrong.

    I made each mirroring section by deleting half of it. UVing it. Detaching it from the mesh after the uvs were done then symmetry it over and weld. Then offset mirrored pieces 1 tile over. and reattaching everything into one mesh.
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    I checked out your files and you object space normals are rendering backwards in maya. If your object space normals aren't right handplane will produce rotated/flipped shading to match.

    To eliminate any possible problems:
    Reset transforms on your low poly model
    Rebake object space map
    Use the same fbx file in handplane so you know that you haven't accidentally swapped teh wrong set of shells back into 0-1 space.
  • NautalusX
    Prob solved! Turns out I was baking with my usual Y- swizzle cord in Xnormal I wasn't aware they all had to be + I usually bake tangent space maps. Thanks
  • oXYnary
    Offline / Send Message
    oXYnary polycounter lvl 18
    Such a long thread. Attempted a search briefly.

    Which output tangent space matches Xnormals viewer? Guessing its either Input Tangent and Computed Binormal or Input Tangent and Binormal.
  • Bek
    Offline / Send Message
    Bek interpolator
    I've always assumed xnormal's viewport is using its default baking TS (MikkTspace)?
  • oXYnary
    Offline / Send Message
    oXYnary polycounter lvl 18
    Yea I assume it is, but which engine type is that from the list? Im trying some tests.
  • Priareos
    Offline / Send Message
    Priareos polycounter lvl 5
    When i use my generated normalmap in UE4 with handplane-UDK3 settings, it's all messed up. Max2013 works much better. Is it my fault? Is Max2013 tangent basis similar to UE4?
  • tach
    I apologize if this has been asked before but I couldn't find an answer. I was wondering if someone knew what's best to do when incorporating Hand Plane into your workflow in regards to how the object space map is baked.

    When using Xnormal to bake the map and considering that the target engine doesn't support custom normals, should the low poly file include custom normals or is it best if it's imported into Xnormal without any custom ones? In both cases the output is mostly the same once the map has been ran through Hand Plane but I'm not sure what's best.
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Minor update to handplane today. Version 1.4.1 is just an updated handplane xnormal plugin for Xnormal version 3.18.8. We also included the older plugin for people on 3.18.6. Version 3.18.7 got skipped.

    Direct link:
    http://www.handplane3d.com/handplane_1_4_1.rar
  • Aberiu
    Offline / Send Message
    Aberiu polycounter lvl 9
    Hello, I just tried handplane and I get some weird results when creating a normal map for max.
    I downloaded a chainsaw from the dDo tutorial http://youtu.be/hncqbwkGbM4 (there's a link to the files in the video description) and it looks fine when rendered in marmoset (it seems that the author used xNormal to bake everything):

    ddoos1_by_aberiu-d7kjf5q.jpg ddots1_by_aberiu-d7kjf5l.jpg

    However, when I tried to convert the object space normal map for max, I got this (both viewport and render):

    maxts1_by_aberiu-d7kjf55.jpg

    Also looks bad in marmoset with max tangent space enabled:
    hpts1_by_aberiu-d7kjf5g.jpg

    And it looks bad in UE4 as well.

    I set the input to auto-detect or xnormal and output to 3ds max. I also tried changing object space to world space. Did I miss something?
    I'm sorry if this is a dumb question, I've never used handplane before.
  • Son Kim
    Offline / Send Message
    Son Kim triangle
    I hope Unreal Engine 4 support is coming soon, I don't have much luck going with Modo>Xnormal>UE4.2 workflow.
  • gLitterbug
    Offline / Send Message
    gLitterbug polycounter lvl 5
    Son Kim wrote: »
    I hope Unreal Engine 4 support is coming soon, I don't have much luck going with Modo>Xnormal>UE4.2 workflow.

    What problems do you have with your normalmaps straight out of Xnormal in UE4.2?
  • Son Kim
    Offline / Send Message
    Son Kim triangle
    gLitterbug wrote: »
    What problems do you have with your normalmaps straight out of Xnormal in UE4.2?

    Same problem as Quack(still happens in 4.2 for me): https://answers.unrealengine.com/questions/14375/normal-map-workflow-with-xnormal-is-not-working.html

    I'm been at it all day,testing it on a simple cube and I still can not figure out what's going on. I've tried meshes from Maya and Modo same shading artifact when brought to UE4.2.
  • repete
    Offline / Send Message
    repete polycounter lvl 6
    Any news on the Handplane to UE4 support ?
  • pgamers
    heey i got some problem with handplane because if i use object space and my low poly model with soften edge it gives me a very very low normal map u need to zoom in before you can see the normal map.
  • pgamers
    if i use handplane i get weird black lines at my edges
  • ath0
    I get the error "Unable to load plugins required for operation" when running the 64 bit version in Windows 7 64 bit. Any ideas?
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    UE4 is something we would like to add but it is going to be a while. Luke and I each have newborns, I have a full time job, and Luke is busy with Banished. Few people used the UE3 output so I have little reason to believe the UE4 output will be more popular.


    Son Kim-
    I haven't done anything with UE4 bakes but I would look carefully at how data for tangents and normals is getting passed around and used in different software. When you rely on imported normals and tangents between multiple pieces of software it is very easy for something to go wrong without an obvious cause. For example, Xnormal skips using the T-Mikk space calculation (or any tangent space calculation) when it finds packaged tangents in the lowpoly model file. That is not intuitive and most artists wouldn't think they will get two totally different normal maps depending what FBX options they check at export.
  • repete
    Offline / Send Message
    repete polycounter lvl 6
    Hello Alec

    I thought that was the purpose of handplane, to sync normals to a specified output without errors ?
    When you rely on imported normals and tangents between multiple pieces of software it is very easy for something to go wrong without an obvious cause
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    No- Whenever possible we calculate the all the data to match the target engine. This ensures that a model from 3dsmax, maya, or any other software will create the exact same tangent space result. Some game engines (like unity or source) expect to load mesh normals from the file so in those cases we don't calculate the lowpoly normals (but we do calc the tangents). This is very different than using a workflow that relies on passing tangents through the 3d file into the game engine.


    There are a lot of issues that can spring up when using a workflow that relies on importing tangents- One example:

    Imagine you are developing a large game with an in house team running Maya and you have an external contractor who works in 3dsmax. The FBX file the outsource artist is using when they bake and test their normals will have 3dsmax tangents packaged into it. Baking those tangents ties that model file to the source 3d package. In this case the artist could create a bake that looks good in engine, submit the file, and everyone is happy. Two months later an in house artist loads their fbx file in maya and does something trivial like change the pivot or keyframe an animation. After they are done they re-export the model and suddenly the model is shading wrong in the game. The tangent space map was baked correctly for the previous model, but because that normal map was tied to the source files tangents the new file is no longer a correct match.

    This gets even messier when you consider that different version of 3dsmax use a different method to calculate tangents, and that different versions of maya use a different method to calculate normals.

    The clean and simple way to build a normal mapping workflow is for the engine to calculate tangents (and not import) and for your art team to use baking software that matches the engine.
  • repete
    Offline / Send Message
    repete polycounter lvl 6
    Thanks for this Alec, well explained !

    Cheers
    AlecMoody wrote: »
    No- Whenever possible we calculate the all the data to match the target engine. This ensures that a model from 3dsmax, maya, or any other software will create the exact same tangent space result. Some game engines (like unity or source) expect to load mesh normals from the file so in those cases we don't calculate the lowpoly normals (but we do calc the tangents). This is very different than using a workflow that relies on passing tangents through the 3d file into the game engine.


    There are a lot of issues that can spring up when using a workflow that relies on importing tangents- One example:

    Imagine you are developing a large game with an in house team running Maya and you have an external contractor who works in 3dsmax. The FBX file the outsource artist is using when they bake and test their normals will have 3dsmax tangents packaged into it. Baking those tangents ties that model file to the source 3d package. In this case the artist could create a bake that looks good in engine, submit the file, and everyone is happy. Two months later an in house artist loads their fbx file in maya and does something trivial like change the pivot or keyframe an animation. After they are done they re-export the model and suddenly the model is shading wrong in the game. The tangent space map was baked correctly for the previous model, but because that normal map was tied to the source files tangents the new file is no longer a correct match.

    This gets even messier when you consider that different version of 3dsmax use a different method to calculate tangents, and that different versions of maya use a different method to calculate normals.

    The clean and simple way to build a normal mapping workflow is for the engine to calculate tangents (and not import) and for your art team to use baking software that matches the engine.
  • dgm_mkII
    Offline / Send Message
    dgm_mkII polycounter lvl 5
    Hey Alec,
    Recently trying to adopt handplane into my pipeline, then can't help but notice handplane doesn't support edit normal in 3ds max. I explicit tweak the normals of the vertex but however I tried generate from handplane using fbx or obj both give me correct result if I reset the normals. Care to share ideas for this issue?
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Which output are you using? For some engines handplane calcuates the normals, for others it uses the normals in the file.
  • dgm_mkII
    Offline / Send Message
    dgm_mkII polycounter lvl 5
    Hi Alec,
    I tried with FBX, Obj, and even export from 3ds Max to Maya for the plugin (handplane 3D exporter) but whenever handplane convert object space to tangent space it choose to ignore the custom vertex normals of the model. The output tangent space normal from handplane will only look correct if I reset the vertex normals to it's default.

    Edit:
    Here is some test bake
    Edited Vertex Normal
    edited_vertex_normals.JPG


    Object Space Normal
    object_space_normals.JPG


    handplane Generated Tangent
    handplane_tangent_normals.JPG


    After Reset the Custom Vertex Normal
    handplane_tangent.JPG
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    I still can't tell what tangent space you are trying to output. If it is either 3dsmax, maya, or unreal you won't be able to use the edit normals modifier because we recalculate the normals to match the target engine. The advantage to this is that an artist working in maya who wants to make a 3dsmax tangent space map will get the exact same result as an artist who is baking their maps inside 3dsmax.

    The source engine and unity both default to importing normals from the mesh, for those outputs we read normals out of the file instead of calculating them.
  • dgm_mkII
    Offline / Send Message
    dgm_mkII polycounter lvl 5
    Sorry for missing the question before, the engine I trying to output will be CryEngine, but I know CryEngine support wasn't available, so 3ds Max is the nearest to what I wanted to have.

    The reason why I was using Edit Normal was because it will try to average a selection of normals as much as possible, therefore reducing the need to counter the smoothing group from the normal map itself.

    When I am using handplane with no custom normals, my LODs suffer normal smoothing error from when the original normal map trying the counter the mesh smoothing.

    But now that you explain very clearly behind the scenes. I might tweak my workflow a little bit. Thanks for the support.
  • Eric Chadwick
    Alex I'm surprised to hear you say Handplane doesn't take Edit Normals into account when doing the output to Unreal.

    Epic specifically added support for it to allow better foliage rendering.

    Normal map accuracy is usually not an issue with foliage since you avoid UV seams in the middle of foliage meshes, and you're not baking to the specific mesh anyhow.

    But I would imagine it matters with other meshes, especially modular ones?
  • Gigantoad
    Offline / Send Message
    Gigantoad polycounter lvl 5
    I'd like UE4 support for sure.
  • pior
    Online / Send Message
    pior grand marshal polycounter
    Just wanted to chime in and mention that having Unreal Engine 3 support was very useful for the recent Chivalry contest - as far as I am concerned it worked perfectly well.
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Thanks Pior.

    We are in the process of adding some new engines. Unreal4 is on the list but there were very few users for the UE3 support so it is lower priority.
  • repete
    Offline / Send Message
    repete polycounter lvl 6
    AlecMoody wrote: »
    Thanks Pior.

    We are in the process of adding some new engines. Unreal4 is on the list but there were very few users for the UE3 support so it is lower priority.

    I don't get it "adding some new engines" and UE4 is an old engine? Probably the most popular modern engine to date.

    At the end of the day Alec it's up to you guys but rest assured you will have people all over MikkTspace support :poly121:

    Cheers

    pete
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Sorry if that was unclear. UE4 is included in "adding some new engines." It is just lower down the list. When we were first specing out handplane unreal support was the highest priority and the most time got sunk into figuring it out. Once we started selling handplane it was clearly the least popular output (at least for commercial users).
  • repete
    Offline / Send Message
    repete polycounter lvl 6
    No worries mate, I appreciate your efforts :thumbup:
    AlecMoody wrote: »
    Sorry if that was unclear. UE4 is included in "adding some new engines." It is just lower down the list. When we were first specing out handplane unreal support was the highest priority and the most time got sunk into figuring it out. Once we started selling handplane it was clearly the least popular output (at least for commercial users).
  • Geezus
    Offline / Send Message
    Geezus mod
    As requested, I've merged the last posts to a separate thread named UE4 FBX Importer, over in the Unreal subforum.
  • cadgonegames
    Quick question, I'm using Max to bake my object space normal map with the default -Y, then into Handplane with everything set to Auto Detect / Output for unity before using dDo to finish. Is handplane auto flipping my green for me, or should I still be ticking the box in dDo importer? Struggle to see the difference sometimes!

    Thanks!
  • dzibarik
    Offline / Send Message
    dzibarik polycounter lvl 10
    I have tested Handplane pretty extensively today to get my bake into Chivalry and so far it works well but if I use it I may run down into some problems down the line if I understand how the thing works. So If I bake my base mesh normals in Xnormal and then import it into Quixel suite/Substance Designer/Knald to add some additional noise/textures/material definition will they break the tangent space? Or they will operate in tangent space set by Handplane?
  • wes.sau
    Like Pior, I want to pass on some gratitude for the UE3 basis support in Handplane. I frequently used the UE3 output for my last game, and fwiw I had purchased the commercial license back in the day :)
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    dzibarik wrote: »
    I have tested Handplane pretty extensively today to get my bake into Chivalry and so far it works well but if I use it I may run down into some problems down the line if I understand how the thing works. So If I bake my base mesh normals in Xnormal and then import it into Quixel suite/Substance Designer/Knald to add some additional noise/textures/material definition will they break the tangent space? Or they will operate in tangent space set by Handplane?

    I am not that familiar with either of those tools. It is going to depend on how they work and what process they use to blend micro texture into the normal map. I would just test it out early in your process so you can see if it is causing issues before you spend a ton of time on it.
  • EduardoMC
    Offline / Send Message
    EduardoMC polycounter lvl 5
    Thank you very much for the tool, Alec. It is pretty incredible.

    I have a couple of questions. I am doing some submissions for the DOTA workshop and I am a bit concerned about LOD1. Which would be the best practices to avoid errors when optimizing for LOD1?

    From what I've read some good practices to avoid shading errors are:

    -Hardened edges (splits?) on all UV shell edge seams. This is due to the total vertex count being unaffected, if I understand correctly.

    -Plan in advance areas that will be optimized so that you have support edges or hardened edges (I'm a Maya user :p ) in place to soften such errors.

    If there are more, please do let me know. I come from a film/commercials background and normal maps for low resolution meshes make my head spin.

    Thanks again for the great tool, it is awesome. :thumbup:
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    That is mostly right but I will respond point by point:
    EduardoMC wrote: »

    -Hardened edges (splits?) on all UV shell edge seams. This is due to the total vertex count being unaffected, if I understand correctly.
    This will help. Generally, if you have an area that you are worried about looking wrong with lod1 you should harden the edges that match up with UV borders nearby. Hardening edges DOES increase the vertex count but Valve only measures triangle count so it is won't affect your ability to submit the file.

    -Plan in advance areas that will be optimized so that you have support edges or hardened edges (I'm a Maya user :p ) in place to soften such errors.

    That migth be neccesary in extreme cases. Make sure you are evaluating your normals at an actual game resolution and perspective.

  • EduardoMC
    Offline / Send Message
    EduardoMC polycounter lvl 5
    AlecMoody wrote: »
    That is mostly right but I will respond point by point:

    Thank you so much for your response. That's interesting, so hardening UV island edges increases the vertex count further?

    I am going by this walkthrough:
    Vertex use

    When considering the use of hard edges, you need to consider the implications of such. Whenever you have a hard edge, or a uv seam, you “in-game” vertex’s are doubled in those areas. More than your triangle count or your vertex count, the “in-game” vertex count is what really effects performance in most game engines.

    Some general rules with that in mind:
    To avoid artifacts, you must split your uvs where you use hard edges.
    You do not however, NEED to use hard edges wherever you split your uvs(as some may suggest)
    With an “Averaged projection mesh” you can use hard edges along uv borders with no negative side effects. Because the verts are already doubled at your uv seams, you get it for free. Your verts do not “triple” or “quadruple” if you have both a uv seam and a hard edge in the same place.

    http://www.polycount.com/forum/showthread.php?t=107196
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Oh, that is totally correct. I wasn't thinking about it very carefully.
  • EduardoMC
    Offline / Send Message
    EduardoMC polycounter lvl 5
    AlecMoody wrote: »
    Oh, that is totally correct. I wasn't thinking about it very carefully.

    Awesome, that's some great news! This gives me far more flexibility than I thought I had. Thanks so much for your help. :D
1234579
Sign In or Register to comment.