View Full Version : 3dsmax 7 Normal Mapping Mini-tutorial!
I did a quick tutorial to show off the speed and efficiency of 3dsmax 7's Render to Texture features and the DirectX viewport shaders.
Take a look at it over on CGChat (I'm currently lacking webspace, so I had to use attachments).
10-28-2004, 02:27 PM
Lol...damn you Mop, you beat me to it...once I finished with my Smoke Elemental for the challenge I planned on writing one up...oh well, I can still do painting for normal maps, and radial aniosotropy (yes, thats right, I think I have an idea as to how to do radial aniostropy and possibly some other weird effects, like caustics, using normal maps...just need time to figure them out and try them)...
Really nice tut though /images/graemlins/smile.gif...someone needs to still write a maxscript for this as some steps are reptitive...grrr...
Btw, pointing out that DX texture previewing in viewports is unavailable on some materials (such as double-sided)...at least as far as I can tell...
10-28-2004, 03:01 PM
Nice tut Mop! I assumed this was how Normal Mapping would work in 7, but have yet to upgrade myself. Your final resulting model doesn't looks so hot though honestly...
It just looks a bit blurry, although perhaps thats the new mip-mapping problems Im hearing about in Max 7...
Scoob: Yeah, the model was just done in about 20 minutes to test out the features for myself. I think the blurriness is a combined result of the texture being non-square (I don't think Max likes 512x256 textures, it tends to chop them down a lot) and the fact that I scaled down the screenshot in Photoshop.
Trust me, with a few coloured lights and a specular map thrown into the shader too, the results are much more impressive. I need to try it with something more detailed, like a character's face, soon...
Looks good mop. I'll have to try that out. Messing around with the ati normal mapper, just makes me feel dirty. /images/graemlins/tongue.gif
10-28-2004, 11:53 PM
nice tutorial mop, but one quick correction. the best low poly cages never poke through the high poly model. but at the same time be as close as possible to the high poly surface at all times. having the meshes intersect is the worst possible situation because the normals have to reverse direction, and that looks butt cause it is reliant on the resolution of the texture and can look really pixelated. Its one of the reasons silo's draw topology brush is so cool, because it keeps everything inside the high poly mesh, but keeps the verts sitting perfectly on the mesh surface.
10-30-2004, 02:31 AM
Where does this idea come from that the low poly cage should not poke through the high poly? My meshes haeve been intersecting for years and I've never had a problem with it, though I see several people making the same claims as you do, poopster.
The max7 normal map generator only fires rays in the direction of the lowpoly surface and is totally unusable to me.
10-30-2004, 08:18 AM
ive found, no matter whether im using the ati normal, the proprietary normal generator at TRI, Kaldera, or orb, that whenever the mesh intersects, it can create a hard line in the normal map, because of change in direction. It doesnt happen everytime, but I've yet to figure out what specific instances it is ok, so I have always kept mine on the inside.
10-30-2004, 10:53 AM
I'm not sure if it's an issue of wether the mesh goes under or over. It's knowing in which directions your normal mapping tool shoots it's rays and how far those rays reach.
Our new TRI normal mapper shoots rays in both direction, and we can adjust the length. This works great because it doesn't matter if it's under or over.
Though, poop brings a good point in that you should pick one and try to stick to it as best you can. Either try and stay on top or stay underneath.
Per: Why not expand the Projection modifier to take the parts of the high-poly mesh "outside" the low-poly cage into account? Does this produce different normal-map results to having rays cast both towards and away from the low-poly mesh?
In the tutorial I posted there, the "nuts" on the wheel hub stick through the low-poly mesh, but I edited the Projection cage to take that into account, and it seems to render down to the normal-map and produce the correct result.
Poopinmymouth: No, I think it's ok in Max7's normal-renderer to have intersecting mesh edges. If you're getting hard lines in the normal map, you can turn on Supersampling and it will look right.
I've never had any problems with pieces sticking through the low-poly mesh, as long as they don't go TOO far. And I reckon building a low-poly cage to entirely cover every part of a high-poly model would result in the low-poly mesh looking too "bulky", if you know what I mean. I reckon you should build the low-poly cage to stay as close to the average surface of the high-detail mesh as possible, regardless of whether this means the highpoly is sticking a short distance "through" the low-poly or not.
I will experiment some more with an organic object like an arm, and see what the results are like.
Per128, Poopinmymouth, Skanker: Would you care to check that out and tell me your thoughts?
The low-poly mesh is both inside and outside the high-detail model, and the resulting normal-map seems perfectly fine...
Per: I cannot see why you say Max7's normal-mapper is "totally unusable"! From what I've tried, it gives equal or better quality, more consistent results than either ORB or Melody, without any raycasting problems regardless of whether the highpoly mesh is inside or outside the lowpoly mesh...
Can you describe an instance (or even better, send me a file!) where Max7's normal mapper would not create a usable normal-map?
10-31-2004, 12:28 PM
Max7 normal map generators fires rays both directions like it should. We were told that it wouldn't during the beta. I tested it and wrote it off as unusable, I was quite irritated with it as well, because it would be such a simple thing to fix and they would have fantastic normalmapping capabilities in their software. I tested with max7 FINAL today. Worked like a charm. Next are you gonna tell me that UV-projection works in the final version too?? If they've fixed that as well, Max7's got some big-time OOOMPH going on. I prefer Kalderas workflow still, but that program is extra $$$$
What is UV-projection? Are you referring to the normal-mapping option in the Render to Texture Projection Options screen? Is that the thingy which requires both the high-poly and low-poly objects to have the same UV-coordinates?
Personally I can't see why I'd use that over the standard Projection modifier method. Therefore I haven't tried it, so I have no idea if it works!
Unless you're talking about something else...
Enlighten me! /images/graemlins/smile.gif
10-31-2004, 02:47 PM
Great info, thanks MoP /images/graemlins/grin.gif
Cheers. I also just found out, Max7 now has a built-in .OBJ exporter!? Amazing!
10-31-2004, 10:44 PM
[ QUOTE ]
Next are you gonna tell me that UV-projection works in the final version too??
[/ QUOTE ]
Why yes it does. I've been using it to pull textures off of our high poly Blur models. Works like a charm. Though, there are still some kinks to be worked out. Like being able to render to a 'non-square' map and such things like that.
11-01-2004, 01:35 PM
Well, I'll be... /images/graemlins/ooo.gif discreet over-delivers, what a treat! All my experiments with the uv-projection features worked ok except the faces at the edges would be screwed up.
MoP: I know what you mean, I wouldn't use it for normal map generation. It's used to project the UVs of one model onto another. Which means simple near-perfect UVmaps for your hipoly stuff.
11-01-2004, 02:00 PM
Mop: I'd avoid that native OBJ im/exporter unless its radically changed since the Beta.
I was trying it out last month to import an OBJ from Zbrush and it took over 2hours still frozen. Using a plugin OBJ importer in Max6 took 5minutes to import the same model.
Ror, well, I just imported that 110,000 poly mesh using Max7's native OBJ importer, and it took under 5 seconds.
I guess a lot of stuff in the final version must be more stable than in the beta, then?
Actually, now that I think about it, your might have just been a one-off bug, because I'm pretty sure the OBJ importer/exporter for Max7 is just an implementation of the freely-available HABware plugin for previous versions.
I just tried adding it to the plugins list, and it gives a "Duplicate Class ID" warning when loading the ImportOBJ.dli and ExportOBJ.dle plugins, so I guess they're the same. The UI for the plugin options looks identical to the older HABware ones too.
So I think you might have just been unlucky with the Beta version? Might have been a Max7 bug rather than a problem with the importer.
11-01-2004, 03:10 PM
Mop: I'll give it another try once i get back onto my Zbrush pass again. I know that previously, it was not an isolated incident in the Beta, I had tried it with 4 models and it always took longer or just hung.
Course, you never know with bugs, sounds like its time for anothe try anyway.
11-01-2004, 03:27 PM
Mop: Only 100k, huh? You are obviously not hard-core, my friend. I suggest long showers and plenty of 1024x1024 pixeling and you might see improvement
I always used plugins for OBJ stuff in beta, so I have no idea about those problems. Seems to work fine now. I'm really surprised at the things that have changed between the last beta version and the final.. because they were only released like ,I dunno, 2-3 weeks apart. Lots of credit to discreet; they're doing a great job now. I went straight from v5 to v7; did they have it in max6 that after you use edge connect the selection you end up with ONLY contains the new edges? It's about time, but one hell of a relief that it's in there . Now if only they could fix the selection problems, like you STILL end up selecting stuff that is BEHIND (NOT backfacing) what you click on a lot of the time. Yes, they're aware of it but didn't consider it important enough to fix. Huh? /images/graemlins/frown.gif It makes me so sad in my heart... This icon will portray my true emotions: http://boards.polycount.net/images/icons/nerd.gif
Ha, 100k for just the arm with a no-detail hand though /images/graemlins/smile.gif
And yeah, it was just a 512x256 normal-map. Is there any way of rendering non-square Render to Texture maps?
Yeah, the edge/vert selection thing after doing Connects and Cuts and such in Max7 is very nice. It wasn't like that in Max6, and yeah it was annoying.
Mop- When I was rendering to non square texture and normal maps, I'd just resize the image in photoshop afterwards, and turn of the filtering in it, that way it doesn't get blurred and distorted by their filtering.
11-01-2004, 05:00 PM
[ QUOTE ]
Cheers. I also just found out, Max7 now has a built-in .OBJ exporter!? Amazing!
[/ QUOTE ]
oh yeah and it works sooooo good. I tried it out today on a model i have to do for contract. I just had to fix the size and some smoothing, nothing more.
The portation from max to maya used to take nearly 3 hours per model, right now i need just 2 min. Oh goo! Im so happy...
And MoP, very cool tut. the render to texture feature is just awesome in max. the coolest thing s, you can take a hipoly model with bump and spec and complete diffrent UVs and project it ona low poly model. Also the bump from the highpoly model can be baked in the normalmap itself. Its lake havin permanent orgasms while discovring the new max vetrsion /images/graemlins/laugh.gif
11-01-2004, 05:19 PM
Props for taking the time to do this, now I just need Max7.......I only just got 6..
11-03-2004, 12:15 PM
i just retested max7's native obj import/exporter. It's still ass compared to switching back to Max6 and the OBJtoMAX custom importer I use.
Perhaps Discreet geared their own more toward supporting maya? Certainly it is useless when it comes to importing a 1-2million poly model back in from Zbrush..
vBulletin® v3.8.4, Copyright ©2000-2013, Jelsoft Enterprises Ltd.