Home Dota 2

Handplane News Updates

AlecMoody
ngon master
Offline / Send Message
AlecMoody ngon master
Hi everyone,
I wanted to make a new thread so workshop artist could see the newest handplane build features. The biggest improvement we made for workshop people is a handplane plugin for Xnormal that bakes directly into Source Engine tangent space. Install this one time and get synced bakes directly out of xnormal :) We also spent quite a bit of time testing and addressing an issue related to inverted color patches on some models.
More information in this video:
https://www.youtube.com/watch?v=VHsN2Wg-X5Y

If you are interested in using the xnormal plugin please watch the video as it covers install and how to use it correctly. Your models must have the correct export settings for xnormal and source engine to work together.

As always, suggestions for future builds are welcome. Our next big improvement for workshop artists will be a lightweight model viewer that matches source engine tangent space so that artists can evaluate their normals without needing to launch dota.

handplane 1.4 is here:
http://www.handplane3d.com/handplane_1_4.rar

Replies

  • vlad_the_implyer
    Offline / Send Message
    vlad_the_implyer polycounter lvl 5
    Sweet, i'll try it out as soon as i can!

    And the latest xNormal is here http://eat3d.com/forum/official-releases/xnormal-3186-0
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Yeah, you should have the latest xnormal installed before running the 1.4 installer so it will give you the option to install the plugin.
  • TrevorJ
    Offline / Send Message
    TrevorJ polycounter lvl 9
    Nice that'll smooth things out, ill give it a try tonight when i get home
  • bounchfx
    fantastic! Thanks for all of your hard work, this stuff is great.
  • vlad_the_implyer
    Offline / Send Message
    vlad_the_implyer polycounter lvl 5
    tested it and it works great. I'll get some pic if i'll get some interesting examples.

    Just wanted to point out that the SMD exporter you showed in the video is no good for D2. Don't think it makes that much difference, but still.
  • Lennyagony
    Offline / Send Message
    Lennyagony polycounter lvl 14
    Looking forward to giving this a test run, sounds like a great update!
  • Paskie
    Perfect! I'll be doing some bakes tonight then!
  • Nannou
    Offline / Send Message
    Nannou polycounter lvl 5
    just wanted to pop in and say thanks!
  • Tvidotto
    Offline / Send Message
    Tvidotto polycounter lvl 9
    hufe thanks sir Alec! =]
  • AstraZeroZak
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    What does it look like on the model in engine?
  • LRoy
    Offline / Send Message
    LRoy polycounter lvl 10
    This is much smoother than working with it before. Thanks.
  • Spudnik
    Offline / Send Message
    Spudnik polycounter lvl 11
    You didn't directly mention Maya OBJ in the video, if I understood everything correctly, these should be the correct settings, right ?

    zJ4EjjR.jpg
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    That looks right to me Spudnik.
  • Reza
    Offline / Send Message
    Reza polycounter lvl 3
    When exporting for "Source Engine" the .obj simply model doesn't work.
    It just shows up grey
    But the .smd of the very same model works fine
  • Spudnik
    Offline / Send Message
    Spudnik polycounter lvl 11
    Running into an issue, I reformatted my PC and now xNormal (using the Handplane plugin for normal maps) is returning some strange artifacts on my normal map, any ideas?

    AO and BentNormal maps are baking correctly and the issues in the normal map along the top of the head are present in engine too.

    EDIT: Sigh, never mind, I forgot to harden the normals along the UV seams, that fixed it ^^

    SgJDr2p.jpg
  • pior
    Offline / Send Message
    pior grand marshal polycounter
    Spudnik : that seems very odd to me, you should never have to harden all the normals around all the UV islands (that just introduces unnecessary problems/approximations, and heavier models). The requirement is actually the opposite : one needs to separates UVs and leave a little gap between them wherever hard edges are present on the model, to prevent RGB information from bleeding over across the edge.

    Now of course I am not saying that it didn't solve your issue (it certainly did !) but I would encourage you to dig a little further to find what caused the problem. A model like this head shouldn't require any trickery or hard edges whatsoever ... Just a nice overall smoothing, and a sweet handplane bake.
  • belkun
    Offline / Send Message
    belkun polycounter lvl 7
    I've noticed the same thing happening occasionally on sharp edges when using the Handplane plugin to bake normals on XNormal. It doesn't occur when converting a Object Space to Tangent Space using Handplane itself as far as I know.
  • Andumy
    Offline / Send Message
    Andumy polygon
    @spudnik check the following:
    1) try baking with object space instead of bent normal because even the difference is not visible the information is different on these bakes
    2)verify if your object space was baked in x+ y+ z+
    3)if you're using maya check and see if the model is unweightened
    4)check the retopo to be clean and wrap the highpolly

    i personally don't use the plugin ,just the handplane and it works rly good
  • Spudnik
    Offline / Send Message
    Spudnik polycounter lvl 11
    Pior: Yep, that's what's been driving me crazy. Before the reformat, for 99% of meshes I would just do a nice smoothed normal for the whole mesh and bake without issue. It's only since the reformat that I've been having these issues.

    belkun/Andummy: Just tried that, causes the same artifacts, though to a lesser degree. Tried baking the object space with both +y and -y which yields the same results.

    sbPSxVP.jpg
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Luke and I spent a bunch of time on this earlier in the year. We had been assuming it was a handplane issue and hacked in a fix. At no point did I think to actually test the weird looking normal maps. When I was testing the supposedly fixed versions the errors were really bad (even though the normal maps had contiguous colors and looked correct). Then I thought to actually test the original normal maps and they looked great.

    There is more info here:
    http://www.polycount.com/forum/showpost.php?p=2034855&postcount=55

    The short version:
    Most tangent space implementations split tangents across very sharp edges but source doesn't. As a result, it is possible for tangents to end up facing the opposite direction of the normals which results in the correct normal map color being inverted. You can very easily make a normal map that looks better in photoshop by inverting those color patches but you will end up with inverted shading on those spots in engine. While the odd looking patches are what source engine expects, they can create errors along their borders from texture filtering between to two totally different colors.

    I think the best practice is to first evaluate the normal map in source engine (not in any other engine) and see if they are noticeable. On several models I tested everything looked correct. If the patches are showing edges at their borders you can get rid of them entirely by splitting smoothing along the sharp edge. Also, I have found hte problem is more likely to present itself with face weighted normals. In maya the default normals are area and angle weighted, you can experiment with other options to see if that helps in your specific case.

    There is also more info showing some of the testing in this video:
    https://www.youtube.com/watch?v=VHsN2Wg-X5Y#t=319

    I wish there was a better solution. I am sure there have been users who have seen the normals do this and assuming our output was broken and then decided not to use the handplane plugin. We could force handplane to not create those colored patches, people would assume things were working correctly, and then their models would look bad in game.

    The possible fixes would be:

    1) Valve adds tangent splitting to their tangent space calculation and in the process risks breaking old normal mapped models.

    2) We release the hacked in fixes that identifies these patches and inverts their colors, normal maps look 'correct' in photoshop but awful in game.

    3) We incorrectly split tangents on our source output and intentionally add a bunch of other shading errors to our source normal maps since we would no longer be matching source tangent space.
  • Spudnik
    Offline / Send Message
    Spudnik polycounter lvl 11
    Yep, I'm aware of that fact/post but the issue persists in-engine, see image below. Additionally, I've never had those issues before the reformat with the handplane plugin. If the angle of the edge could be a factor, I've also baked way harsher angles without it trying to compensate with these artifacts :/

    ZRxoXTT.jpg

    Just to make sure I understand, the left would be an example of unsplit tangents, the right would be an example of split tangents ?

    FRZCMIb.jpg
  • pior
    Offline / Send Message
    pior grand marshal polycounter
    If I understand correctly, that would be split/not split normals, which, in turn, affects the tangents. In other words : tangents can be different (as referred to by a technical artist at a job as "combed" differently) even when all the normals are smooth.
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Yeah, pior has it right. Tangents are directly affected by smoothing splits but are calculated separately from normals.


    If the patches are showing up in engine as more than just outlines then something else is going on. Likely normals are not getting correctly passed through the entire chain from bake to engine. What 3d format are you exporting in for xnormal and for source engine?

    That preview image, same LOD as you are baking with and it is inside source engine?

    If you are able, email me your bake source files and your normal map output. alecmoody@gmail.com
  • Spudnik
    Offline / Send Message
    Spudnik polycounter lvl 11
    So, I'm getting pretty desperate with this issue T.T Below is another project, same issue. The OS map, generated in xNormal looks fine, but when I convert it in handplane or bake it directly in xNormal using the handplane plugin, artifacts happen.

    SzGXL2Z.jpg

    Here's a ZIP with my highpoly, lowpoly and cage files obj's, I'd really appreciate any and all help on this.
    https://dl.dropboxusercontent.com/u/38223593/handplane_tangent_error.zip
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Threadbump-
    I think I have a conclusion to these issues and it was something really obvious I should have checked out in the first place. See this post:

    http://www.polycount.com/forum/showpost.php?p=2228281&postcount=372
  • pior
    Offline / Send Message
    pior grand marshal polycounter
    That's interesting - I actually always assumed that offsetting the UVs for Handplane conversion was a necessity anyways, as it seemed "dangerous" to me to not do so in the first place.

    Glad to hear that this will be taken care of automatically ! Now, is the "not patchy" version showing up properly in Source ?
    I am asking thins because I recently converted an OS map to TS source map using standalone Handplane, and while some (admittedly much smaller) patches did appear in strongly angled areas, the end result in engine was pretty much perfect - making me think that said patches were actually "doing their job", so to speak. But this might be something completely unrelated, of course.
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Yeah, I think there were two causes for the off color patches. The ones caused by the way that source tangent space is designed seem to go away in engine and the ones caused by overlapping UVs do not. I need to look at more test cases to be sure. We have a new patch coming soon and we are talking about doing a source engine viewer so this stuff is easier/faster to test and debug. Personally, I find loading normal maps into dota2 for testing cumbersome.
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    We updated handplane to 1.5 today. The main thing of use for source engine people is that the xnormal plugin is now compiled for the latest build (version 3.18.10). There is also a small usability improvement in the form of a button that opens the output folder (looks like this: ->)
    Also, in case anyone here does SC2 mods we added blizzard engine support.

    Also baby pictures.
    handplane_1_5.jpg
  • kite212
    Offline / Send Message
    kite212 polycounter lvl 15
    Alec you continue to rule sir! thanks for the continued work on this! Can't wait to install the update and continue to bake in confidence!
  • Vayne4800
    Offline / Send Message
    Vayne4800 polycounter lvl 3
    Thanks Alec, been waiting for the XNormal plugin update since forever!
Sign In or Register to comment.