On a recent weapon I'm making, the stage of screws and their holes came up.
Originally, I used to model them straight on the highpoly (subd) model, but I find that very time consuming.
Below is a solution I'm currently trying out, which ID Software used on doom3 to cut down production time.
Basically you model the screw hole as a floating piece of geometry in front of the actual highpoly - due to the baking process the final result would seem as if the hole/idents were attached to the actual model.
I've also tried doing the screws via normalmap painting, but the results were pretty subpar - anyone had good results with that solution ?
Replies
It's even better to build up a "library" of common pieces (screws, bolts, rivets, generic detail) that you can use again and again - just import into your scene and make "instance" copies of them wherever needed, so if you change one you change them all.
its also easy to build a library of normals for things like that to overlay directly on you PSD.
[/ QUOTE ]
Only useful if you're using tangentspace maps, though.
Having a library of actual model pieces is best overall I think. Since you can apply those to any model you're using for objectSpace maps as well.
Some clarification from someone else more knowledgeable on the subject would be really great, though.
Compositing in photoshop is generally a bad idea, for a number of reasons. One big one is that if your uvs arent perfect, your details will get distorted, so while it may work on a flat level texture, if you have a more complicated unwrap you're likely to not have perfect uvs, and you'll likely not have perfect texel distributuion, so a screw thats 4px4px somewhere on the map might not be the same size. If you take into consideration you'll have to deal with all of this bullshit its much easier just to model these things. Also if you only have pre-generated images, you couldnt do something like rotate a screw around, as the normals would be fucked.
[/ QUOTE ]
EXACTLY. Thats why I have always just had multiple files with screws, bolts, other details.
Kind of anal but I went through the hassle of putting a small document together that showed what each one looked like so I could just grab it quickly when neeeded. Makes things much quicker.
you couldnt do something like rotate a screw around, as the normals would be fucked.
[/ QUOTE ]
It's not much, but you can rotate normalmaps in 90 degree increments.
I made some photoshop actions for that: http://zarria.net/PhotoshopNormalTransforms.zip
I haven't tried this, mind you. It just seems like something that might work.
Any of you guy have a solution for getting rid of the AO problem with floaters? Specifically the shadow it creates around a floater's edge?
[/ QUOTE ]
I came up with a bit of a hack for this. I personally dont think its really worth the time spend to do this, but here goes(much easier to paint out the wierdness, takes like 10 minutes max). Create a mesh that has the highres and the floating bits each with a different color, like black and white, either by uving or material system in max. Render that map onto your lowpoly as a diffuse map. Seperate Floating bits from highres bits. Render 2 ambocc maps, one with from the highres, the other from JUST the floating bits. At first the floating bit map will look fucked up, but you use the first diffuse map you generated as a mask for this texture, and multiply it onto the ambocc generated from the highres mesh. You may want to blur the mask a little or something, iirc.
http://www.scriptspot.com/3ds-max/advanced-painter
It works in Max 9, I use it at work all the time. It lets you select a piece of geometry as a "brush" and then paint it onto another piece of geometry - so now those 20 screws you wanted to put around are all properly aligned to the surface normals of whatever you're modeling - makes it very easy when the floater needs to sit on top of a face that isn't axis-aligned.
I just paint out the amb-occ errors, myself. You could group all your floaters together and hide them for your ambocc bake, but then you won't get the shadows in the divots - its really easy to paint out of your ambocc bake.
You could group all your floaters together and hide them for your ambocc bake, but then you won't get the shadows in the divots - its really easy to paint out of your ambocc bake.
[/ QUOTE ]
You could do a separate AO pass on the floaters and merge everything in Photoshop, though it's probably not a big speed gain over fixing things manually.
If not then I must find a way to make it so... 'cause a workflow that involves painting out errors around every rivet just can't be the best answer.
Good for things like screws and bolts when you dont want to render out a normal map. Has the same limitations as EQ pointed out, though.
It's even better to build up a "library" of common pieces (screws, bolts, rivets, generic detail) that you can use again and again
[/ QUOTE ]
Just as a thought: What about releasing such a library under a creative commons license (as little restrictions as possible would be probably best, e.g. CCA), so that it can be improved and enlarged by a big group of people?
(I would be happy to host it on our FGA page btw)
Surely rendering displacement from your normalmap and baking AO from the displacement is easier than manually painting out errors?
If not then I must find a way to make it so... 'cause a workflow that involves painting out errors around every rivet just can't be the best answer.
[/ QUOTE ]
The baking displacement option dosent really seem to be very good, atleast it wouldnt work in my workflow. If you're using something like xnormal to render your maps, which doesn't support applying a displacement map. Not to mention if you have an object space map, crazybump wouldn't support that either. And at the same time that seems to be on par with rendering 2 maps, in terms of just being a hassle to have to do. Now i havent actually tried, so i'm just playing devils advocate here.
[ QUOTE ]
It's even better to build up a "library" of common pieces (screws, bolts, rivets, generic detail) that you can use again and again
[/ QUOTE ]
Just as a thought: What about releasing such a library under a creative commons license (as little restrictions as possible would be probably best, e.g. CCA), so that it can be improved and enlarged by a big group of people?
(I would be happy to host it on our FGA page btw)
[/ QUOTE ]
Thats a great idea, and i would definately contribute. The only snag i could see is with many people having contracts with the companies they work for that would make this impossible to do(places that say EVERYTHING you do is thiers).
The only snag i could see is with many people having contracts with the companies they work for that would make this impossible to do(places that say EVERYTHING you do is thiers).
[/ QUOTE ]
This is a bit off-topic but needs to be said:
Those things are abusive. Never sign them. When an employer asks you to sign something, read it first and strike any words that give them more than they're paying for. If they aren't paying for a 168-hour work week, don't give them one.
Scan the contract to your PC, remove the evil clause, and print a nice new contract for your employer. I've done this myself and never had an employer object.
You could probably have a library with all works donated to the public domain and thus basicly have no credits. But this would be a legal gray area for those donating work (and have such a contract).
In addition it would also be less ideal for those using the models for (commercial) work as the legal status of these works in the public domain can be not as precisely defined as with a creative commons license.
But does such a contract really affect that many people around here?
I suppose she could hide weekend projects behind a pseudonym. Seems like a degrading position to be in, though... unable to claim her work or put it on her resume.
Amusingly, those contracts hurt employers most of all. They scare away the best talent.
edited in light of Vassago's good point about asking an employer's permission.
Though the contract I signed stated that ANY art I created, on or off hours, was theirs. It's really a person to person deal. You have to talk to them about it.
Studios won't usually mind changing a contract to keep an employee happy. But still, the easiest time to change it is before signing ;)
Ryan, painting out errors seems to be a necessary step no matter what your workflow, so hitting the AO corrections just adds a minute or two, it's really just a quick step that I don't foresee having to go away anytime soon. Sometimes there aren't even any errors, just things you want to manually adjust to look better, even if it makes the lighting or normals "wrong".
Model highres,
Model Lowres/uv
Seperate highres and lowres so there arent any intersecting meshes that should be, so the maps render out clean.
Render AO/Normals
Put the lowpoly back together, or generally i have a saved copy before i took it apart. And Render the AO just from this low poly mesh.
Combine these 2 maps so you get all the fine detail AO, as well as the large detail AO from parts intersecting and whatnot.
And then paint out the sections on the 2nd AO map where there will be moving parts and baked in shadows would look strange.
Finally bake a little bit of a gradient, usually darkening up the ends towards the barrel and the buttstock to give the place that will be closest to the view the focus.
The idea would gain more traction if a reputable site such as Polycount hosted the library.
If that isn't possible, we can all chip in some code and webspace to throw together a distributed, interconnected repository. In other words, if we each build a page on our sites dedicated to the idea and link to everyone else's pages (sticky the post that holds everyone's links), I'm certain we can build quite an indispensable resource.
It'd be a good idea to settle on a standard format to make organization uniform and simple across the board.
(Or one person could host all kinds of screws, another bolts, another switches, etc..) Thoughts?
Since we've been coving some much on AO, i'll explain my workflow a little bit. I do this on FPV weapons atleast.
Model highres,
Model Lowres/uv
Seperate highres and lowres so there arent any intersecting meshes that should be, so the maps render out clean.
Render AO/Normals
Put the lowpoly back together, or generally i have a saved copy before i took it apart. And Render the AO just from this low poly mesh.
Combine these 2 maps so you get all the fine detail AO, as well as the large detail AO from parts intersecting and whatnot.
And then paint out the sections on the 2nd AO map where there will be moving parts and baked in shadows would look strange.
Finally bake a little bit of a gradient, usually darkening up the ends towards the barrel and the buttstock to give the place that will be closest to the view the focus.
[/ QUOTE ]
Yep that pretty much sounds like my work flow for recent fpv weapons i have been working on. Haven't really got much to add to that as it's the easiest flow i have found that works good for me.
The space would be on a dreamhost server. PHP is available so it could be a wiki or something like that. The project could use its own domain, or it could use whatever.zarria.net or whatever.crazybump.com
I'm not volunteering to run the site or anything, but I'm happy to provide space if it would be of use.
Model some then, doesn't take long
[/ QUOTE ]
But, but, "I don't have time"^TM
Btw does it really need an entire website? Seems a bit like overkill.
I guess it should be enough to simply start a new thread in this forum (sticky would be best) and regulary compile all the contributions into a single archive, which is then mirrored on several sites (including FGA) to prevent loss of data.
Edit: Besides, if someone already has a bunch of basic screws and bolts why should I duplicate his work, instead of improving upon. Isn't that the basic idea of it all anyways? Yeah sound a bit like: "why should I work if someone else is doing it already"; but that is really too short sighted
I am guessing that because each loop would be at a slightly different angle then the first method would not work.
instance the geometry, space it along a spline if you need a lot of them, use advance painter script if you're using max to place them by hand, or simply the align to normal tool.
Basically, someone will email me a zip file with whatever necessary files (in this case it'd just be an obj), along with a render. I upload the file to an http location (so, www.repo.robg3d.com/files/screw.zip ). I make a post in a forum or thread (since this is simple it could just be a locked thread), and in the post is the render, the http link, and keywords from a keywords list (flathead, phillips, rivet, screw, bolt, hex, etc.). This keywords list is in the first post or another thread, so people can just look for certain keywords, then search the forum for those keywords and they will return matching posts and can easily see via the screenshot if its what they are looking for.
It may be simpler to just upload and download all the files en masse in this case because they are going to be so small. But some sort of standardization and organization is always nice.
I too can offer space, as I too am on dreamhost, and they have huge bandwidth and space allottments and have good uptime, but of course, they are slow (which doesn't matter much for small files like this though).
For small piddly stuff I like to keep control of what i am doing in pshop.
I will post some images tomorow
I am using tangent space normal maps BTW, thanks for the tips anyway MOP
the belt loops do parallax little but other wise fine.
BTW loving crazy bump.I got the environment guys at my last place using it too
Then end-users can subdivide them to whatever level they want.
http://www.twcenter.net/forums/showthread.php?t=113650
The password to the forum is warden
I'll add the hardware for the lorica segmentata I've been working on tonight or tommorrow.
Feel free to upload your obj's or send them to robg@robg3d.com
I hope everyone is alright with my doing this, if not, speak up.
BTW if anyone has other generic high-poly objects or bits, feel free to send them over.