Home Technical Talk

xNormal Batcher

2

Replies

  • dack3d
    Offline / Send Message
    dack3d polycounter lvl 5
    Love You ! :) Thanks It's really helpful !

    Keep going man !
  • trebor777
    Offline / Send Message
    trebor777 polycounter lvl 10
    :) Thanks! Glad someone find it useful !
  • leslievdb
    Offline / Send Message
    leslievdb polycounter lvl 15
    thank you for this! work perfectly the way you`d want it to and saves a lot of time
  • Funky Bunnies
    Offline / Send Message
    Funky Bunnies polycounter lvl 17
    yay! I can't wait to give this a try
  • Pav3d
    Offline / Send Message
    Pav3d insane polycounter
    This looks like a great tool but Im having the same problem as Eyo, I cant see any of my meshes in the list :(

    edit: Im an idiot, i forgot to change the Prefix tabs... Thanks!
  • Funky Bunnies
    Offline / Send Message
    Funky Bunnies polycounter lvl 17
    this is rad, man. I finally gave it a whirl the other day

    Is there any way to load multiple highpolies and bake them onto a single lowpoly though? i wish the listview in the main baking tab were expandable to see more details for a particular bake or something

    Also, since we have separate folders, could there be an option for both the highpolies and lowpolies to share the same name with no suffix/prefix? I've talked to a few people who do that, even though I usually use some sorta prefix/suffix myself

    awesome work! lookin forward to more updates, man! This could totally change how i interact with xnormal :D
  • trebor777
    Offline / Send Message
    trebor777 polycounter lvl 10
    Hey Funky :)
    Glad you love it ! And thanks for the feedback
    We should find a way to package your cool map merger together as a single package too ;)

    As for baking multiple highpolies onto a single lowpoly, the current architecture doesn't allow it. since it looks for a file in each subfolder.

    It's probably doable, just it would mean a lot of work. Also, what kind of other details would you need to see, if you expanded a particular bake?

    The original idea behind the baker, was to facilitate batch baking of an exploded character, which goes completly in the opposite direction of multiple high on a low.

    I'm wondering how i'd go for adding this with the current setup.

    About, the "no suffix/prefix", it's easier to implement.

    I've not work on the tool for a while, (pretty busy at work and home), so I can't promise I'll integrate those features, but i'll keep them on the drawing board :D

    Thanks again for your feedback!

    Also things will probably change when (if it ever happens, lol) xNormal 4.0 get released.
  • Funky Bunnies
    Offline / Send Message
    Funky Bunnies polycounter lvl 17
    yeah man, thanks for the quick response!

    the prefix/suffix thing isn't really a big deal, it's certainly simple enough to rename the files properly if you think it'd muck up your intended workflow.

    But the multiple-highpoly thing is super big. I figured it'd take some refactoring of the architecture though :S. Think for instance if you have a jacket with patches on it or a zippered pocket, metal snaps, etc. which you wanted to bake all onto 1 lowpoly. This also makes the Bake Base Texture with the 'ObjectID' option much less useful since you can't derive your colormasks to help you make dDo material masks. There are a few ways I could see doing it, but just figured id throw out some ideas! :D

    great work, man!
  • Eric Williams
    Offline / Send Message
    Eric Williams polycounter lvl 16
    Just want to say thanks for making this :)
  • Dmarmor
    Hi,
    Just wanted to report a little bug, if you are already in the needed resolution in the set all setting and you want to change the resolution of your objects, you have to leave the current resolution and choosing it back as it doesn't refresh if you just click on it.

    And a feature I'd like to see is an option allowing you to bake a tangent space normal map and an object space normal map in one batch, instead of having to baking one and ticking the tangent box to bake the second batch.
  • Sazu
    Hi there, I can't seem to get the program to work. it's found my high polys, my low polys, and my cages, it has them all there, but pressing bake doesn't seem to do anything at all, and all the individual bake me buttons are greyed out.

    I'm sure I'm missing something very obvious, but can anyone please tell me what I'm doing wrong? Cheers
  • trebor777
    Offline / Send Message
    trebor777 polycounter lvl 10
    DMarmor: I'll work on this as soon as I get some freetime !

    Sazu: Hum, you're sure you have xNormal installed, :p ? Something mustn't be right if the individual buttons are disabled. -> Bake ALL/Selected will skip invalid meshes (one with greyed out individuals bake buttons)
    Can you send me a screeshot by PM?

    Is it different if you change the "use cage" settings?
  • trebor777
    Offline / Send Message
    trebor777 polycounter lvl 10
    I managed to free up some time this morning to improve things a bit

    Upcoming change: Goodbye Checkbox, welcome COLORS! :p
    NextBatcherVersion.png

    This makes up for a clearer interface ;) you can see what's missing instantly.

    -> If you're in "not use cage" mode, the Cage Checkbox will say ok no matter what (instead of N/A/unchecked box). (I'll be honest, it was easier than hiding them)

    -> New little button for a Set ALL dimensions. This is to "fix the bug" of having to change global resolutions twice for the already selected values.

    ;)
  • xvampire
    Offline / Send Message
    xvampire polycounter lvl 14
  • trebor777
    Offline / Send Message
    trebor777 polycounter lvl 10
    v1.0.6.7 OUT!

    Fixes:
    -> The object's BaseName generation was faulty due to case sensitivity. So now object_suffix is the same as object_SUFFIX or Suffix

    -> If you're in "not use cage" mode, the Cage Checkbox will say ok no matter what (instead of N/A/unchecked box). (I'll be honest, it was easier than hiding them)

    -> New little button for a Set ALL dimensions. This is to "fix the bug" of having to change global resolutions twice for the already selected values.
    -> The global resolution value is now saved too between sessions.
    -> The global resolution value is now the default value for new items found.

    New:
    -> Using Colored Text instead of checkboxes :)
  • trebor777
    Offline / Send Message
    trebor777 polycounter lvl 10
    v1.0.6.8 OUT!

    New/Changed:
    -> Bake Both Normals Checkbox: Allows you to bake both object and tangent space normal maps. This will run a separate bake specifically for the object-space normal map. Note that it'll force the "Tangent" space checkbox if it's not ticked.

    -> Auto Refresh: The app now monitors the baking folder, so you can see instantly what's going on when renaming/deleting/adding files the different baking folders.
    -> Therefore the refresh button has been removed.

    -> The global setting panel is now static and won't be collapsed when you're expanding another map settings panel.

    Fixes:
    -> Internal: Changed/Refactored some redondant code.

    xNormalBatcher_v1068.gif

    XnormalBatcher04.PNG
  • Sazu
    Trebor, this is truly awesome :D especially since xnormal won't allow you to do both types of normal map natively.

    This is going from strength to strength, Thanks again for developing this!
  • Alex262
    Wow, this is awesome indeed. I was wondering if it's possible to bake more objects on the same map. That would be very useful in my workflow for complex assets where I need to use more objects instead of one, this way it's easier to manage separate parts. That feature would make this one of my favorite tools. :) Other than that everything works smooth.
  • trebor777
    Offline / Send Message
    trebor777 polycounter lvl 10
    Alex262: That's the whole point of this tool. However, you're asking for an image editing by merging them. Which in my current set of skills, not in my capacity to do directly in c#.

    But good news, to merge lots of maps together; you already have a fantastic photoshop script that I mention, made by FunkyBunnies : http://www.funkybunnies3d.com/tools/photoshop/FB_combineMaps.jsx
    -> http://www.funkybunnies3d.com/tools.php
  • Alex262
    Okay but just to be sure that we're talking about the same thing I wanted to mention that in xNormal if you select let's say 20 lp/hp/cage objects they will be automatically baked on the same map. Isn't it possible to achieve the same functionality just by loading xNormal once for baking a group of object sets (hp/lp/cage) instead of loading xNormal for each set?
  • trebor777
    Offline / Send Message
    trebor777 polycounter lvl 10
    How yeah, sorry ;p It is. But the point of the batcher, originally was to bake exploded mesh individually, to be recombined later to avoid overlaps and such.

    Now I guess I could try a grouping feature, to batch multiple high/low on a single map but that makes things a bit complicated to detect what's required (5 high poly for 5 lowpoly or just one lowpoly etc?)

    For now it's easier to bake everything separately and merge things with the script in photoshop. ;)
  • DavidJones
    Offline / Send Message
    DavidJones polycounter lvl 4
    Just started using this program and first off, it's fantastic! I have run into a bug.

    First I can't bake if my files are different formats. I currently have my Low Poly and Cage set to FBX, but my High Poly is an OBJ. The batcher will load the LP and Cage but doesn't load the High Poly, even if I have my file extensions set correctly. Unless I open the HP in Maya and save it out as a FBX then the batcher will read the file.

    I'm able to work around this issue, but I could move a lot faster if this was resolved. Anyways, keep up the good work this going to quickly become a must have tool!
  • trebor777
    Offline / Send Message
    trebor777 polycounter lvl 10
    v1.0.6.9 out
    Bug Fixed! it's a little bug introduced when i refactored my code.
  • DavidJones
    Offline / Send Message
    DavidJones polycounter lvl 4
    Thanks for the quick fix! It's now loading correctly.
  • Dmarmor
    EDIT:
    Sorry it was my fault, the error told me it was probably a cage error but I loaded the wrong mesh and they didn't had any uvs :\



    Hi,
    On my side I still have the cage issue even with the 1.0.6.9.

    It tells me it has a cage and it can't bake any map.
    What is strange is that only one of my object can be baked and it doesn't seems to differ from the others.
    And the object which can be baked has everything ticked as Ok, Baked, Low Poly, High Poly, Cage.
  • riznof
    Offline / Send Message
    riznof polycounter lvl 8
    Just wanted to say thanks for this! Makes baking so much faster
  • trebor777
    Offline / Send Message
    trebor777 polycounter lvl 10
    Thanks a lot !! :D
  • Dmarmor
    An other me :D
    I have an issue with the naming, it doesn't work when you have a name begining by H or L, I guess it is because it create a conflict with the way it found High poly and Low poly.

    In my case I have an object named grenade_handle, and it can't find the High poly mesh correctly.

    I changed the name to _landle and it create the same error.

    The workaround is to have a minus (-) to name your high and low when you are naming using underscores (_)
  • ahtiandr
    Offline / Send Message
    ahtiandr polycounter lvl 12
    Great plugin! It could be great if it was possible to use one highpoly with same name for two identical lowpoly objects which use different uvs. So for instance, I have one decoration object with one uvs, then I copy pase it in the same place and move its uvs . Next I use same highpoly to bake both. Now it looks like I have to copy and rename same highpoly which is not cool or maybe there is a way ?

    Another small wish is to be able to set Anti-Aliasing seperatly for ao and normals. I have noticed that Anti-Aliasing 4 is fast for normals and it looks better but very slow for ao and I dont need very detailed ao so I usually use 1 Anti-Aliasing for ao and 4 for normals.

    Anyway, really awesome thing you did !!!
  • xvampire
    Offline / Send Message
    xvampire polycounter lvl 14
    I forgot to ask one thing, does it support multiple highpoly mesh for one lowpoly mesh?
  • Lucas Annunziata
    Offline / Send Message
    Lucas Annunziata polycounter lvl 14
    This is a really awesome tool! As xvampire has asked, I would love the ability to have multiple highpoly meshes to bake from.

    I'm also curious if there is a way to bake height maps without having to have manual user input? I am baking a bunch of maps, and the HM Tonemapper currently keeps it from being fully automated.

    Edit:

    Just realized under height map settings there's the option for 'Manual' and 'Raw FP Values', so I'll give those a whirl
  • dutch
    xvampire wrote: »
    I forgot to ask one thing, does it support multiple highpoly mesh for one lowpoly mesh?

    I'd like to see this as well. I want to bake out ao with all my low and high meshes + cages in one pass.

    It might be useful to do this with normal as well to deal with edge padding issues.
  • Neox
    Offline / Send Message
    Neox godlike master sticky
    our tool is quite a lot simpler and relies on xnormal to generate the settings, but at least you can batch however many highpolies/lowpolies you want.

    http://www.polycount.com/forum/showthread.php?t=125244
  • trebor777
    Offline / Send Message
    trebor777 polycounter lvl 10
    To Neox : . . . :thumbup: Nice for you. :thumbup:

    To everyone: I could do this. But that was not the original plan when this was created, it was made to bake exploded Highpoly onto exploded LowPoly. I'll see what I can do with the little time I have. But thank you all for your feedback.
    One way could be to either identify manually the Highpoly you want to bake with another one. Or use folders in the Highpoly folder, if a folder has the same name as a lowpoly object, it uses every highpoly found within it and an option to enable this.


    ahtiandr : Separated AA for AO could be tricky to set up or require an extra pass as the AA setting is common to every map.
  • Neox
    Offline / Send Message
    Neox godlike master sticky
    sorry didn't want to take over your thread, or point fingers at your tool - which is great.

    just wanted to give him a solution to his multiple mesh thing. but seems like using the folders might already be the fix, as we do it the exact same way with our tool
  • trebor777
    Offline / Send Message
    trebor777 polycounter lvl 10
    :) It's alright, sorry for my "hot" head response.

    Anyway,
    I managed to spend a few hours on this, and now, the tool supports multiple High Poly Meshes for a single Lowpoly.

    v 1.0.6.10
    New/Changed:
    - Support baking of multiple HighPoly Mesh on a single map (for a single lowpoly mesh).
    - Refactored some code.
    - When Refreshing, the selected checkbox will keep its previous state (instead of becoming checked)


    Instructions to bake Multiple HighPoly Meshes on a single map:
    In the HighPoly folder, you need to create a new folder that'll contain the HighPoly meshes to be baked on a single pass.

    2 Important naming rules:
    - The folder needs to have the same name as the lowpoly objects, but with the correct suffix(or Prefix) for HighPoly.
    - The highpoly meshes in that folder need to have the correct suffix(or Prefix) and extension for HighPoly as well.

    In the tool, you need to tick the checkbox on the item that require multiple HighPolies.

    Be aware that'll only check for the folder and the highpolies inside it if this checkbox is ticked. In the tool, if this folder exists but is empty, the highpoly cell will be red showing 'N/A'.


    Finally you cannot set "highpoly" settings for each highPoly from this subfolder. What you set in the tool will be applied to all of them. (as if they were a single mesh)

    xNormalBatcher_v1.0.6.10.PNG
  • dutch
    Thanks Trebor,

    I think that'll work for baking out my AO stuff. That way i can have stuff not in the low uv's affect the ao. And then combine after.

    What do you think about adding a checkbox or button that just bakes the whole que as one combined map? That way I can work on all my objects individually in zbrush and bring them all together in the bake. Would be super handy for padding issues.

    Thanks a ton for this tool, it's such a time saver!
  • Neox
    Offline / Send Message
    Neox godlike master sticky
    just bake with 0 padding and use the xnormal filter in photoshop
  • dutch
    Its not a bad option, but im doing a lot of hard surface stuff, with a dense page, so my preference is to do it in the bake :)
  • MmAaXx
    Offline / Send Message
    MmAaXx polycounter lvl 10
    woooo!!

    thanks! :D
  • Neox
    Offline / Send Message
    Neox godlike master sticky
    dutch wrote: »
    Its not a bad option, but im doing a lot of hard surface stuff, with a dense page, so my preference is to do it in the bake :)

    you do realize, that xnomral itself also does it in post?
    and i've been doing the same for months now, bake all pieces without padding, combine them in photoshop and run the xnormal dilation filter over it. it will be perfect. unless your unwrap isn't good. but then xnormal doing it will not change a thing.
  • trebor777
    Offline / Send Message
    trebor777 polycounter lvl 10
    What do you think about adding a checkbox or button that just bakes the whole que as one combined map?

    That's the whole point of this tool: Bake stuff exploded, combine in Photoshop (using funkybunnies script): SCRIPT.

    Secondly the tool doesn't bake everything in a single pass for one reason: if one object crashes, the whole operation is cancelled for all the others. So I do each object bakes in one pass. (Bakes all the maps for one object, quit, start xnormal again with next object etc...)
  • dutch
    Hi Trebor,

    I'm run into an issue with the new update. I'm getting an error, "Cage probably different from lowpoly mesh". Which wasn't happening before the update. Even if you turn off "use cage" the error still occurs.

    I've tested the same meshes in xnormal manually and there is no problem. I've tested with sbm and obj.
  • trebor777
    Offline / Send Message
    trebor777 polycounter lvl 10
    Thanks for the feedback, a bug got introduced with the xml generation. It's actually messed up with Highpoly, passing a wrong filename.

    Working on a fix.
    Will have an update soon. :)
  • trebor777
    Offline / Send Message
    trebor777 polycounter lvl 10
    v 1.7.0
    Fixed:
    - Bug : The xml file wasn't generated properly for the highpoly mesh data for single highpoly meshes.
  • dutch
    Thanks, Trebor, looks good now!
  • trebor777
    Offline / Send Message
    trebor777 polycounter lvl 10
    v 1.7.1
    Fixed:
    - Bug : When Using prefixes: The xml file wasn't generated properly for the highpoly mesh data for single highpoly meshes.
  • dutch
    One think i forgot to mention, for some reason semantec flags the installer as a virus.


    Also, I have a super greedy request, but I thought I'd throw it out there.

    Often after my first bake, I'll notice something i want to fix in my sculpt, or maybe cage. And I'll fix maybe 5-10 things a time. After that I have to figure out which ones to bake again.

    Do you think you can detect which models have been updated and put a visual indicator in the tool?


    Totally shameless request, I know. Sorry and thanks for your work.
  • xvampire
    Offline / Send Message
    xvampire polycounter lvl 14
    hi @trebor777 nice update! :)
    it definately uselful when work with multiple zbrush subtool ,
    zbrush naming system is quite ... disaster so using those folder will help the pipeline a lot ... :)
  • trebor777
    Offline / Send Message
    trebor777 polycounter lvl 10
    Hi everyone,
    just made a little video tutorial:
    [ame]https://www.youtube.com/watch?v=fFj25geeoqk[/ame]
2
Sign In or Register to comment.