streamlined normal mapping


Maya 2011 - 2016   ||   Python   ||   PySide (Qt)


The goal here is to create a unified solution for normal mapping. Normal mapping has been around for nearly two console generations, the issue is a lack of standardization across engines and bakers and a need to be able to make normal maps for and using all of them. Once you have finished creating your high and low res geometries then it should be very simple and relatively painless to bake and tweak your normal maps.  AppleJacked is being developed in 3 parts, given that pipelines are constantly changing, those parts have been designed with expandability and adaptability in mind. 


Exploder

Exploding a mesh is an extremely tedious process, especially if you need to move faces rather than just meshes. Exploder is made to help automate that process based on how your outliner is organized. The process is extremely fast, especially if you have the outliner in mind while you are building the meshes.

1. You must organize the high res meshes into groups based on which pieces you you want exploded together. The end result is a tree of groups that define something like a parent child relationship used as a map to navigate the low res mesh.

2. Insert the high res group, the low res group, and any meshes that you specifically want to be ignored into the appropriate spot in the UI. 

3. Specify the "Distance Padding". If set to 0.0 the tool will only make sure that in the end none of the pieces are intersecting, but will not check to make sure there is any meaningful distance between them. Default is 0.1 (10% of the size of the piece)

4. Specify the "Envelope Threshold". If set to 0.0 the tool will only search for the low res pieces based on the exact bounding box of the high res pieces, often not enough since any low res pieces must be completely contained by the high res bounding box to be selected. Default is 0.2 (20% larger)

5. Press "Get Jacked!" to explode your mesh. The "Manual Pair" button is there to help quickly fix any pieces the tool may have missed (forces the selected high and low piece to be a pair and then explodes them as if the tool selected them with the rest). 


Cage-er

Part two is a cage generation tool. I want to put everything in the same spot, no more remembering where the next tool is, or how best to implement it. Just need to drag the next slider until you think it looks perfect. Yes Maya can already generate cages if you know how to get them out of the Transfer Maps tool, however, you don't need to anymore. 

1. If you used Exploder then "Low Res Group" will already be filled in. If not, plug your low res group in here.

2. Name is purely optional. If you want the cage to have a specific name in the outliner then enter it here.

3. Once you start dragging the "Env/Cage Distance" slider you should see the cage appear. 

4. Press "Generate Envelope/Cage" to finalize it with your settings.


Baker

<< Coming Soon >>

Baker is the final piece of this puzzle. Designed as a wrapper that can easily be integrated with nearly any pre-existing external baking solution. This will allow you to select your baker of choice from a dropdown list (populated by cross referencing a list of supported bakers and whether their .exe files exist in the default location) and then get all of the appropriate options in response. Once you have finished baking the map, instead of seeing it as a texture in an image viewer, you see it applied directly to your mesh.  

Currently planned to support:

-- Mighty Bake

-- Substance Designer


Made Using Qt designer and PySide

Qt Designer and PySide are a very powerful combination for developing UIs for any Python application. It proved to be even more so when it came to working on a quickly expanding tool like AppleJacked. Qt Designer allows visual development and to test it without needing to integrate it directly into the tool. I was also able to develop a universal CSS file for all Qt tools developed at Mindwalk to help unify the look.


Take a look at the other tools I've made!