Normal Maps

I’ve been slowly adding info here, bit by bit, as a way to collate info as I (and others) post answers to normal map queries on various forums. I just added a link to Ben Cloward’s resource page, which I had forgotten about until seeing it again in the TAO wiki.

http://wiki.polycount.net/Normal_Map

I’m fishing for feedback, one of the goals for spending the time writing things down is to learn more about them. I probably have some things wrong.

I’m also interested in mirroring content to the TAO wiki. What’s the best place though? That page is more oriented towards non-tech artists, and those new to normal mapping. Whereas this site’s wiki caters more to the hardcore. :nod: So I guess it would evolve here into more of the implementation end?

Thoughts…

Really nice job on that wiki page Eric!

Rob currently has an entry on the shader page for normal maps - but I think it really needs its own section - and all of your information is totally relevant for it. Nothing to worry about things being to “basic.” A lot of times something that one person would consider basic is totally brand new to someone else. I find myself learning new things from basic tutorials a lot. It’s like filling in the cracks of what I know and understand.

Rob, let’s set up a normal map section on the wiki!

Thanks Ben. When I get a chance I’d like to dig through your tuts again, see what I can incorporate into the wiki, if you’re OK with that.

Nice wiki, Eric.

Thanks for doing that…I was going to make an internal one, but it’s easier
to give out your link :smiley:

Hey Kelly, good to see you around here. This site is shaping up nicely.

[QUOTE=bcloward;165]Rob, let’s set up a normal map section on the wiki![/QUOTE]

You are free to :slight_smile: I will keep an eye on the Normal Map page, if it begins to grow out of hand or get disorganized then it can definitely be split into its own Portal and/or Category. But I’d image TA’s have a more nuanced view of [w]Normal Map[/w]s (btw you can just put a [ w ] tag around the name of a page on the Wiki and it will link directly there, no need for a URL/full link) that would probably put more content on other pages, so the normal mapping page itself would be smaller. We’ll see what happens, though, or anyone is free to set it up if they have a clearer idea where it should go or what they’d like to put on it.

BTW good job on the section, Eric!

Hey cool, wiki links work in the forum!

Wiki links are case-sensitive, so I added auto-redirects for normal map and Normal mapping. Though in the wiki, you can also simply add a suffix like -ing -s -ed after the end bracket, and it will treat the whole word as a link.

For example

[[normal map]]ping

in the wiki will look like this: normal mapping

At some point I hope to flesh out the currently-empty [W]Help:Editing[/W] page.

Nice Wiki Eric - giving that a read as I type this

bookmarked :wow:

Hey, thanks Jon.

If you have any suggestions, don’t hesitate to ask …or to edit it yourself, once I get it all copied here of course. :slight_smile:

great stuff on normals

I have a question for you guys regarding getting the best use out of a normal map. Is it better to use a normal map based on the unwrap with the texture you paint. Or taking the normal map from a higher poly version of your mesh? Or is there a way to use both?

A normal-map sampled from a high-poly surface will nearly always be better than one sampled from a texture, since you’re actually grabbing “proper” normals from an accurate, highly detailed surface. That means your normal map’s pixels will basically be recreating the surface angles of your high-poly mesh, resulting in a very believable look.

If you just generate a normal-map from a texture by itself, it can look very flat, and in some cases it can be completely wrong unless you’re very careful about your value range (black is low, white is high - you should always be converting a heightmap to a normalmap unless you’re using Crazybump on a photo). I’ve seen some people try to just use the NVidia filter or Crazybump on the diffuse texture that they’ve painted, which is just plain wrong.

I think the best results are obtained by baking the large and mid-level details from a high-poly mesh, and then combined with photosourced “fine detail” normals for surface details such as fabric weave, scratches and grain.

Sampling form a high poly surface is going to give better quality, but is going to take time if you don’t already have that hi-def asset to bake a normal map from. For character or significant environment assets then that is the best route, but for less significant environment surfaces then working form a heightmap based texture will provide a good enough result for a much less commitment in time.

Good advice both.

I hope to finish moving all the sections over from the polycount wiki page soon, stuck up a coupld more just now.

Feel free to start adding your nuggets of wisdom to what’s already there. I’d love some help <wink><wink>

[W]Normal Map[/W]

Nice work,eric.Thanks.

Great feedback thank you.

So a program like crazybump would be good for making materials for lets say a brick wall texture for UT3?

Yep, that’d probably be the fastest way to do it. If you’re well-versed in ZBrush, you could probably whip something up that looks even better in not much longer (with a nice set of alphas and brushes).
I know a lot of the UT3 textures were actually made using ZBrush models for the normalmaps and ambient occlusion. Check out Kevin’s thread on Polycount to see some of that stuff.

That’s an awesome thread.

I finished mirroring all the sections from the polycount.net wiki page onto the TAO [W]Normal Map[/W] page. I don’t “own” either page, so please feel free to add your info if you have something. Pictures would be really helpful too.

Added a link to Will Fuller’s normal map actions for Photoshop.
http://tech-artists.org/wiki/index.php/Normal_Map#Painting

Added a section about baking transparency.
http://tech-artists.org/wiki/index.php/Normal_Map#Baking_Transparency

Added modeling tips from MoP
http://tech-artists.org/wiki/index.php/Normal_Map#Modeling_The_High_Poly_Mesh

There’s a cool function here explaining the use of Sobel filter to get your normals out of a bump map : http://catalinzima.spaces.live.com/blog/cns!3D9ECAE1F2DC56EF!223.entry
(originally for terrains)

Maybe a future possible expansion on your wiki?

It would be nice to bind this under a DX material with Max’s bump map channel and see directly the effect in the viewport…