Home Technical Talk

Introducing Handplane Baker

12346
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

  • Soul Exist
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Can you post your curvature maps settings or provide some details?

    I have an alpha you can try that has a bunch of fixes, including stability  fixes.
  • Soul Exist
    Offline / Send Message
    Soul Exist polycounter lvl 9
    I keep it at the original settings. I don't usually adjust it. But please send me the newer build if you have one @ MosestheCGArtist@gmail.com or just post a link in here. Not sure if Gumroad has the updated version yet
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Here is an alpha build with a bunch of updates people can test before we do a release/installer:
    http://www.alecmoody.com/handplaneBaker_alpha.rar

    The change log looks something like this:

    *Pressing the bake button while in progress now cancels the bake
    *8 bit TGA output
    *Fixed PNG not writing correctly for some users
    *Added dithering for 8 bit outputs
    *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


  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master

    EXpMiNi said:


    Impossible to render in 16k for some reason (crahs)
    HandPlane 4K x16 Sampling : 3sec
    xNormal 4k x4 Sampling : 86 sec
    Also, I wanted to follow up on this. We are looking at providing some additional controls for how projection ray direction is calculated across a face. However,  I wanted to point out that in this comparison, the xnormal result is not an averaged projection, which is why there is zero skewing. Look at the split edges where there should be rounded corners.

    Does anyone have a suggestion for how they would like multiple ray direction methods to function? It will likely be a global checkbox or dropdown, depending on how many options we create.
  • supaclueless
    Offline / Send Message
    supaclueless polycounter lvl 13
    Currently for me I would add an inset on my low-poly around the floating geometry to stop it from skewing, but it would obviously add to the tricount. As you have noted though, Xnormals results has those nasty split edges which does not help for close up shots. Personally for me I think having a dropdown with the current version of projection being the default. Maybe put a tooltip to tell people which projection is currently used in Xnormal so that the people that don't know the different projections can use it.
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    We can also do some sort of automatic skew mesh tessellation system but in my experience that method doesn't work well on complicated production models and requires careful control over how the skew mesh is made.
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    We should have a new release build on gumroad this week. The latest builds are really robust/stable and overall the tool seems well polished. I also wanted to share the a roadmap for the next phase of feature development:

    1) Improved control over projections. Skew mesh support but also we want to experiment with some changes in how ray directions are calculated (we have some ideas that should allow users to have a slider for control over how ray angles propagate along a face).

    2) Model name based projection group generation. We have had several people ask for this and it would likely come in the form of a separate mesh loading button that would automatically populate projection groups

    3) Automatic sampling for AO to use the minimum number of samples to achieve and desired noise threshold.  It is currently very easy to oversample AO. Also I would like to add some kind of ao sample smoothing to get better results with fewer samples.

    4) Automatic settings for curvature and cavity to scale map generation for best dynamic range without clipping any tones.

    My question to the community is: are there any big features you would like to see not covered here? Where do you think handplane baker currently falls short?

    Maybe a model viewer? One of the core principals we have used in making development decisions is to allow quick handling of truly massive meshes. Sending 50 or 100 million triangles to the GPU is slow and I wouldn't want bake functionality to be handicapped by a limit of how many triangles can be drawn on screen. I can see the usefulness in having a model viewer to debug issues with high/low scale differences.


  • Makkon
    Offline / Send Message
    Makkon polycounter
    I've been looking everywhere for it, but is there still a way to use this version of handplane to convert an Object space normal to a tangent space normal map? I reeeeaaallly need that feature for my workflow, especially now. I can't find any current documentation on that feature anywhere, just lots of old threads and broken links :(
  • Bek
    Offline / Send Message
    Bek interpolator
    @Makkon They're two different programs. You want the original handplane. Interestingly the download link seems to be missing from the new handplane3d website, but the old link I have cached still works:

    http://handplane3d.com/download.html
  • Makkon
    Offline / Send Message
    Makkon polycounter
    Been looking all over for this, thank you so much @Bek
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    You can get the latest version here:
    http://www.handplane3d.com/handplane_1.6_beta2.rar

    We will package this into the baker release build.

  • Bek
    Offline / Send Message
    Bek interpolator
    AlecMoody said:
    My question to the community is: are there any big features you would like to see not covered here? Where do you think handplane baker currently falls short?
    I find the model viewer in xN quite handy to quickly figure out why something is going wrong (exported pieces are at different scales, zbrush moved the model to origin for no raisin, cage isn't pefect, forgot to enable a certain piece...

    #3 and #4, seem like good ideas as well.

    Something that might be handy is if HPB could subdivide the mesh itself, so I can just export the sub-d cage. This could make it easier to deal with many large/dense meshes. HPB would also have to store the results though after the first revision, updating after the input mesh is changed, otherwise you'd soon get tired of waiting for meshes to subdivide every time you re-bake. It would also have to use catmull-clark/p-sub. Not because of edge weighting, just because it's a better algorithm.

    I'm just trying the new Alpha build and interestingly enough that problem occurs with the 'smooth high res normals if none-found' , it doesn't save the result, so it has to recalculate the mesh every time you rebake. xNormal doesn't seem to have that problem, unless I just haven't noticed.

    More problematic is, I just can't seem to get cage baking to work. No matter how much I fiddle with the back-ray offset scale, I always get significant errors in my bake. If you like I can zip the current example I'm using up and send it to you in a PM.
  • Soul Exist
    Offline / Send Message
    Soul Exist polycounter lvl 9
    @AlecMoody  I have an idea for a feature you could add which i believe will be REALLY useful. How about adding some sort of setting that could automatically bevel hard edges without the need for a highpoly mesh? Take your basic cube for example. Instead of having to create and bake hi-poly beveled version of that cube on your low-res version to get rid of the hard edges, you could possibly completely eliminate that process and get that bevel with just your lowpoly information.  here's an example: http://polycount.com/discussion/71995/tip-zero-effort-beveling-for-normal-maps
  • huffer
    Offline / Send Message
    huffer interpolator
    AlecMoody said:
    We can also do some sort of automatic skew mesh tessellation system but in my experience that method doesn't work well on complicated production models and requires careful control over how the skew mesh is made.
    Maybe just an automated process? Plug in low poly, skew mesh low poly, skew mesh low poly cage and finally high poly, and let it do the object space bake and convert it to your chosen tangent space. Or at least integrate the object to tangent converter from the original handplane? When I use skewmeshes, I prefer to add support loops by hand as needed and store them in an Edit Poly, so it's easy to export them, I would not use tessellation.

    I don't think there's anything missing - I only had some problems with high poly normals..apparently .obj's from 3dsmax have an issue, but with the latest options in the alpha it's fixed, and the bakes are perfect. So far this looks really promising, can't wait for final version!
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    We just released v0.93 of handplane baker to gumroad. There are lots of fixes, features, and workflow tweaks. This build is polished enough that we are ready to start concentrating on adding features. Get the update here: http://gumroad.com/l/znpF#
    Changelog:
    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 an installer for our old tangent space calculator in the install dir


  • Soul Exist
    Offline / Send Message
    Soul Exist polycounter lvl 9
    Yeah being able to round any hard edges while all soft edges remain as is would be awesome.
    There should also be an option to round any intersecting geo as well. Almost like a soft weld. 

    Having an adjustable intensity would be helpful too. 



  • Bek
    Offline / Send Message
    Bek interpolator
    Bug: Custom install directory does not work ( Always installs to C:\Program Files\Handplane3D LLC )

    Still doesn't seem to bake correctly either no matter what I try (OS or TS).
  • Makkon
    Offline / Send Message
    Makkon polycounter
    Really appreciate you guys packaging the older tangent space calculator in with the official release. Makes things much easier. Thanks!
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Bek said:
    Bug: Custom install directory does not work ( Always installs to C:\Program Files\Handplane3D LLC )

    Still doesn't seem to bake correctly either no matter what I try (OS or TS).
    Can you elaborate on doesn't bake correctly? If you have a sample setup, please send it over. Ideally with an hpb file so I can load it up quickly. alecmoody@gmail.com
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    I  replaced the installer file on gumroad with a version that allows for picking an install path. Also, it no longer installs classic handplane by default. An installer for handplane 1.6 is packaged into the handplane baker installation folder.

  • _AR_
    Offline / Send Message
    _AR_ null
    could you add a disable option for each group similar to "isolate AO" option to use it when you need to troubleshoot a small portion of the map (the problematic area), this will reduce the rendering time and it will be helpful when you need to re-bake one object only
  • _AR_
    Offline / Send Message
    _AR_ null
    plus could you guys add more to the documentation, many option are not explained, and that make it hard to what certain option is for, which lead to many wasted trails testing these options without knowing what i am doing, specially if you are new to the process
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    I think disabling groups would be a good addition. What specific parts of the baker do you think need better documentation?
  • _AR_
    Offline / Send Message
    _AR_ null
    you should add documentation to the undocumented options in the setting for curvature and cavity like kernel type in curvature and what the difference between them, another example would be the sensitivity and the bias in the cavity and so on...
    i know that some of those options might sound familiar to an expert but for someone new to the process and who didn't use x-normal they might sound ambiguous 
  • _AR_
    Offline / Send Message
    _AR_ null
    another option you might wanna consider tho its not a deal breaker, a drag and drop capability for the objects similar to that in x-normal. its much faster than navigating to the folder.
  • _AR_
    Offline / Send Message
    _AR_ null
    and if possible add an auto cage generator, tho this might be hard without having a native 3D viewer to assess the cage to check wither it intersect the high res mesh and/or overlap itself in tight areas. and you could add an option to export the cage for further tweaking in a 3D application if needed. 
  • Bek
    Offline / Send Message
    Bek interpolator
    At that point you would just create the cage in your 3d app, rather than going from 3d app -> HPB -> back to 3d to edit cage -> HPB... surely every 3d package has a push modifier/tool these days, right?
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    I have had a few times where I get a projection 99% dialed in with just the ray offset but have a single issue that I need to make a manual cage to fix. I can see this being a nice workflow addition so that artists can start with offset and then debug a specific issue manually.
  • Sersch
    Offline / Send Message
    Sersch polycounter lvl 4
    Is there any way to bake material ids by using the materials assigned to the high poly mesh like in Substance Painter? This mesh here is part of a texture atlas, the border parts of the bolts have the same materials as the mesh below. The main mesh uses two different materials. I can't split this in parts to assign separate ids because it would destroy my topology.


  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Sersch said:
    Is there any way to bake material ids by using the materials assigned to the high poly mesh like in Substance Painter? This mesh here is part of a texture atlas, the border parts of the bolts have the same materials as the mesh below. The main mesh uses two different materials. I can't split this in parts to assign separate ids because it would destroy my topology.




    Not at the moment. We are working on a more in depth method to assign materials and group (auto grouping, sub objects, matIDs).
  • drpeppercan
    Offline / Send Message
    drpeppercan polycounter lvl 4
    Hi Alec, this looks great :)
    It seems to me HB is only for Windows, at least so far, is this right?
    Thanks in advance,

    DPC
  • Lachance
    Offline / Send Message
    Lachance polycounter lvl 5
    Are you planning on adding a 'Match by name' feature?
  • guats
    Offline / Send Message
    guats polycounter lvl 10
    Hi there amigos,

    I just wanted to say I went to get the new .9.3 version off gumroad, donated a little more to say thanks again. The download link that came up was for the 'HandPlaneBaker64_v0.9.2_x64' version, and I thought maybe .9.3 wasn't released yet, however when I tried the emailed download link the 'HandPlaneBaker64_v_0_9_3' came up. Might wanna check the version that is coming from that direct download link. Thanks for the update!
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Hmm. I tried checking both links and I am getting served the 0_9_3 version for both. Is this the direct download page you are talking about?

  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    I just added the installer for 0.9.4
    https://gumroad.com/products/znpF

    2/5/2017 - v 0.9.4

    *Fixed curvature maps not using smooth high res normals.

    *Added an option to automatically normalize curvature maps by computing the max curvature generated.

    *Added hotkeys: ctrl+o, ctrl-s, ctrl-shift-s, ctrl-n, alt-f4, ctrl-b (bake)

    *Added Thickness map output

    *Handplane now displays the name of the current project file

    *Added logic to protect users from losing unsaved changes to the current project.

    *Fixed a bug in AO causing some sample counts to generate slightly dark results.

    *Users can now drag and drop a project file to load it.

    *Changed ray miss color for curvature maps to middle grey

    *Changed ray miss color for AO to black


    We also posted the winners of the contest here:

    http://polycount.com/discussion/183039/announcing-the-winners-of-the-handplane-baker-contest-new-handplane-build#latest


  • motionblur
    Offline / Send Message
    motionblur polycounter lvl 12
    since I haven't posted anything here, yet - first of all: Thanks a ton for the awesome tool!
    You guys really rock. I am going to use this tool in an upcoming lecture for the students to use. B)

    (edit) nevermind the request. My file got corrupted. Have to try if it actually works first.  o:)
  • apllana
    Offline / Send Message
    apllana polycounter lvl 8
    Wow, is this fast! The projection group is a very nice feature, but it's not really complete until there's an option to batch import into separate projection groups (perhaps based on filenames). Exploding is currently faster than manually adding files through the GUI.
  • sparks24
    Offline / Send Message
    sparks24 polycounter lvl 2
    i would also add opacity to list of renders, or at least add transparency to all files that hold that property (like PNGs). For example, in xnormal, I can make my PNGs have a transparent background, and whatever that the ray hit will have a normal map. Handplane baker doesnt offer this, and automatically uses a neutral normal map color for a background.
  • Victorcg
    Offline / Send Message
    Victorcg polycounter lvl 11
    Hi. I have a trouble with handplane Baker. Simple objects are cube and beveled cube. All options are left by default. Baking normal map for ue4 takes forever. Where could be problem? Thank You
  • ziikutv
    Offline / Send Message
    ziikutv polycounter lvl 9
    I am in Modo. I loaded the object space map, baked from high and low poly pillar, shown below (right and left respectively).

    Is there a way for me to make the edges more rounded like the high poly without adding a tiny bevel? Is this something that even pertains to Handplane (or is it a model/render thing)?



  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Hey all. Our workshop share has fallen off of a cliff this year and we are looking at new ways to monetize handplane baker. I would love to find a way to keep the tool free and bring in enough income to justify additional development time. If anyone has suggestions please post them here.
  • supaclueless
    Offline / Send Message
    supaclueless polycounter lvl 13
    I personally still use HPbaker and I understand that monetizing it would definitely help its dev cost since you are developing something that needs maintenance free of charge. I personally still enjoy the free price point but maybe a really low price point for one time might help it. A "free" and "paid" variant would not really work in this scenario and would unnecessarily create artificial walls for different users in this context unless theres an amazing balance.

    I don't really have any crazy ideas on the fine balance of "developing something you love" vs. "putting food on the table", but I hope something good still comes out of this. Been using this since its inception and its excellent for it costing $0 and would still keep using it.
  • vempdance
    Offline / Send Message
    vempdance polycounter lvl 5
    When I load a high poly mesh about 36 million tris, the baking speed become extremely slow.
    My CPU is i7 7700k. Is this limited by hardware or the baker itself?
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Is your high poly model in fbx or obj? I have noticed high poly FBX files are much slower to load. Fixing FBX load times is in the list of changes for the next version.
  • vempdance
    Offline / Send Message
    vempdance polycounter lvl 5
    AlecMoody said:
    Is your high poly model in fbx or obj? I have noticed high poly FBX files are much slower to load. Fixing FBX load times is in the list of changes for the next version.
    obj. In fact the load speed is OK, but the bake bar isn't moving at all. I wait for about half a hour and the bake bar is still at about 5% when baking a tangent normal map. 
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    is there an error anywhere in the log?
  • vempdance
    Offline / Send Message
    vempdance polycounter lvl 5
    AlecMoody said:
    is there an error anywhere in the log?
    Nope
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    How big are the files? Can you rar up the whole project and send it to me? alecmoody@gmail.com
  • vempdance
    Offline / Send Message
    vempdance polycounter lvl 5
    AlecMoody said:
    How big are the files? Can you rar up the whole project and send it to me? alecmoody@gmail.com
    The High Poly mesh file is over 4G. I will send the Ztool  include Low poly mesh and cage to you.
12346
Sign In or Register to comment.