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
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.*Sets default image format to tiff 16
Some of the highlights:
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.
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:
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: 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.
*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
Replies
Also no targa output?
I do however have a request and that is rather than just supporting a workflow whereby you split your HP into separate meshes based on material ID, you adopt a 3D max like option "match material ID's".
I work on models which splitting them and regrouping parts of the models according to their material ID to avoid bits of model being baked onto other parts would just not be feasible. I can see your current workflow would be OK for small (in physical size) models and ones where you only have say 30 or so separate elements to consider. However models I work on are made up of thousands of separate objects, several millions of triangles and are structured in layers logically. I group these thousands of objects into logical and localised meshes and the prospect of mashing up all of the layers and mesh groups to work for baking does not fill me with joy. This "match material ID" is literally the only reason I still solider on with 3D Max default scan line baking. Having the match material ID option means your bake will only project from your low poly model to correspondingly matched material ID geometry on your HP. No exploding required and it's just a case of setting up a 3 or so multi sub material, apply it to your high and low models and go around setting the material ID via modifiers or polygon selections and edits. Each mesh would then contain multiple material ID geometries and it matter about changing the logical layer and mesh structure just for baking.
Hopefully this makes sense, but if not happy to describe in a more detailed doc the predicament but a quick look at anyone of my threads would give you an idea of the models in create..
Great work!
Whisky
We should add TGA output. I use tiff16 for everything because I like to have my source files with extra bit depth and TGA doesn't support 16bpp.
Can't wait to give HP 1.6 a whirl.
If so, is there a difference for DOTA 2 (source 2) Workshop assets between the older (awesome!) version of Source1 Handplane output and the Source 2 output in this new version of Handplane (Baker)?
Thanks! And thank you for releasing all of these great tools!
4096x4096 tangent-space, 1x AA
500,000k tri highpoly, 800 tri lowpoly, cage bake
xNormal:
Build: 0.4s, Render: 26.3s
Handplane Baker:
Build: 3.2s, Render: 4.0s
So 7s for HPbaker, 27s for xN. Very nice. AO seemed very quick in comparison to xNormal as well.
Being able to group projections seems interesting (as someone who still explodes meshes for various reasons), though I'm not yet sure it will be faster for me than exploding — I might expand on this later. A separate AO output for floaters is great; would've loved that in xN years ago. However, there's a few small things missing from xNormal I'd like to see added though:
- Ability to set a "Default" project. My baking setup in xN always points to the same lowpoly, cage, and highpoly that get overwritten when I export my meshes. Then I can just change the output filename and hit bake, without having to re-assign meshes every time. All that's needed for this to work in HP baker is the ability to change the default/startup project.
- Option to set normal map swizzle. I expect my MikkTspace to be Y+; currently it bakes out as Y-.
- Per-mesh Smooth/Harden normals option — sometimes useful when testing things and when wanting super-fine detail to bake down from a sculpt
- Does mesh scale matter in HP Baker? xN sometimes complains about potential problems with small-scale meshes, so my import scale is set to 10, but no similar option is in HP baker.
Also, what does the ray offset numeric value do exactly?And lastly, I think I have a bug, or at least a situation xN handles better. Obviously my high/low poly geo is not ideal for baking, but it's still interesting that xNormal handles this situation so differently to HP baker. I can only assume those artifacts are a bug though. If you want I can send you the files for testing.
I'm wondering, what license does handplane go under?
Say if you decide to make a commercial version at some point, could the older free versions be used at a studio?
Looks promising. Going to give it a go.
Any chance for udim's support ?
Am I doing anything wrong?
EDIT:
Sorry I did get error messages. Had missed the vertical scroll bar at first.
It just says it fails to load the HP and LP FBX files.
Im not sure if I really understand the automatic splitting of objects, it just does kinda the same as the zbrush explode function while rendering out the maps for every object and then combining them back? And AO takes this into account ?
Can you save a handplane project file, pack up your objects, and email them to alecmood@gmail.com ?
Would love to see that you can load diffuse texture (not limited to one texture but if needed multiple) and bake that from Hi to Low mesh as well, I do that all the time with 3DsMax using scan data.
Also, BMC131 and Kodde, what software are you using to export your FBX files?
I tried to reproduce the issue here but can't so far- 5 million triangle FBX file loads and bakes fine:
http://i.imgur.com/jfIOXci.png
*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
I don't know much about udim's and I haven't worked with software that uses them. I'll look into it.
There are no restrictions on using it for commercial purposes. If we ever decide to do a paid version it will be a separate version with its own licensing that won't affect this.
Some nitpicks:
-Name missing on the taskbar, only icon.
-Option to use file name from the first mesh or similar.
-When browsing for folder/file location, you can keep clicking in the "..." button, to open more windows, maybe disallow that and bring the current one to the front.
-Buttons with grey text, to me that says they can't be clicked on, which is not the case in handplane.
-A lock icon like photoshop, so that texture width and height changes together.
A default project is a good idea.
Please do send over the files. I have noticed some projection weirdness with very small meshes where I have to set cages a little larger. I think this is a precision issue and the best fix is a global scale multiplier value in the settings. That way you can set one number and all meshes are affected seamlessly.
When the baker doesn't get normals or smoothing info on a high poly model, it should bake as hard edged. This is to make the output match what you see in zbrush. I can look into that more. The model loading/projections page is already getting cluttered but I think a small button could be worked in well.
I think our mikkspace output swizzles are both tied to what is expected in unreal 4 and unity 5.3. We could add an option to swizzle, but the outputs for UE4 and u5.3 have some minor differences and I don't want people to think they are interchangable.
I got it working with my original object when using OBJs instead.
a general feature wish from me would be to make this a multi platform solution. seems every other tool these days gives the choice of windows/mac/linux. i like having that option very much.
Sweet, I'll have to do some more tests sometime. Really liking what I've seen so far though.
We chose to go all CPU for now because there were still big speed gains to be had over xnormal and GPU compute opens up a can of worms for hardware compatibility. I think GPU compute AO is something we would like to do at some point since there are limited ways to make raycast AO faster on a CPU.