Home Technical Talk

Noob question on projection mapping

1
polycounter lvl 16
Offline / Send Message
Billabong polycounter lvl 16
Hey guys,

I really need some serious help.

I Have just finished modeling a very high detail car(1.8million tris) That includes the interior and exterior as well. The client I have done this for tells me that they want a 50,000 tri car built from this model.

Here is my problem, I have never done low-poly converting before This car has 785 objects in it. Man I don't even know where to start. Do I attach all of these objects to make it one and then just create a very low poly object around the car do some type of project from the high poly to the low poly version,If so how, Is there a tutorial somewhere that could teach me this.

Also,if this is the correct way, will the interior be projected as well as seen through the windows, or do I need to recreate the interior as well.

Please forgive my ignorance on this, but I am clueless when it comes to this type of thing and I am really strapped on time. They have given me 2 days to tell them if I can do this or not. So here's hoping you guys can get me going in the right direction.

Thank you so much for taking the time to try and help me.

-Brandon

I also wanted to add that the doors will not be opening the low poly model is basically being created to be seen from a distance, so there will be no closeups or even going inside to look at the interior as long as it can be seen from the outside

Replies

  • System
    Offline / Send Message
    System admin
    Really if you are looking to project high res details you need to make a low poly base mesh with all the basic characteristics of the shape - following all the contours... take it to z brush and create a high detail model for your normal map.

    I assume you have 1 high poly model? If so it would be difficult to reduce the count without losing the shape, in this case it is always advisable to use meshsmooth (max terminology) modelling so you can see high levels of curvature that fit the objects shape perfectly while still retaining your low poly mesh.

    As for texturing I would break the interior and exterior into 2 parts then recombine the maps into one. Along the way you will find you have to map parts independantly and then rearrange the uv's.

    With any model I would say look at it's natural construction, break it apart then reconstruct it.
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    Well, you lost me

    Yes, this in Max, and yes the high poly car is already created. I should have said, that both the high and low poly cars are going to be used, I just need to create a low poly car from this high poly one

    As for the rest for your reply, Im clueless.

    Any tutorials that you know that could help me learn this and am I going to have to unwrap the entire car?
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    What I was hoping to do is something like this, Is it possible?

    accustudio tutorial: Decal Mapping of Low Polygon-Count Models
  • System
    Offline / Send Message
    System admin
    The short of part of what I was saying is you should really upscale your design not downscale that way you leave many options open to you.

    Low poly first & save file. Create high poly from low poly & save new file, project high poly onto low poly.

    Yes you are going to have to unwrap the whole car, every face that is visible. It seems that a purely mental ray render and materials is out of the question so you will have to do this and substitute by using mental ray to create an ambient occlusion map for shadowing and then paint in or cut and paste the textures over the UV texture map to multiply as one layer against the ambient occlusion for that extra realism.

    There are no tutorials that I can think of that would show you this process with your particular scenario as reducing complexity in a high poly mesh to make a low poly version is difficult when you want to create an accurate normal map.

    The best advice I could give is to add a meshsmooth modifier then remove every other edge whilst checking with meshmooth on that the shape is still good. Keep reducing till you start seeing major changes in shape then you will know how far you can go to retain that detail.

    Example : bonnet seams are high res details, be concerned with the outline shape and not the minor detailling.
  • EarthQuake
    GCMP: What are you talking about man, he already stated that he has a highres model created. Telling him to create a lowpoly mesh and hten take it into zbrush to create another highpoly mesh.... Wah? Thats just confusing, he's already got step one done, create highpoly mesh.

    What you want to do is create a lowpoly mesh over your highres mesh, you can load the highpoly into the background and create a new mesh over it, or simple take your highres and start optimizing it down to your target polycount. I generally do a bit of both. Then you want use max or xnormal to project a normals map and ambient occlusion map onto the low res, texture it, etc. Theres plenty of tutorials on how to create normal maps if you look for them
    The short of part of what I was saying is you should really upscale your design not downscale that way you leave many options open to you.

    Thats a pretty backwards statement, you want to start HIGH and work down so you're not limiting yourself to the shapes of the orig lowpoly mesh, not the other way around man. You are limiting yourself MORE by "upscaling".
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    Thanks Earthquake, Would you mind looking over this method of attack and tell me if im on the right road here

    1. create high-poly version(done)
    2. Clone each object and optimize each one for low poly
    3. Unwrap all low poly objects
    4. create normal maps using render to texture method

    Does that sound about right? Also what about the windows im sure they have to be unwrapped, but im a little confused on if I need a normal map for them.

    Last question, Would you recommend using polygon cruncher for this or is it better to just do it manually?

    Thanks again for all your help
  • System
    Offline / Send Message
    System admin
    What I was explaining is the way I would do this for the future so that problems like this don't occour.

    I really can't understand you saying that creating high poly first is the way to go as that would be a definite backwards process and not forwards progress.

    I did mention later that reducing the complexity of the current mesh would be the best solution to actually ensure that the shape is kept rather than remodelling which would be less accurate.
    Afterall the single high poly mesh available is the reason for the request of help, had it been low poly there would have been clear scope available and little confusion.

    Each have their own methodologies - mine is to build the basic outline, cover all the contours and save the base mesh. After that add detail in stages, gradually refining the mesh till the end result is met for a high poly version.
  • pior
    Offline / Send Message
    pior grand marshal polycounter
    Are we in ignorance or in denial?
  • EarthQuake
    GCMP wrote: »
    I really can't understand you saying that creating high poly first is the way to go as that would be a definite backwards process and not forwards progress.

    You should try explaining this statement to the 80-90% of verteran artists on these boards that use this method then =P

    You want the end result to be as close to your high resolution mesh as posible, so you do this first(well, after a simple block out) and match your lowres to the high. Its pretty simple really, what if you find that what you modeled in your lowres is lame and doesnt look good on the highres? If your lowres is already finalized you cant change your shapes. This is a very limiting process. When done creating the highres you should have the end result clearly in mind, its impossible to say you will have the end result clearly in mind before the highres is even created.
  • EarthQuake
    Billabong wrote: »
    Thanks Earthquake, Would you mind looking over this method of attack and tell me if im on the right road here

    1. create high-poly version(done)
    2. Clone each object and optimize each one for low poly
    3. Unwrap all low poly objects
    4. create normal maps using render to texture method

    Does that sound about right? Also what about the windows im sure they have to be unwrapped, but im a little confused on if I need a normal map for them.

    Last question, Would you recommend using polygon cruncher for this or is it better to just do it manually?

    Thanks again for all your help


    Yeah that looks good.
    As far as #2, you should experiment a little. The two methods i generally use are these:

    1. Use my sub-d cage as the base for a low poly part, and remove edges/optimize to get it to the final result

    2. Recreate the shape from scratch.

    I generally do both of these depending on the complexity of the shape etc. If i my sub-d cage for a certain object happens to be a mess, it can be faster sometimes to completely recreate than to optimize. So play around with this a bit and see what tends to be faster for you.

    As far as using plugins to optimize, this can work, but generally will create a mess. So i wouldn't recommend it, but that doesn't mean you absolutely shouldn't try it.
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    I really can't begin to thank you enough. I'm sure I'll have more problems as I progress but this is a great starting point you have given me. Thanks again
  • IronHawk
    Offline / Send Message
    IronHawk polycounter lvl 10
    To add on to what EQ said sometimes it's nice to add a single sub d iteration on your cage and refine the mesh ( add an edit poly in max ) and use that as a starting point for your low poly. in silo I can just remove loops optimize and then start surface snapping verts.
  • System
    Offline / Send Message
    System admin
    EarthQuake Well I didn't realise that 80-90% of professionals did it that way, btw I'm not challenging you just explaining what works for me -: Through self discovery and tutorials I found that modelling the low poly using meshsmooth as accurately as possible, save a copy then convert to high poly and save that for exportation to create the high detail.
    Maybe I am lucky or just careful and avoid mistakes with low detail meshes, after a few years it kind of grows on you what works well is the way to go though I am open to new ideas and will give this a go sometime, when I have the time.

    haha pior, neither on this one but still learning like everyone on Earth!
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    Thanks guys,

    The intital model when I was done modeling was around 5 million tri's, after that I collapsed all my meshsmooths and started removing un-needed edges,which got it down to 1.8 million tris So basically what im going to do is go back through every object,clone them and start removing more edges again. Is that basically what you mean IronHawk
  • EarthQuake
    GCMP: Your method can work, obviously. But i feel that finalizing the lowpoly last gives a lot more freedom to be "loose" in your modeling with the highres, experiment, i really find it hard to believe that you model your lowpoly models with perfect proportions, perfectly scaled details and perfect silhouettes every single time without ever having the desire to change something when you get to the highres stage. I'm sure you'll realize this a bit more as you get more experience doing complicated highres objects.
  • Mark Dygert
    Yea, I kind of see why someone would attempt to use their base mesh as the low poly but so much normally changes its better to start the low from scratch or from the lowest level of the sculpting app.

    I'm not so sure I would waste time optimizing everything, it might be quicker and easier to just model out some new pieces around the existing high poly using tools like polyboost or Silo.

    If you're under the gun and don't have the afternoon to get used to Silo, then polyboost would be a good option, its a great addition to 3dsmax in general. But really at some point check out silo, its so nice, so fluid, so fast, and so easy to use.
  • IronHawk
    Offline / Send Message
    IronHawk polycounter lvl 10
    what i mean is taking your mesh smooth on your high to just 1 iteration instead of 3 or 4 and working from that. It's not always applicable though and sometimes it's easier to do what EQ said and just do a low over it.

    by adding 1 iteration the cage at least has some tension on the verts.
  • kary
    Offline / Send Message
    kary polycounter lvl 18
    Following up what Vig said: If you don't have Polyboost (or the budget for it) IllusionCatalyst is free. It brings much of what Polyboost does to the table. If you can't use plugins, just use face snapping to your high res and the regular tools. (Get Silo.)
  • pior
    Offline / Send Message
    pior grand marshal polycounter
    Hi GCMP. Here is a quick example showing where you technique can go wrong.

    We all agree that the goal when doing a highpoly model is to be as fast and efficient as possible, since this is the heaviest part of the asset creation process. Now imagine that you want some sort of hardsurface organicish shape in your highpoly, like a funky futuristic gun handle. So you make a lowpoly*cage* for that, preview it smoothed, and push and pull verts to affect the smoothed version for it to look like the provided concept/or the idea you have in mind.

    Problem is, when you look back at the lowpoly cage you will likely see spikes and even faces intersecting each other, because these act are control point. So if you use that lowpoly *cage* as a lowpoly *ingame mesh* it will not match the silhouette of the highpoly at all in some ares - even if it is it's source.

    This is why most of the time, it's smarter to get a fast, good looking highpoly result and then figure out the bast way to built it's ingame counterpart.

    Not saying that your method never works. It's just that if you stick with this method only you will run either into weird results (spikes) or a waste of time (trying to make the cage model work as an ingame model).
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    Thanks guys, I think I'll check out Silo now
  • System
    Offline / Send Message
    System admin
    Vig, EarthQuake, Pior. I have a great success with the complex and highly complex forms (mostly organic) using this technique but not so much with the basic. My only point of contention would be to trust a third party application/plugin to reduce my mesh density. Tried optimise modifier before and not had great results, I know it's pretty obvious that removing detail by hand is the best way of ensuring a quality outcome but maybe I should get my head around trusting into the unknown? Thanks for the insight, your words have not been wasted.

    GC
  • Slum
    Offline / Send Message
    Slum polycounter lvl 18
    With all the time you spend trying to take a highpoly mess of verts down to a usable level, you'd be better off starting from scratch. Unless your cage is really low res and you're relying on a bazillion smooth iterations, I'd image you would have one heck of a mess to clean up using that method.
  • Eric Chadwick
    This has been hashed over a few times in the past. Some more info, if it helps...
    http://wiki.polycount.net/Normal_Map#ModelingTheHighPolyMesh
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    I tell you what. I have got a lot of respect for you low poly modelers, This is some frustrating s%*t, not that I didnt have it before, but after really trying to understand this, i think ive contemplated setting my comp on fire a few times now
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    New problem,

    I have been trying to get this rim ,normal mapped and it hasn't gone so well. I can't figure out what I'm doing wrong. I modeled the low poly version, It's encompassing the high poly one. I unwrapped the low poly model using the normal mapping. and then when I rendered to texture, its giving me a lot of black. Any ideas why? I'm not really sure what other information I need to give, so if there is anything else let me know. I uploaded two images onto my server of all my settings. I hope it helps and thanks for any info


    www.billa1.com/images/pics/projection.jpg

    www.billa1.com/images/pics/unwrap.jpg

    -B
  • Michael Knubben
    Wait guys, I think we missed something really big here: Pior made a snarky comment!
    This is unheard of!

    Also, I don't know what could cause that. I don't generally create my normalmaps in max. Have you tried xnormal, just to see if the problem doesn't lie with max? And you're absolutely sure the lowpoly cage encompasses the highpoly entirely?
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    Thanks MightyPea, I gave the xnormal a try and I'm still getting weird results, any thoughts as to why?

    still_odd.jpg
  • EarthQuake
    That looks like uv problems there, how does your uv map look? You dont need uvs for the high res mesh, but you need yo have a good uvmap for the lowres.

    Edit, i see your uvs now. Its hard to tell but are they in teh 0-1 range? If they're outside of that range they wont work correctly. Also your uv is set up a little strange, you should try planar mapping the front and back sides of that object and then just using relax on them to make sure the sides etc are getting a good amount of pixels. As it is now those lugnut holes you have would be stretching on your uvs.
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    here is what the low res mesh looks like with a checker mat applied

    checker.jpg
  • EarthQuake
    Yeah that looks fine. Just make sure its in the 0-1 space, and also make sure the file you're exporting from max for xnormal is using the correct uv channel as well. Or that you've selected the correct uv channel in max's render to texture dialog.
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    Thanks so much earthquake, but I'm not really sure what you mean by 0-1 space, are you referring to LxWxH

    Oh your referring to the the box in the uvw unwrap editor
  • EarthQuake
    NP man, this is from modo but hopefully will show you what i mean. When uving for games you've gotta stick to the 0-1 space, anything outside that range will end up being tiles, and when projecting normals, anything outside that range will be ignore. Not sure if this has anything to do with your problems, but from your uv screenshot i couldn't quite tell if it was in the proper range =)

    01uvsqq7.jpg
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    ok I think I see now, I googled the 0-1 space for max and got this link from The area, so I squared out the 01 space of where my rim uv's are

    http://area.autodesk.com/index.php/forums/viewthread/12885/#68318


    www.billa1.com/images/pics/01space.jpg
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    OK I think I'm finally getting the hang of this now, One other question. I thought normal maps are suppose to project curves a lot better, they just dont seem to be doing that well on mine, I do have some mesh issues I need to address around the lugnut area, but I just thought the outer rim would look more round than it does

    issues.jpg
  • EarthQuake
    Try combining everything but the lugnut holes into one smoothing group and rendering again. You may have to bevel some edges for this to turn out right. IT can be a pain getting the right smoothing/amount of geometry in there to make the normals come out well with complicated shapes.
  • Eric Chadwick
    He should probably use object-space maps for this, no? Would avoid all the problems with normals. I don't know if Max supports rotating object-space-mapped models, but it'd be a quick test I think.

    It's going to be rendered in Max only, right?
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    yeah just rendered in max, but will be brought into an engine later

    So what are object-space maps?
  • Eric Chadwick
    Some info here.
    http://wiki.polycount.net/Normal_Map#TangentSpaceVsObjectSpace

    In Max's Render To Texture, go to the Projection Options dialog, and change it from Tangent to Local (IIRC).
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    Thank you Eric, Ive been using World so far, but I will try that, im also going to try and the smoothing thing Earthquake talked about
  • Eric Chadwick
    Don't use Worldspace, use "Local XYZ" (that's what object-space is called in the Projection Options dialog). If you use Local, you should set each model to use a single smoothing group, which will reduce baking errors along the edges of things.
  • EarthQuake
    What format has your client asked you to use, thats the most important thing. I'm sure they will need something specific depending on how they play to use it so you should ask if they havent told you. If they didnt specify i would assume they want tangent space maps.
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    Don't use Worldspace, use "Local XYZ" (that's what object-space is called in the Projection Options dialog). If you use Local, you should set each model to use a single smoothing group, which will reduce baking errors along the edges of things.


    Even if the single smoothing group gives it weird shading?

    smoothing.jpg
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    EarthQuake wrote: »
    What format has your client asked you to use, thats the most important thing. I'm sure they will need something specific depending on how they play to use it so you should ask if they havent told you. If they didnt specify i would assume they want tangent space maps.

    They haven't said anything about that, so I guess I should ask
  • EarthQuake
    Yeah, thats what a normals map is for. Right now you get wierd shading because oh how the normals are averaged(smoothed) but the normal map basicly replaces that normal smoothing data, per-pixel, to match the normals(poly direction) of your highres mesh.

    Sometimes with tangent space maps you need to add extra geometry, or use smoothign groups because of the way they work, but with object/world space maps you dont have these limitations, they just *work*. There are some other technical limitations that you need to keep in mind when using object, so make sure thats what the client wants before you go all out and finish your model with those types of maps =P
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    ok sending them an email now,

    I do want to say in the 5 years that I have been doing 3D, this is probably the most quick responded and courteous help I have gotten.

    Thank you guys for everything so far and kudos to this site
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    Well Local didn't work like I had hope

    smoothing02.jpg


    here is an image of my uvs in the unwrap editor as well


    www.billa1.com/images/pics/uvs02.jpg
  • EarthQuake
    If you're going to be rendering object space maps in max you have to make sure your material knows it object space, by default it thinks its a tangent space map. Not sure how to do this as i haven used max in a couple years, i'm sure someone else knows tho =)

    Your uvs arent very effeciant as they are now, if you could upload an OBJ of them i could show you how i would lay it out real quick.
  • Eric Chadwick
    Standard material, next to the Bump channel change 30 to 100, then put a Normal Bump map in that channel, put the normal map in the Normal slot, and change Method to Local XYZ.
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    I did have it at 100 to begin with and the normal bump was set on local, but at 100 it made everything dark as soon as I took it back to 30, it rendered out correctly.

    I just the reply email form the client who said they wanted all of them done with World. They also asked is it possible for to creat just a circle spline, collapse it to an editable poly and somehow or another, get an alpha map rendered for all the all the holes, is this possible? as well as a height map
  • Billabong
    Offline / Send Message
    Billabong polycounter lvl 16
    Well i figured out the alpha map, thats the best it has looked so far, just doesnt really show depth that well

    flat.jpg
1
Sign In or Register to comment.