So I've been fighting with mapping, baking, and finally painting a modular shipping container (I'm building it so different sections of the walls can be cut out). I built a simple hi-poly, got my low res, baked in Max (because xNormal just would NOT produce anything remotely usable - warping, stacking and artifacts everywhere), and did a little bit of tweaking to clean up my normal as viewed with Xoliul's shader in the Max viewport. Thought I had it more or less where I wanted it (for the moment), so I moved on to my base diffuse texture. Grime and markings are going to be overlaid in the shader so I can switch colors, markings, and wear dynamically.
Here's the CONEX container in Max, via Xoliul, with the diffuse and normal. I know there's some issues, but most of the edges on the main framing (not the cubes on the end) are good enough for now, and give me a decent idea of the edges with the normal map. I'll make a cleanup pass later.
I realized that I had my diffuse good enough for a rough pass, and was going to start moving to UDK so I could preview the assembled triple-layer shader as I worked. Model imported fine, got my lightmap assigned (it's UVW channel 3, 1 and 2 are for the diffuse base color and side markings, 3 serves double duty as both the map channel for grime and for lightmapping).
Import normal map, plug into the shader in UDK and MRRPHHH :: gakk cough :: Wh... WHAT THE HELL IS THIS CRAP?! Somebody shanked my normals!
I'm pretty sure I accounted for -Y green in any minor hand editing I did, and I know you're 'not supposed to bake from Max' (and I wouldn't have, if xNormal had spit out something even REMOTELY decent...), but I have never had my results in Max diverge this massively from what I got in Unreal. There is some horizontal mirroring of the normals in the UV map, but my understanding was that horizontal is ok, vertical is bad.
And I was supposed to have this and several accompanying objects done by the end of Sunday.
I've fought with this thing for a couple hours now and I'm at a loss. What the hell is going on? I'm going to post the model, my textures, heck, I'll even post the .ase and UDK .pak file if that'll help. I just have to make this work. :poly122:
EDIT: .max file, textures, and source texture .psd:
http://www.garagebay9.com/storage/40ft_Conex.zip
Replies
If you aren't already doing this that could be the problem.
EDIT: Yup, set to Normal compression and LOD group is WorldNormalMap. It's like something's scrambling the X and Y directions in various spots, and tossed out the Z depth for good measure...
Well, I just tested to make sure it wasn't unified, and apparently it was. However, I'm now getting different seams (some of the edge seams have changed, a few are right, others are wrong still or wrong differently), and even worse, blatantly incorrect mirroring along the tiled areas.
http://imgur.com/rpNvw.jpg
http://imgur.com/HcMYr.jpg
ALSO, I've found that if you are using a material instance, any normal maps in the parent material have to be uncompressed, mirrored or not. other wise it breaks the mirrored one on the child level.
EDIT: This, um, appears to be a bug with Xoliul's shader. I've switched to a different SM3 viewport shader and not only are the strange gradients and inversions gone, but the normals are displaying much more accurately.
Looks like time to upgrade Max...