Home Technical Talk

Introducing Handplane Baker

24567
AlecMoody
ngon master
Offline / Send Message
Pinned
AlecMoody ngon master
Hello Polycount,

This is a long time coming for us- Handplane is now a full baking tool. Our goal with handplane baker is to build the most efficient baking tool for a production environment and make it free. We have a lot of cool features that should save you time and effort. I did a video overview of the tool which you can watch here:


https://www.youtube.com/watch?v=ACkX_t3QDnU&feature=youtu.be

You can get handplane baker on gumroad as $0+ name your own price here:

https://gumroad.com/l/znpF#

If you find a bug or have an issue- please take screenshots. If you get an error, or see some behavior that is clearly broken, please save a handplane project file and pack it up along with your models, then email them to me: alecmoody@gmail.com

Updates:

To get updates grab a new installer from gumroad. You can verify your version in the about window


11/12/2016 - v 0.9.3

*Fixed Issue where some users reported not having the correct Visual C++ distribution after installation

*Pressing the bake button while in progress now cancels the bake

*8 bit TGA output

*Added dithering for 8 bit outputs

*Fixed PNG not writing correctly for some users

*Added an option to generate smooth highpoly normals when no mesh normals are found

*Improved loading of mesh normals for high poly models

*Improved stability with large resolution and high sample count bakes

*Added option to suppress warnings for mesh triangulation

*Set default back ray distance to 5

*Added a button next to the output path that opens the output folder in explorer
*Included our old tangent space calculator, handplane 1.6 in the installer.


v 0.9.2

*Fixed some low level bugs exposed by meshes missing important information (texture coordinates, normals)

*Added notification for bake failures when models are missing texture coordinates, normals, or other critical info.


Patch 0.9.1 <- download a new installer from gumroad
*Fixes FBX issues some users were having

*Sets default image format to tiff 16

*Warns users if they are baking without an output folder set

Some of the highlights:

Fast and all CPU based

I have been doing my testing on 10-20 million triangle meshes. Loading and baking models that large is super quick. With the exception of our ray trace AO, all of our output maps are extremely fast. The raytrace AO is the slowest output but we also have an alternative post process AO that is very quick/smooth and works well in many circumstances. For a benchmark on large mesh handling (with an i7 4770k): A 20 million triangle mesh takes about 6 seconds to load into memory, building the projection structure takes an addition 5 seconds, and baking a 2k 4x super sample tangent space map takes 7 seconds. Totaling 18 seconds for a final quality 2k bake of 20 million triangles.


Projection groups

This lets you bake multiple meshes on top of each other into one output map. No more exploding models. Projection groups also let you do things like isolate ambient occlusion within a group, assign ray projection distances to multiple models at once, and assign materials. Here is an overview of the model loading and projection setup page of our UI:



PSD material output

You can create, save, and share libraries of material base colors. Assign them to pieces of your models and they are baked into an organized PSD set up with layer masks, ready for you to paint on. I am really hoping people post and share their material libraries so we can build a central repository for everyone to work from. You can name and edit colors for 3 material properties in the editor like this:



This is very flexible, and can be used for metalness, specular, or even something like dota2 material output. For dota2 output you would name your channels color, mask1, mask2 and then for the mask layers adjust each RGB color channel to set your desired metalness, color warp... We still need to figure out an a clean way to handle the alpha channel properties for specular exponent and self illumination. You can use the matID swatch color to get an additional 3 color channels but they aren’t masked nicely like the others. Suggestions are welcome.

The resulting PSD pulls in all the naming and colors done in handplane and looks like this:



New tangent space outputs

In addition to all of the tangent space outputs in older version of handplane we have added support for Unity 5.3, Unreal 4, and Source 2. All of these have also been ported to the tangent space calculator which I will post separately as handplane 1.6.




Future plans:

*More fast AO output options and improvements to what we currently have.

*I would like to look into substance painter integration or find ways to make our tool work seamlessly with substance.

*Figure out why exporting a model as FBX, and then exporting a second copy with push modifier results in a different file size. This is a pain for cages.


From suggestions:

*figure out FBX issue (someone who has this issue needs to send me files so I can reproduce it)
*Create warning with option to cancel when users bake without an output location set
*Add a button to the UI to open the output location in explorer
*.tga support <- Also make sure 8 bpp output is dithered
*Set tiff to default output. Personally, I don't like PNG files.
*Create a user editable default project



