MB seems to crash every time I try to bake using a high poly model. I currently have a model with a bit under a million polygons, but whenever MB tries to load the high poly scene, it crashes. xNormal handles the file fine.
Also, how come am I able to use an .obj as the high poly model, but not the low poly one?
EDIT: It seems that the model might not be the problem - I can't bake anything in MB. Every time I try, it crashes. I'm running the demo, and I've tried with multiple different models, resolutions, formats and maps.
Ok. So I tried to bake a new model in MB. This time it was exported from MODO (FBX 2013), and it worked wonderfully. Previously I exported the model from Cinema 4D (FBX 2013) which is known to have quite a bad export-system. So there might be something wrong with how C4D exports the files?
Maybe you should send the C4D fbx to the developer so he can make it not crash. :^) Or, in the meantime just take your highpoly C4D FBXs through another program where they're known to not crash Mightybake.
@huffer I think I may know what's going on with your bakes
1) MightyBake assumes that you are using the 'import normals' setting inside UE. 2) When you are choosing 'compute normals' because your mesh is hard edged, it breaks the normals. This creates flat surfaces that align with the other packages. 3) When you make your low poly model, try setting the low poly model to have hard edges inside your package and then re-apply the UV's so that they are separate. If you are using soft edges, you may see the warbling in the surface.
Try rebaking and let me know if that changes you results.
@Tzur_H I can't recreate your problem. 1) Could you send me your mesh? 2) Were you using hard or soft normals on the low poly? 3) Which mighty bake settings did you use? 4) Which import settings did you use in UE?
@Tzur_H Update - I have been able to isolate the discrepancy. This is definitely a bug and I will fix this in the next release. It may delay the release a few days, but this is very important to fix. Thanks for reporting it.
@huffer I think I may know what's going on with your bakes
1) MightyBake assumes that you are using the 'import normals' setting inside UE. 2) When you are choosing 'compute normals' because your mesh is hard edged, it breaks the normals. This creates flat surfaces that align with the other packages. 3) When you make your low poly model, try setting the low poly model to have hard edges inside your package and then re-apply the UV's so that they are separate. If you are using soft edges, you may see the warbling in the surface.
Try rebaking and let me know if that changes you results.
Thanks, for the answer! I'm not sure I understand though, all edges in the test mesh were soft edges to begin with, specifically, in order to test whether the baker uses the exact same tangent space as the engine. If I used hard edges in the test object, I could have baked in pretty much any package, there is no noticeable difference in engine.
The test mesh with all soft edges needs a normal map with a lot of extreme gradients, and even if in production I will not use soft edges like so, I still want to know that if I need them, I can rely 100 percent on the baker.
I'm wondering if theres a way arround this problem?
It's a pair of paints, where the leg from underneath is showing thru in the bakes (search closest) Right now my workaround is baking out twice, once with closest and once with furthest, and then fix it in photoshop. is there an easier/better way to do it?
I'm a long time user of XNormal (great but slow and that UI design...) but always open to new things. First impression of MightyBake is that it's insanely quick, but also a little light on options. I don't see any way to bake a base texture for example, which is something I use a lot as a quick way to reproject a messily mapped albedo onto a new model with better topology and UV layout.
I also don't see any option for anti-aliasing. I'm using the demo, so maybe there are things missing...?
Also I was able to import my high-poly using the file browser as normal, but the low poly browser wouldn't let me import anything at all. Every file was greyed out. I was able to paste the path into the Low Poly Mesh field, but surely I shouldn't have to. Also, do I need to make my own envelope or will MightyBake do that for me? (and are there options to inflate it? I don't see any)
Looks interesting though, and I love the speed. For the price though it will have to best XNormal (which is of course free) by a good margin.
I've updated the tangent calculations to better reflect the MIKK used in Unreal and Unity. Below is a screenshot from Unreal. I will be releasing these fixes in the next release.
Thanks to @Tzur_H , @hufferand a few others for spotting the problem.
Left is old, right is new. This may also have cleaned up a few things for other tangent spaces as well. I will run more tests and post again.
For texture rebaking the file format varies depending on the source. If it's a model I've been working on in ZBrush it will be a BMP, of its a piece of photogrammetry from Photoscan it will be TIFF, and if it's something I've been fiddling with in Photoshop, then it will be a PSD. It may even be a TGA if it's a game ready texture. Texture rebaking is super useful, I can do it in Maya or Max of course but only reliably with low poly (sub 1-2 million poly) assets.
With regard to the file browser, I use OBJs. I know it's an archaic old format, but everything reads and writes it, so it's a safe choice.
And with my question on the envelope, and apologies if it's bee asked and answered already, but this is a lengthy thread - does MightyBake create its own envelope, and are there controls to preview and inflate it?
Inaba_kun, in MB you use the search distance to determine uniform envelope distance from surface, so to answer your question it automatically makes an envelope for you, use search distance to inflate, a distance of zero is infinite, the scale is in Maya units.
As well, you can combine search distance with a hand modeled envelope, although when I use an envelope I generally just use search distance zero = infinite and then let the envelope block the rays. If you are a long time xNormal user than you will really appreciate the following features as well. Envelopes don't need to match topology with your low poly, they don't need uv's either, they're just blockers. The other feature that is great is the geo normals and surface normals dropdown. This gives the result of xNormal's with or without an envelope bake style, but has no requirements on meshes or envelopes, I usually bake both and composite the two in Photoshop because it's so quick and can remove a lot of distortion on low poly flat surfaces.
I have some older tutorials here if you're interested from the earlier days of MightyBake, but they go over the envelope stuff in great detail. I guess I should make a new tutorial now that all these new features are flooding in.
mightybake, wow man, that looks pretty incredible! That could really help our game if the artists could use more soft edges and get those kind of results in Unreal 4. That would actually be better than Maya's default baker viewed in the Maya viewport. Can't wait to give that a try!
@Inaba_kun As malcolm describes, Mightybake has two ways of doing envelopes. One is to specify the maximum search distance, this is basically the same as an auto-created envelope with a fixed expansion. The second is to specify a mesh as an envelope in the UI. This can be any mesh you make. It will be the boundary for the searching when doing the transfer from high to low. You can use this to separate pieces that are close together.
I'm still doing the final round of testing for all platforms, but for those interested in getting a preview of batching and the latest tangent support, you can download the windows beta version here for 1.4.9.
Version 1.4.9b - Jan 04 2016
(Feature) Batching - Select which presets you want to bake and then start a batch bake
(Fix) Mikk tangents fixed for Unity and unreal
(Fix) Maya tangents fixed
(Fix) OBJ crash when importing from blender
(Fix) Allow for OBJ's to be used in low poly selection
Haven't gone through a thorough test yet, but holy fuck, with my quick test it actually bakes better than the Maya default baker even when viewed in the Maya viewport, and this is with all soft edges! Mind blown, my workflow for getting clean bakes has just totally changed for the better. I also tested the Unreal 4 tangents and they are producing the same awesome results, thank you very much this will save us time and make our maps look better across the board on our team.
On the downside the batch bake feature crashes if I have more than one preset selected and try to batch bake.
So i installed the latest beta, good to see that the maya tangentbase has been adressed. however I installed the betai installed the shelf and no matter if i click high or env or low, it doesn't give me the option to pick a file format, fbx or obj or whatever.
the export to a file named .fbx worked, the tangents seem to be in sync. however i could not get envelopes to work, i get tons of misses on furthes and on closest it kinda feels like the envelope is part of the highpoly as well, i get a mix of highpoly and lowpoly normals
Okay i tested a bit further, there are a few things i would like to note here. - in maya the envelopes are parented to the original lowpoly, if i export the lowpoly it should only export the low and not also the envelope - no matter what I do, if i use an evelope i either use durthest or closest, both ways give me different but screwed up results. The search distance has no influence as i guzess the envelope overwrites the search distance. if i just use the ray distance the results are great, i just do not like the trial and error this method carries with it - seems like mirrored uvs result in wrong normals (guess green inverted, did not test, tested yes the greenchannel is inverted) - is there a reason why empty space bakes as fast as space with data in it? i just have a test asset, which uses a fraction of the full UV layout and all black blocks take the same time as blocks with normal information
On the downside the batch bake feature crashes if I have more than one preset selected and try to batch bake.
Yep same here.
Another thing
- when I bake 2 AO maps, the last one will save over the first, so maybe do it as you do with the normals, add the settings to the filename
with that in mind, would it be possible to bake a directional AO map as well? In Topogun there are 2 settings, one is nondirectional, the other is directional like a skydome, which will turn lower sides darker then upper sides. I can create example maps if you want to know what the results will be
-i think the surface or geometry normals direction should be part of the maps, not of the output settings, this way you would save malcolm some time for his mixed workflow where he masks off the hard edges
-would it be possible to either shift click multiple highpoly meshes in the explorer or drag them into mightybake? right now i have to + click one by one
MightyBake version 1.4.7 released. You can download it here.
Version 1.4.7 - Nov 17 2015
(Feature) Name matching option to pair high poly to low poly so you don't have to explode the model
(Feature) UV Tiling support with both UDIM (Mari) and Mudbox naming conventions
(Fix) UDIM tile rendering error fixed
I will post a tutorial for both of these soon. The name matching works by searching all high poly objects for the names of low poly objects. It is off by default but you can find it in the options menu.
For example, a low poly scene has three objects - body - clothes - hat
High poly scene has five - body_hp_head - body_hp - clothes - hat_01 - hat_emblem
When you turn on name matching, all the body objects are used with the body low poly, the clothes with clothes and the two hat objects bake to the hat.
For all you vehicle and weapons modellers this may come in handy, less exploding models.
Rob MightyBake guy
I can't really replicate this, what am I doing wrong? here is my Mightybake setup
and here is my maya setup
Is it possible, that it doesn't work when you havbe multiple lowpolies in one file but the highpolies split over several objs?
Neox, the envelope should work in conjunction with search distance, but I haven't tested it in the beta yet, perhaps there is a new bug? Normally I set my search distance to zero (infinite) then use an envelope with furthest to get the result you are used to from the Maya baker. Best thing to do if you are having funky results from the envelope is export it out, then make a new scene and import your envelope back into Maya and make sure it looks how you expect. I'll test it later on my end too, just a bit busy right now.
MIGHTYBAKE, okay did a very thorough round of testing the beta tonight and found some new issues to this build.
1. There appears to be a new bug with the envelope, as Neox said, using search distance works fine, but the envelope has some precision error in it now which causes some missed rays, black spots in the normal map, white spots in the AO map that were not there before on my test model.
2. Curvature map now crashes each time you try to bake it.
3. Thickness map now crashes after it finishes rendering the map, but does not save the map.
4. The blue channel of the unnormalized world position map looks suspicious, it doesn't create a gradation, try baking just the z axis it just looks flat compared to the other two channels. Looks fine when normalize is turned on.
5. The interface starts off a bit small vertically now, and the render window can be scaled vertically which looks a bit weird, the text moves to the wrong spot (minor).
6. The render view seems laggy now and shows the previous bake for a long time before switching to show you the current bake in progress. The bake time now also prints minus seconds for example complete bake: -2147783648 seconds (export 0 seconds) which I think is a new bug.
7. Mirroring a model along z in Maya seemed to work fine, but mirroring the model along x produced diamond shaped shading errors. Wait, starting fresh and mirroring it along all axis seems to work fine now, maybe neox can provide a test model to repro, I can't repro anymore? Also you can leave the uv's overlapping, and get a clean bake, that is really nice and unexpected!
8. The baker seems really slow now, like at least twice as slow as before. Even with AA set to 1x it is slow.
9. Batch bake feature crashes.
10. The tangent stuff is great, I can't believe the improvement, what a magical time for game art. 10 years of the same broken shit and then bam, quality of life improved.
So the Batch baking only applies to baking different presets for the same lowpoly mesh right ? So I can't bake ONE preset onto multiple lowpolys (say I have 8 assets where I want the maps to be baked when I come back in the morning).
I think the presets let you do either or, the batch bake lets you bake 8 completely different models, make a preset for all 8 projects if that makes sense. The presets themselves is where you determine the low poly file and the high poly file(s) that will bake out the different maps. So set up 8 presets with 8 different low poly files, then choose which map types you want for each preset, then turn them on in the batch baker and click go. But as of the latest beta the batch baker crashes for me. Waiting for an update to try again.
@Campi The batch baking let's you bake any presets you wish. Each preset is independent. You can set up each present to be the same low poly or different low polys, it doesn't matter.
I've updated the beta with beta2 (windows) that has fixed some of the crashes and slow downs you have mentioned. Give it a try and let me know if there's any remaining issues. http://www.mightybake.com/beta
@Campi The batch baking let's you bake any presets you wish. Each preset is independent. You can set up each present to be the same low poly or different low polys, it doesn't matter.
I see. Thank you. Gave it a go and works as you described. However I still don't think the batching process is as powerful as it could be.
At the Moment
a) each Preset (what to Bake, what settings) is directly tied to the model it was saved with So for each Model I need to save the preset and model together. I was hoping for a quick way to be able to specify a bake ('bake curvature', 'bake ao') for a whole bunch of Meshes. I work in VFX so we don't have Lowpoly to Highpoly but just 'Highpoly as Lowpoly'.
b) Preset management is a bit of a paint with large amounts of assets. I have to manage 2 or 3 different environments over the course of a project. Each environment has 90 or more assets. Whenever the model changes on one asset from any given environment I need to update the bakes. In an idea world I could: 1) set up all assets of an enviornment as part of a batch bake. 2) Save that new 'Batch Bake preset' 3) clear the batch bake queue and do the same for a different environment.
This way I could save all assets of an environment in a batch bake queue and whenever models from ENV A change i load the batch bake queue of ENV A, turn on the presets for the models that have changed, then process. Then I can load a different batch bake preset for ENV B and do the same for the models that changed there without still seeing all the presets from ENV A in the List as well.
I've got a question regarding UDIM baking. I saw an option to bake for 10x10 tiles, is it possible to bake say 10x20? At work its not uncommon for us to be working on assets with more than 100 uv tiles.
MIGHTYBAKE, did another test today with the lastest beta, some fixes went through, but there are still some issues remaining.
1. Renderview does not show you the bake in progress, just a flat dark red colour.
2. Envelope bug is still there.
3. Baking vert colours, or curvature, or thickness, or world position plus any other type of map crashes. But, baking any of those maps by themselves does not crash.
4. Thickness map now has the text ".tif" in the file name, so the map is now named myname_thickness.tif.tif
5. Batch bake still crashes for me and I have confirmed those two presets I'm using to batch bake fine when not in batch mode.
Starting from regular old 1001 going up in the V axis it goes 1001, 1011, 1021, 1031, 1041, 1051, 1061, 1071, 1081, 1091, 1101, 1111, 1121, 1131, 1141, 1151, 1161, 1171, 1181, 1191, 1201, and so on. Once you get to 1991 I'd assume it goes to 2001 and I guess that the highest UDIM would be 9999 although I haven't ever gone that high myself.
Another beta has been posted, beta 3. You can download it here. Let me know if you find any other issues. These were hard to fix, but the batching is worth it.
Replies
BLUESTEMOS Another user reported a crash on OBJ's coming for packages other than ZBrush, like blender. If you are using FBX's, I haven't seen that before. Your system specs look good. I will be fixing the OBJ import in the next release.
Originally, I prevented people from using Obj as the low poly because there was no tangent information. I can easily add the support in, I just hadn't seen people use it. As the baker has advanced, it's been less important to have the tangents in the file. I'll add it for the next release.
@PSYCHOTIC_MIKE Thanks for trying it out. At the moment, Smoothing Groups are not supported. I will look into this feature and see how long it would take to implement. Can you describe what you expect them to do? Would it just be when computing the normals for tangent normal maps, or for controlling the bake direction?
Any suggestions to getting around this?
1) MightyBake assumes that you are using the 'import normals' setting inside UE.
2) When you are choosing 'compute normals' because your mesh is hard edged, it breaks the normals. This creates flat surfaces that align with the other packages.
3) When you make your low poly model, try setting the low poly model to have hard edges inside your package and then re-apply the UV's so that they are separate. If you are using soft edges, you may see the warbling in the surface.
Try rebaking and let me know if that changes you results.
1) Could you send me your mesh?
2) Were you using hard or soft normals on the low poly?
3) Which mighty bake settings did you use?
4) Which import settings did you use in UE?
The test mesh with all soft edges needs a normal map with a lot of extreme gradients, and even if in production I will not use soft edges like so, I still want to know that if I need them, I can rely 100 percent on the baker.
It's a pair of paints, where the leg from underneath is showing thru in the bakes (search closest)
Right now my workaround is baking out twice, once with closest and once with furthest, and then fix it in photoshop. is there an easier/better way to do it?
I also don't see any option for anti-aliasing. I'm using the demo, so maybe there are things missing...?
Also I was able to import my high-poly using the file browser as normal, but the low poly browser wouldn't let me import anything at all. Every file was greyed out. I was able to paste the path into the Low Poly Mesh field, but surely I shouldn't have to. Also, do I need to make my own envelope or will MightyBake do that for me? (and are there options to inflate it? I don't see any)
Looks interesting though, and I love the speed. For the price though it will have to best XNormal (which is of course free) by a good margin.
You could always use the name matching and separate the objects that way. Legs with legs and pants with pants.
I've seen a few requests for the texture re-baking. It's something that I may look into. What kind of file formats are you looking into?
Which file format were you looking for using the low poly browser? It currently only supports fox's.
I've updated the tangent calculations to better reflect the MIKK used in Unreal and Unity. Below is a screenshot from Unreal. I will be releasing these fixes in the next release.
Thanks to @Tzur_H , @hufferand a few others for spotting the problem.
Left is old, right is new. This may also have cleaned up a few things for other tangent spaces as well. I will run more tests and post again.
With regard to the file browser, I use OBJs. I know it's an archaic old format, but everything reads and writes it, so it's a safe choice.
And with my question on the envelope, and apologies if it's bee asked and answered already, but this is a lengthy thread - does MightyBake create its own envelope, and are there controls to preview and inflate it?
As well, you can combine search distance with a hand modeled envelope, although when I use an envelope I generally just use search distance zero = infinite and then let the envelope block the rays. If you are a long time xNormal user than you will really appreciate the following features as well. Envelopes don't need to match topology with your low poly, they don't need uv's either, they're just blockers. The other feature that is great is the geo normals and surface normals dropdown. This gives the result of xNormal's with or without an envelope bake style, but has no requirements on meshes or envelopes, I usually bake both and composite the two in Photoshop because it's so quick and can remove a lot of distortion on low poly flat surfaces.
I have some older tutorials here if you're interested from the earlier days of MightyBake, but they go over the envelope stuff in great detail. I guess I should make a new tutorial now that all these new features are flooding in.
mightybake, wow man, that looks pretty incredible! That could really help our game if the artists could use more soft edges and get those kind of results in Unreal 4. That would actually be better than Maya's default baker viewed in the Maya viewport. Can't wait to give that a try!
Version 1.4.9b - Jan 04 2016
On the downside the batch bake feature crashes if I have more than one preset selected and try to batch bake.
the export to a file named .fbx worked, the tangents seem to be in sync. however i could not get envelopes to work, i get tons of misses on furthes and on closest it kinda feels like the envelope is part of the highpoly as well, i get a mix of highpoly and lowpoly normals
Okay i tested a bit further, there are a few things i would like to note here.
- in maya the envelopes are parented to the original lowpoly, if i export the lowpoly it should only export the low and not also the envelope
- no matter what I do, if i use an evelope i either use durthest or closest, both ways give me different but screwed up results. The search distance has no influence as i guzess the envelope overwrites the search distance. if i just use the ray distance the results are great, i just do not like the trial and error this method carries with it
- seems like mirrored uvs result in wrong normals (guess green inverted, did not test, tested yes the greenchannel is inverted)
- is there a reason why empty space bakes as fast as space with data in it? i just have a test asset, which uses a fraction of the full UV layout and all black blocks take the same time as blocks with normal information
Yep same here.
Another thing
- when I bake 2 AO maps, the last one will save over the first, so maybe do it as you do with the normals, add the settings to the filename
with that in mind, would it be possible to bake a directional AO map as well? In Topogun there are 2 settings, one is nondirectional, the other is directional like a skydome, which will turn lower sides darker then upper sides. I can create example maps if you want to know what the results will be
-i think the surface or geometry normals direction should be part of the maps, not of the output settings, this way you would save malcolm some time for his mixed workflow where he masks off the hard edges
-would it be possible to either shift click multiple highpoly meshes in the explorer or drag them into mightybake? right now i have to + click one by one
1. There appears to be a new bug with the envelope, as Neox said, using search distance works fine, but the envelope has some precision error in it now which causes some missed rays, black spots in the normal map, white spots in the AO map that were not there before on my test model.
2. Curvature map now crashes each time you try to bake it.
3. Thickness map now crashes after it finishes rendering the map, but does not save the map.
4. The blue channel of the unnormalized world position map looks suspicious, it doesn't create a gradation, try baking just the z axis it just looks flat compared to the other two channels. Looks fine when normalize is turned on.
5. The interface starts off a bit small vertically now, and the render window can be scaled vertically which looks a bit weird, the text moves to the wrong spot (minor).
6. The render view seems laggy now and shows the previous bake for a long time before switching to show you the current bake in progress. The bake time now also prints minus seconds for example complete bake: -2147783648 seconds (export 0 seconds) which I think is a new bug.
7. Mirroring a model along z in Maya seemed to work fine, but mirroring the model along x produced diamond shaped shading errors. Wait, starting fresh and mirroring it along all axis seems to work fine now, maybe neox can provide a test model to repro, I can't repro anymore? Also you can leave the uv's overlapping, and get a clean bake, that is really nice and unexpected!
8. The baker seems really slow now, like at least twice as slow as before. Even with AA set to 1x it is slow.
9. Batch bake feature crashes.
10. The tangent stuff is great, I can't believe the improvement, what a magical time for game art. 10 years of the same broken shit and then bam, quality of life improved.
So I can't bake ONE preset onto multiple lowpolys (say I have 8 assets where I want the maps to be baked when I come back in the morning).
@Campi The batch baking let's you bake any presets you wish. Each preset is independent. You can set up each present to be the same low poly or different low polys, it doesn't matter.
I see. Thank you. Gave it a go and works as you described.
However I still don't think the batching process is as powerful as it could be.
At the Moment
a) each Preset (what to Bake, what settings) is directly tied to the model it was saved with
So for each Model I need to save the preset and model together.
I was hoping for a quick way to be able to specify a bake ('bake curvature', 'bake ao') for a whole bunch of Meshes.
I work in VFX so we don't have Lowpoly to Highpoly but just 'Highpoly as Lowpoly'.
b) Preset management is a bit of a paint with large amounts of assets.
I have to manage 2 or 3 different environments over the course of a project. Each environment has 90 or more assets.
Whenever the model changes on one asset from any given environment I need to update the bakes.
In an idea world I could:
1) set up all assets of an enviornment as part of a batch bake.
2) Save that new 'Batch Bake preset'
3) clear the batch bake queue and do the same for a different environment.
This way I could save all assets of an environment in a batch bake queue and whenever models from ENV A change i load the batch bake queue of
ENV A, turn on the presets for the models that have changed, then process.
Then I can load a different batch bake preset for ENV B and do the same for the models that changed there without still seeing all the presets from ENV A in the List as well.
At work its not uncommon for us to be working on assets with more than 100 uv tiles.
1. Renderview does not show you the bake in progress, just a flat dark red colour.
2. Envelope bug is still there.
3. Baking vert colours, or curvature, or thickness, or world position plus any other type of map crashes. But, baking any of those maps by themselves does not crash.
4. Thickness map now has the text ".tif" in the file name, so the map is now named myname_thickness.tif.tif
5. Batch bake still crashes for me and I have confirmed those two presets I'm using to batch bake fine when not in batch mode.
Ok, how about this:
Another beta has been posted, beta 3. You can download it here. Let me know if you find any other issues. These were hard to fix, but the batching is worth it.
I've posted version 1.4.9 here.
Release Notes 1.4.9