yep im dam clueless how to get a good unwrap of something organic.
i got some unwraps that have no stretching by the issue im having is the seams and the normal map cant find a effective way to hide them.
i posted the UV map the high poly and a view of it using the normal map some help would really be appreciated.
edit: if it matters the low poly is a decimated version of the high poly that i made in mesh lab would i be better off making the low by hand?
un-wrap
![rockUV_Low.png](http://dl.dropbox.com/u/2360554/Fourms%20Stuff/polycount/rockseams/rockUV_Low.png)
high-poly
![highpoly.png](http://dl.dropbox.com/u/2360554/Fourms%20Stuff/polycount/rockseams/highpoly.png)
applied normal map and seams
![normal_mapped.png](http://dl.dropbox.com/u/2360554/Fourms%20Stuff/polycount/rockseams/normal_mapped.png)
Replies
@Mark Dygert i originally had 1 seam but it gave me some pretty stretched results. and density that sucked.
could you provide some examples of how a similar object was done.
But really it shouldn't matter how many seams you have when it comes to seam errors. even with a lot more seams you shouldnt' seem them unless your baker and your rendering method are our of sync or you baked incorrectly.
What app did you bake in and how are you displaying the normal maps? For example if you bake in 3dsmax and use scanline to render it will give you accurate results with no seams. If you bake in xnormal with default settings and then bring that back into max it will give you seams if you render with scanline, but in xnormal it looked fine. This inconsistency is a constant source of frustration with artists and you need to make sure your baking app is synced to your rendering app, be it an offline rendering engine or a game engine it needs to be synced.
and thanks it looks just fine via the x-normal viewer which i have never used before.
so if it is a sync thing what would i need to do to make it view properly in udk or a other 3d package
edit:
ah it was smoothing if i make the seams into hard edges it is not as bad
Now with minimal seams you can use a 3D painting App.Even PS4 upwards has great 3D cababilities that lets you paint over seams so they are seamless.
Another trick is to use an overlay Normal Map that is tiled on top of your main Normal Map this will go a long way to hide seams that you cannot hide.
For real....
Seriously, go back and make better use of your UV space, and then, stitch together parts that you know the player will see, and just make the hard edges on the bottom part of the rock that will be nested in the ground, or something. You are not using your UV Space efficiently, and that's instantly visible.
You'll be super-glad you went back, trust me, you'll have a higher quality rock afterwards.
later on i will post the new UV layout and the bake results to get some more suggestions.
I hope you're talking about seams with diffuse/spec, because a proper bake should be used to get a seamless normal map from your highpoly. You should never have to "paint out" seams on your normals, as this means your bake isn't set up correctly.
I dont really agree with this, as tiling normal maps generally tend to highlight seams, not hide them. Unless it is just a basic noise overlay. When using tiling overlay detail textures you need to be very careful with your uv layout, to have minimal seams and hide the seams you do have, or else the tile will wreak havok around your seams.
and the problem before with the seam wasn't actually a issue with the seam on the normal map it was that i needed to reverse one of the channels on the normal map and where i saw the artifact was where i also had a seam.
and the end result
highpoly right low poly left.
"I hope you're talking about seams with diffuse/spec" Yup.
"I dont really agree with this, as tiling normal maps generally tend to highlight seams, not hide them. Unless it is just a basic noise overlay." Yes I meant a noise overlay.
Sorry I did not explain further Passerby..there is a real cool tut I was only looking at a few days ago and will forward once found.
Then apply turbosmooth (max modifier), then sphereify to fully round it out, this turns it into a quad sphere, I suggest making a primitive shape of this because you might end up using it a lot.
Because you unwrapped it as a box you now get the nice tennis ball unwrap that EQ was talking about.
The advantage of a quadsphere is that it's a sphere made up of quads instead of a sphere made up of triangles at the poles. easier to unwrap, sub-divides better so its easier to work with when sculpting. Everybody wins.
Since you're high is already unwrapped when it was a box you can paint the diffuse in the sculpting app and transfer your diffuse as well as your normal map when you bake. (Mudbox2012 has AWESOME UV-less painting but until then this works great). But before I start sculpting I noise it up and push it around with soft select on and use some of the graphite modeling tools to push and pull things.
Max also has scripts for helping to create rocks using similar methods. They focus on making the low and the high at the same time with an eye for baking it all out. Both the primitive maker and the rock script are listed in this news post I did a few weeks ago. http://www.polycount.com/2011/02/24/helpful-maxscripts/#more-5592
and my method for the rock is similar to that max script it essentially uses a bunch of displace modifiers with 1 cellar maps and some noise maps i modified with curves in PS. than just some adjustments using soft selection and a FFD.
thank for all the help everyone iv only been working with modeling for about a month (worked with source and goldsrc mapping for years) and wasn't expecting to get such repose to my noobish questions.
Anyone who comes to Polycount that shows they are puting effort into learning will be given help.
err... what they said.
Method 1 gives you no seams apart from the bottom but gives stretched UV's. Method 2 has better UV's but creates seams.
I used to have a method (basically use method 1 mapping but in render to texture map to uv2 which has method 2 mapping and paint over seams) but have never done this with an object that is to have normals baked onto it.
Just curious if things have changed over the years, have there been any good tutorials in the last few years that cover this? What are the popular methods for this problem these days?
Thanks, here is an image to hopefully make the problem easier to understand.
Technically I have a primitive already set up so I don't have to do that every time...
More info here: http://www.polycount.com/forum/showthread.php?p=1312335#post1312335
the tennis ball unwrap got 2 problems imo. at least in some cases.
if some angles in the 3dstructure are to heavy, you can get pixel size problems , even after relaxing the chunks.
and if you use 2 elongated chunks, large parts of the square texture will be empty and therefore redundant if you dont use it for other objects.
taking a rectangle texture e.g. 256x512 the two chunks will likely be to big.
so most of the time my approach is to use more chunks, which i can better arrange in a square space, to get the most out of my pixels. the more pixel u use, the smaller the texture can be. available texture memory is mostly faster consumed, than geometry.
my approach will likely produce more rendered vertecies.
seams are no problem here
The link to that thread with a similar issue was really good though I couldn't work out exactly what was happening. From what I gathered solution is to make something similar to my method 1 but the stretching isn't a problem since it's rock and you can get away with it?
I'll take this issue into that thread.
I also have a similar question.
Trying to work out the best solution and even though I've read this thread I still can't quite work it out. In my pic it seems method 1 is the way to go and it's similar to what passerby went with in the end to get it right? Only my 2 islands are stuck together. Problem is that it creates some stretching, I can't quite tell if it's stretching in passerby's example so am not sure if somehow he has no stretching or perhaps he does but he just gets away with it since it's rock?
I wouldn't use a rectangle texture, its a waste. Most games are set up to expect a specific size. So a material slot will be 512x512 if you spend it a 256x512 its going to take up a 512x512 slot. It takes a lot more math and calculations to figure out and pack into memory sheets of different dimensions. You think you're being cleaver and saving half a sheet but you're really wasting it, its better to pack another rock on the same sheet make it a square and call it a day.
Same thing goes for using tiny textures, if you use a single 128x128 texture and the standard size is 512, you're better off packing a few tiny sheets together to fill out a 512 sheet. Especially if they will be placed together, like rocks, trash bags ect...
Like you pointed out more chunks = more seams = more verts rendered in the game, you also have to factor in smoothing breaks adding more verts as well as material breaks and extra verts for shader passes. Sometimes more UV seams don't just double in vert count but triple or quadruple...
Plan your smoothing breaks along your UV seams if you're going to have any. Your smoothing should dictate where your UV seams go before you start breaking to better relax pieces.
Also keep in mind that you can turn on soft select and selectively relax areas which will relax better than trying to relax the entire UV shell to fix a trouble spot.
Then there is the issue of padding with more seams and more chunks proper padding becomes much more of an issue, especially with environment pieces that almost always mip-map to scale for hardware or at a distance. Now more pixels have to go to padding instead of the actual material...
Less seams easier to pack.
I've created probably hundreds of rocks using the quadsphere method and its prefect.
If you start with a box unwrap it and quadshpere it, you're high poly is unwrapped meaning you can paint the diffuse (across seams) and bake it along with your normal map. If you haven't bothered to unwrap your high you're stuck worrying about diffuse seams later, if you have a lot more seams...
Also stretching becomes less of an issue if you bake your diffuse from the high also. The bake compensates for the stretching making the diffuse look stretched but ok on the model. The problem with stretching comes from the diffuse material not stretching along with the UV distortion, this can be hard to do on your own as you're laying out flat un-stretched textures on your diffuse.
So not only is it less material work, but its cleaner results all around.
as i pointed out, uv discussions are the real cause for jihad
So your diffuse will look stretched but on the object it will look better because the stretched diffuse matches the UV distortion.
It's harder to compensate for the UV distortion when you're laying out undistorted pieces under a distorted UV layout, you really don't know where or how its stretching.
If that makes sense...
So if you unwrap your high poly (as in using a quadsphere) you can paint across UV seams on the high poly, and bake your seamless diffuse texture that better compensates for stretching.
Long post short: unwrap your high poly, diffuse paint the high and bake your maps (normal, AO and diffuse).
This is extremely engine specific and not really a general statement that you can make, I don't think. Its quite easy(engine wise) to pack 2 256x512s into the space of 1 512x512, its not like you're using 357x932 instead of a 512 or something weird like that. But again this is highly dependent on how your engine loads textures into memory/streams.
I'm not quite sure what you're saying here, if you have a hard edge and a uv seam it will only double, never more than double. A vert wont get split into 3/4 verts for any reason. Unless you're saying something different?
If you're just talking about say, having a a cube with 6 faces and 6 uv islands, I get what you're saying. However in cases like that where your geometry is sooooo low, it really wont have any impact on performance. If you go from 8 to 24 verts, you're still only at 24 verts. This simply isn't an issue for any system other than what, like a DS or something, even then, its 24 freaking verts. =P
^ Yes, its always best to have hard edges share uv borders, as mentioned earlier, its no more expensive to have a hard edge on a uv border, so in reality every uv border could also share a hard edge. I just use a script that assigns hard edges to all of my uv borders for mechanical stuff.
However for organic rocks, you'll rarely need to use hard edges, unless your geometry is really low.
Is max's relax poor? In modo I just run relax on everything and it works wonderfully.
Its also easier to cull un-used textures regardless of size, rather than Swiss cheese parts of each container and try to remember how much space is/isn't in each one.
I'm pretty sure its how most directX based games are set up. Doom3, Source games, Unreal engine. I think the new texture atlas stuff id is doing replaces this way of doing things, but I'm not sure if Unreal has changed or updated yet.
If you don't put your smoothing breaks along UV seams you're doubling the verts on the UV seam and wherever the smoothing is breaking. If you're adding extra passes in the shader depending on what they are and how its being handled you're getting more verts in all those places.
However for organic rocks, you'll rarely need to use hard edges, unless your geometry is really low.
Is max's relax poor? In modo I just run relax on everything and it works wonderfully.[/QUOTE] In general its pretty good, the 2012 peel is pretty rocking. But sometimes it will pinch and relax like crap, it also likes to start twisting, scaling and rotating entire pieces which screws with your layout. Also if you're piece is inverted it will attempt to flip it before relaxing... which is... great... Not even soft select will save you then, you're stuck flipping, relaxing and flipping it back.
If you have a little area with a little distortion or pinching, turn on soft select and relax, it won't introduce 5-6 other mouse clicks to get it back into position/scale/shape, tis all.
Yeah I understand this generally(not as well as CB of course) but still, I dont think that is cause for giving out general advice of "dont use rectangle textures" or "dont use anything but 512x512" =P Generally, your tech team should be majorly involved in this and tell you what is optimal to use with your specific tools.
Oh you're saying if you're doing hard edges where you have no uv splits, I get it. I thought you were trying to say something else.
OH, yeah modo's relax is nice and predictable. =D Also, I always relax before packing, as relax always changes the shape of the uv island.
Actually I remember using relax in max a few times and verts just randomly fly around if you relax "too much" or something. You can crank the relax in modo as high as you want and it just "settles" after a certain threshold. This was an older version of max however, years ago.
Also modo has a nice interactive relax, where you just drag over your layout to relax more/less.
Yea in the other thread someone was saying that they would break up the UV shells based on how well they would relax and making more chunks would pack them better. I wanted to caution people against breaking things up for distortion and it should be a low priority and smoothing breaks should largely dictate where shells are broken and relaxing and massaging pieces can almost always minimize distortion on pieces like rocks to a tolerable level.
Even if breaking the pieces off relaxes them better, you can still stitch them together afterward... most of the time.
Yea, but there are some places you might not discover the distortion until you've baked and your layout is set... then its like FUCK what do I do... selective relax that bit.
Max can do some shitty things when relaxing. Typically it will settle in, (it does this with peel in 2012) but when it doesn't it normally spins the piece and scales it down until you stop it. WEE!
I think MoP proved that Maya uses the same algorithm too so its probably not much better.
The new peel method relaxes while you're working. It's great for defining your seams on the model and breaking, its like a automatic pelt pull/relax option, which I think is like what you're talking about? It's relax algorithm seems to be superior to the standard max relax so I end up using it quite a bit. There are times that it goes bat shit nuts and its easy to forget its on, select some pieces and have them relax, which sucks when you just squared them off heh.
I still have to give Modo a spin, I keep hearing really good things about it. After I tried out Silo it changed the way I worked in max in amazing ways. If it wasn't so buggy abandoned and limited (baking and animation) I might still be using it.
and you really find silo 2.2 that buggy, after a while of using it i found all the things that make it crash and instinctively do a incremental save first. (and i do the same thing in Max since i get just as many crashes in max 2011) and i really do like how fast it is for modeling and UVing but i guess it depends on how you like to work, i dont mind switching back and forward on multiple 3d packages to do different things.
though i got to complaints with silo beside how stable it is,
no scripting and it kinda slows you down how it places all new primitives at the global origin wish it would handle that blender style with a 3d cursor.
the unwrap of the low as no visible seams in either bake (normal, ao) and it has perfect texel density that that was just with the tennis ball unwrap and the default LSCM unwrap in silo.
the unwrap also works almost perfect in max 2011 i just split it into 4 islands relax them all separate than sewed them back together into to chunks and a tennis ball style unwrap.
I try to give only 2 halfs, just like the tennisball/baseball approach...
while in 3d view, and i have my hi and low poly models, i put them right on top of each other.
I then select the verticies, in one seemless line, and try to follow "distinct" geometry, like rough big edges/protrusions.
Once that is done, unwrap with button touch, and resize the auto wrap for best fit.
I do it in blender, but i know that method can be used in any app. Basically tennisball unwrap following Distinct features: deepcracks, high parts, etc.
and if your rock is big and complicated, then again, follow the main distinct feature path and get 3 or 4 complete seam sections