Please test our tool, break it, and post bugs and feedback in this thread. You can also find more info on the tool at http://www.handplane3d.com  The help page has lots of detailed information and provides a quick overview of the features.













Replies

  • bobmartien
    Offline / Send Message
    bobmartien polycounter lvl 11
    I will try this for my next props !

    A cool feature like the .SBM exporter of Xnormal would be great :)
  • Tvidotto
    Offline / Send Message
    Tvidotto polycounter lvl 9
    so much great options that I never saw together in other bakers!!!
    I think I have a new favorite baker =]
  • Kanni3d
    Offline / Send Message
    Kanni3d ngon master
    Really loving all these neat features that wonderfully are now all in one!

    I've a quick question though - I remember seeing the Handplane demos in the past, where you no longer need smoothing groups - just bake as an object space normal via some other baker and use Handplane to convert into tangent space and sync into an engine of your choice.

    In the youtube demo for this baker, the model had smoothing errors all over - so is that because handplane baker handles both things at once? (baking your maps, but also fixing smoothing errors via Handplane native)

    Absolutely amazing stuff though!

  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    @AlecMoody when you set up mesh groups, do those get treated as batch processes when you bake? Some of us are using third party batch baking tools for xNormal, and we've gotten used to having that ability so we don't have baby sit while bakes are processing.
    I haven't used those batch bakers so I can't say how the functionality compares. With this setup, all of the groups end up in a single texture sheet, no combining things afterwards. If you are looking to bake multiple assets with different uvs/texture sheets at once, that isn't supported by the gui, but can be done through the command line. We haven't documented that yet but it is possible and relatively easy to send the baker a list of handplane project files and tell it to bake all of them.
  • dgm_mkII
    Offline / Send Message
    dgm_mkII polycounter lvl 5
    Thank you Alec, I have tried out Handplane Baker and liking the speed a lot, but I have some questions about my workflow for HP to LP bake

    First off, I tend to use SkewMesh techniques a lot, and I bake only in 3ds Max, rather than xNormal, for the SkewMesh techniques to work, we tessellate the model and bake an Object Space / World Space Normal, then "convert" using 3ds Max native baker to Tangent Space Normal

    If I were to use Handplane baker, I baked an Object Space, I just can't seem to make it behave in 3ds Max (Flipped Green, Flipped Red, Swap Red and Green, etc) So I am wondering this:

    Can you have an option to convert an baked Object Space from Handplane baker and convert to Tangent Space based on another Model provided or;

    Can you create an Object Space that 3ds Max can read?
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Kanni3d said:
    Really loving all these neat features that wonderfully are now all in one!

    I've a quick question though - I remember seeing the Handplane demos in the past, where you no longer need smoothing groups - just bake as an object space normal via some other baker and use Handplane to convert into tangent space and sync into an engine of your choice.

    In the youtube demo for this baker, the model had smoothing errors all over - so is that because handplane baker handles both things at once? (baking your maps, but also fixing smoothing errors via Handplane native)

    Absolutely amazing stuff though!

    Basically yes, all of the tangent spaces from old handplane are supported, there is no need to use old handplane with this tool.I'm not going to claim you will never get a shading error, it depends on how the engine is set up. Fully smoothing models has some downsides, the main one being how all of those gradients in the resulting normal map handle compression.
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    dgm_mkII said:
    Thank you Alec, I have tried out Handplane Baker and liking the speed a lot, but I have some questions about my workflow for HP to LP bake

    First off, I tend to use SkewMesh techniques a lot, and I bake only in 3ds Max, rather than xNormal, for the SkewMesh techniques to work, we tessellate the model and bake an Object Space / World Space Normal, then "convert" using 3ds Max native baker to Tangent Space Normal

    If I were to use Handplane baker, I baked an Object Space, I just can't seem to make it behave in 3ds Max (Flipped Green, Flipped Red, Swap Red and Green, etc) So I am wondering this:

    Can you have an option to convert an baked Object Space from Handplane baker and convert to Tangent Space based on another Model provided or;

    Can you create an Object Space that 3ds Max can read?
    We have plans to add skewmesh support, it didn't make it into first release. You can use our old tool to do an object to tangent space conversion to achieve what you want. I will post the latest iteration of that sometime today (handplane 1.6). Its just like the older versions but with the new tangent space outputs added.
  • kolayamit
    Offline / Send Message
    kolayamit polycounter lvl 13
    Little late here :), will try this and provide feedback. Thank you very much, this looks awesome.
  • BetaRazer
    Offline / Send Message
    BetaRazer polycounter lvl 6
    Must try this out and experiment. Nice one.
  • BradMyers82
    Offline / Send Message
    BradMyers82 interpolator
    This looks awesome cant wait to try it!
  • BradMyers82
    Offline / Send Message
    BradMyers82 interpolator
    any chance of adding a option to bake a thickness map?
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Yeah, I would like to add thickness map support. I'm not 100% sure how that is calculated but I can try and find some documentation.
  • cookedpeanut
    Offline / Send Message
    cookedpeanut polycounter lvl 13
    This is really nice, been waiting for another baker to switch over to. Especially something that's simple to use and doesn't over-indulge the user on minute and unnecessary options.

    I recently read this book and it really helped with understanding good layouts and design philosophies, I highly recommend reading it...
    From a design point there's a few things I'd change. The major panels and settings should be obvious to the user, at the moment the cage field indicator is far too small and should be more obvious to the user. Maybe create a coloured bar below each low-poly set informing the user whether the cage was successfuly added and if not, why?

    The use of gradients and shadows appears a little over-whelming, definitely keep the colour layout on the top, but something that follows a material UI for the most-part would not only fit into the current web-trend but also make the interface an enjoyable experience to use. But personally I'm not such a fan of dark interfaces, I think they're always difficult to read.

    The tabs at the top would look better as full width items, make the most of the space available. Perhaps you could create a status bar at the bottom of the application which gives the current process being executed and if there's an error to display something.

    Otherwise it's a stellar job and something I'll most definitely be adding to my toolbag, you guys are awesome!


  • JedTheKrampus
    Offline / Send Message
    JedTheKrampus polycounter lvl 8
    @AlecMoody Basically it's an AO bake that casts rays in the inner hemisphere rather than the outer hemisphere.
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    For anyone who has had the FBX bug- Are you all using a 2016 version of max/maya? Can you try out putting with FBX set to 2015 format in the output options?
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    I just updated the files on gumroad to the first patch to address the most critical issues:
    0.9.1

    *Fixes FBX issues some users were having

    *Sets default image format to tiff 16

    *Warns users if they are baking without an output folder set
  • Bek
    Offline / Send Message
    Bek interpolator
    While we're talking about the UI, there are two minor tweaks I wouldn't mind seeing down the road. First, add a "lock" (like in substance painter) to the output map resolution, so if I'm baking a square texture I only need to adjust one dropdown box rather than two. Maybe even add + and - buttons to step up/down one size; dropdowns are somewhat slow. But this is a very minor thing. Secondly, I'd prefer if the progress bar showed total progress, not progress per operation. It's not something I'm going to sit and watch, so if I do happen to glance at it I want an accurate idea what % of the task remains.

    edit: It also occurs to me that it would be nice to have the "Bake" button in the main UI (like how xN has it), not only under the "Output" tab — this way if I change something under "Models" or "Settings" tabs I can re-bake without having to switch to the "Output" tab.
  • dgm_mkII
    Offline / Send Message
    dgm_mkII polycounter lvl 5
    AlecMoody said:
    dgm_mkII said:
    Thank you Alec, I have tried out Handplane Baker and liking the speed a lot, but I have some questions about my workflow for HP to LP bake

    First off, I tend to use SkewMesh techniques a lot, and I bake only in 3ds Max, rather than xNormal, for the SkewMesh techniques to work, we tessellate the model and bake an Object Space / World Space Normal, then "convert" using 3ds Max native baker to Tangent Space Normal

    If I were to use Handplane baker, I baked an Object Space, I just can't seem to make it behave in 3ds Max (Flipped Green, Flipped Red, Swap Red and Green, etc) So I am wondering this:

    Can you have an option to convert an baked Object Space from Handplane baker and convert to Tangent Space based on another Model provided or;

    Can you create an Object Space that 3ds Max can read?
    We have plans to add skewmesh support, it didn't make it into first release. You can use our old tool to do an object to tangent space conversion to achieve what you want. I will post the latest iteration of that sometime today (handplane 1.6). Its just like the older versions but with the new tangent space outputs added.
    Thank you for the personal reply! I will be watching over this thread closely!
    One more question, do you plan have No Cage / Explicit Mesh Normals or just future integrate SkewMesh to fix Normal Map distortion?
  • kodde
    Offline / Send Message
    kodde polycounter lvl 19
    I'd also like a copy of the newer Handplane 1.6 Alec. Thanks.
  • Abe_hokage
    my version crashes every time i try to start a bake...
    0.9.1


  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    my version crashes every time i try to start a bake...
    0.9.1


    Can you provide some information? Screenshots, copies of your files, system specs... Does it crash if you just hit the bake button on a new project before you have loaded any files?
  • RobertRamsay
    Offline / Send Message
    RobertRamsay polycounter lvl 9
    I was off to a great start with using it, but then it began crashing on me when i press the bake button. :(

    I'm using windows 10 64bit
    Here is the crash dump files: http://www.robertramsay.co.uk/CrashFiles/handplane.exe.8280.zip
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Thanks for the files. I'm not sure any of us have windows 10 development machines. Were you able to do any bakes before it crashed? Does reloading the program fix the issue temporarily?
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Can you try running it in windows 7 compatibility mode?
    Also, can I see what your models tab looks like? I have run ~50 bakes continuously without issue using multiple sets of project files/models.
  • ikifenix
    Offline / Send Message
    ikifenix polycounter lvl 6
    Maybe I am doing something wrong, but just testing with a box I am having weird result:
    Handplane:


    How it looks in UE4:


    Same mesh low/high/cage baked in Substance Painter:


    Windows 10 x64, FBX files.
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Try using a ray offset type in instead of a cage and see if that fixes it.  Or try oversizing the cage slightly. There is some kind of precision issue with small meshes and cages we are working on.

    Also, this seems like a perfect/simple test case. can you send over your files? alecmoody@gmail.com
  • RobertRamsay
    Offline / Send Message
    RobertRamsay polycounter lvl 9
    It worked at first for a while, no problem with multiple meshes and batch bakes, but just started to crash after a few uses.
    I did a fresh install...
    Same issue in Windows7 compatibility mode. I'm trying just a simple bake here one Low and one High and the issue persists.
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Okay, it sounds like this is going to be hard to pin down. If you have a simple setup that crashes, can you save your files along with a handplane baker project file and email them to me? The files probably aren't related to the crash but it would be good to make sure.
  • ikifenix
    Offline / Send Message
    ikifenix polycounter lvl 6
    AlecMoody said:
    Try using a ray offset type in instead of a cage and see if that fixes it.  Or try oversizing the cage slightly. There is some kind of precision issue with small meshes and cages we are working on.

    Also, this seems like a perfect/simple test case. can you send over your files? alecmoody@gmail.com
    Done, I hope it helps.

    Edit: Yes, using ray offset fixed it.
  • Abe_hokage
    AlecMoody said:
    my version crashes every time i try to start a bake...
    0.9.1


    Can you provide some information? Screenshots, copies of your files, system specs... Does it crash if you just hit the bake button on a new project before you have loaded any files?
    here is the crash shots, and a zip file of the dump file.

  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    ikifenix said:
    Maybe I am doing something wrong, but just testing with a box I am having weird result:
    Handplane:


    How it looks in UE4:

    Same mesh low/high/cage baked in Substance Painter:


    Windows 10 x64, FBX files.
    The quick fix here is to set the back ray offset scale to 10:


    Here is why this is happening. If you zoom into your cage file, lowpoly, and highpoly stacked together:


    Your cage is only very slightly larger than the low poly model. When back ray offset is set to 1.0 and you use a cage, handplane casts a ray from the cage to the lowpoly model, it then continues to cast the ray through the lowpoly model the same distance. At 10.0 the ray continues past the low poly model 10X further. Does that make sense? We probably need to change default settings or adjust this behavior.
    @Bek This is the solution to what you saw as well. Clearly we need to adjust something so this issue doesn't keep popping up.

  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    @Abe_hokage
    What version of windows are you on?
  • RobertRamsay
    Offline / Send Message
    RobertRamsay polycounter lvl 9
    I have pinned the problem down to the requirement of a TRIANGULATED low poly mesh, seems to be working now. I think this will be fine to work around


  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Just to clarify, your crashes are related to mesh triangulation? If so, that narrows things down to likely being related to the triangulation warning.
  • RobertRamsay
    Offline / Send Message
    RobertRamsay polycounter lvl 9
    Yes, but at first I didn't bother to triangulate my meshes (kept them as quads) and it was baking for a while, but now with triangulated low poly meshes it seems to be not crashing for now.
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Can you try an A/B test where you swap models to non triangulated and see if that crashes it?
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Also, so far this morning we have 3 users reporting crashes on bake. One user reporting that triangulating seems to fix their problem, another who removed handplane and did a clean install and is not having issues. If anyone a crash today try both of those.
  • RobertRamsay
    Offline / Send Message
    RobertRamsay polycounter lvl 9
    AlecMoody said:
    Can you try an A/B test where you swap models to non triangulated and see if that crashes it?
    Okay, I figured out the real issue now. Exporting the low poly meshes from zbrush creates a slightly different format on obj file as you can see from the image http://scr.hu/1z9l/d6ec7

    So, the workaround for now is to avoid exporting the low poly from zbrush, at least for me. Would be good to see a few more tests from other users.
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Can you send me those lowpoly models?

    Also, several tangent spaces rely on mesh normals being in your low poly model. My understanding is that zbrush obj files contain no mesh normals. We also might be using mesh normals as part of how we do ray cast direction.
  • RobertRamsay
    Offline / Send Message
    RobertRamsay polycounter lvl 9
    AlecMoody said:
    Can you send me those lowpoly models?

    Also, several tangent spaces rely on mesh normals being in your low poly model. My understanding is that zbrush obj files contain no mesh normals. We also might be using mesh normals as part of how we do ray cast direction.

    Okay, mailed those over to you now. Hopefully you can adopt the Zbrush Low poly workflow to suit a few zbrushers here.
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Okay, that file crashes for me.  For whatever reason those zbrush files are exposing a threading bug.

    Beyond this bug, supporting zbrush lowpoly models is more or less a non starter. Zbrush (to my knowledge) doesn't output the data needed to bake correctly. Most game engines/ tangent space outputs are designed to import mesh normals and calculate tangents. Without mesh normals we can't calculate an accurate normal map.



  • skyline5gtr
    Offline / Send Message
    skyline5gtr polycounter lvl 11
    I was off to a great start with using it, but then it began crashing on me when i press the bake button. :(

    I'm using windows 10 64bit
    Here is the crash dump files: http://www.robertramsay.co.uk/CrashFiles/handplane.exe.8280.zip
    Same problem for me , windows 8.1
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    I was off to a great start with using it, but then it began crashing on me when i press the bake button. :(

    I'm using windows 10 64bit
    Here is the crash dump files: http://www.robertramsay.co.uk/CrashFiles/handplane.exe.8280.zip
    Same problem for me , windows 8.1
    Can you email me your bake files? Especially your lowpoly model? Also, where did your low poly come from?
    alecmoody@gmail.com
  • skyline5gtr
    Offline / Send Message
    skyline5gtr polycounter lvl 11
    I just made both. Im making a simple pen , i got it to work by reloading everything as obj , and the lp triangulated. I had the HP as FBX and the low as obj. Now the normal map results look like this. Lots of wierd artifact and crazy lines
  • skyline5gtr
    Offline / Send Message
    skyline5gtr polycounter lvl 11
    I sent you the max file scene and the obj assets
  • skyline5gtr
    Offline / Send Message
    skyline5gtr polycounter lvl 11
    Tested same setup in xnormal and works fine 
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    I'm running max 2014 here so I can't load your scene but I did load your objects and see what is going on. For some reason handplane isn't loading any smoothing information on OBJ files. FBX works as expected.

    The crash you were seeing is from lowpoly models without normals and is being fixed, hopefully ready today.
  • skyline5gtr
    Offline / Send Message
    skyline5gtr polycounter lvl 11
    i resent as 14 so you can mess around
  • pior
    Online / Send Message
    pior grand marshal polycounter
    Since I didn't have the time to fully test out the app just yet, I'll start with probably the least constructive piece of UI criticism ever: 

    - Loading models should be labelled like this:  

    as opposed to this: 

    - In the presentation video I noticed that having a cage mismatch caused a little red dot to appear. However, since the baker does not require a cage to be completely matching with the original model vertex normals, that little dot should be orange (=warning) instead of red (=forbidden).

    - Is a .MSI installer really necessary ?

    - Could you guys provide some example meshes, or even, example projects to load right into the program ?


  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    I think your mesh loading window looks nice. I am open to that but I am slightly concerned it will be more confusing to first time users.

    The installer is mostly in place to help with updates. Also, I prefer having a shortcut in my start menu or task bar for software I use frequently.

    I didn't include any sample meshes because I didn't want to bloat the download size. I could come up with something fairly streamlined for people to test bake with.
24567
Sign In or Register to comment.