kurnett
56612
3438
43
Step 1: Creating a base model.
In this case, I was making a barrel. Before you can move on to the fun stuff, you have to create a simple model to work with! There are a lot of 3d modelling applications to choose from (Blender, 3ds Max, and Maya are three well-known ones), but I used Maya. At this stage, it's important to make sure that the model's topology is good - that means making sure to only use quadrilaterals and to try to keep them as close to similarly-sized squares as possible.
Step 2: Subdivision and sculpting.
Next the model is brought into a 3d sculpting application, like Mudbox or ZBrush (I used ZBrush for this), and subdivided into millions of polygons so that you can sculpt finer details into it. This is why it's important to have good topology in the original model: if you don't, you'll end up with strange aberrations.
After the object is sculpted, the high-resolution version is exported to be used later on - you'll see why momentarily.
Step 3: Retopologizing the model.
Now we need to turn that 1,000,000+ polygon model into something that a game engine can use! To do that, we'll create an object very similar to the one in step 1. The reason we don't use the original model as the final version is that we're trying to minimize the number of polygons needed to accurately capture the form of the object - take a look at the top of the two models to see how the topology is different.
Step 4: UV mapping.
If we want to add textures to the object (and we definitely do), we'll need to do something called 'UV mapping'. Basically, we take the polygons of the barrel, peel 'em apart, and lay them out like a bear pelt (or should I say a barrel pelt, amirite). Then we can overlay an image on the 2d layout and the game engine will be able to render it all.
It seems odd that I haven't used the entire image to lay out barrel's UVs, right? That's because we're creating a thing called a texture atlas. It'll make sense by the end of this post.
We're now ready to export the low-resolution model. This will be the final version that gets used by the game engine.
Step 6: Baking maps.
You know that high resolution, sculpted model we exported earlier? This is where it comes back into play. I use a program called xNormal to bake maps from the high-res model (in other words, to take the details from that high-res model and convert them into a 2d image that can be applied to the low-res object).
I won't bore you with all the details, but again: I highly recommend reading up on normal mapping and ambient occlusion if you're interested.
Here's the final texture map! Specifically, it's an ambient occlusion map (basically a shadow map) and a wood texture. You can see that there are multiple objects in the same map (although it's not finished yet) - that's the texture atlas I mentioned earlier. Having multiple objects' textures in the same map allows the game engine to render scenes much, much faster.
And here's the second piece of the puzzle: the normal map. Normal mapping lets the game engine realistically fake how lighting affects little details - things like indentations, scratches, and warped surfaces.
Step 7: Putting it all together.
And there you have it! The final model with texture and normal maps applied in Unity. The scene is from a game I've been working on for a while, but it's nowhere near finished (which is why the background is incomplete).
If you guys have any questions about the process (or would like similar posts on related topics), lemme know in the comments.
If you're interested in modelling and/or game development, take note of the following:
- Unity is a very versatile, powerful, and easy to learn engine that's free to use for personal projects and some commercial endeavours: https://unity3d.com
- Blender is a free, open-source piece of animation software with a solid body of tutorials and how-tos: https://www.blender.org
- Autodesk Maya (which is what I use) has a free student version with all the features of the commercial version. Check it out: http://www.autodesk.com/products/maya
- Autodesk Mudbox is a 3d sculpting program. Like Maya, it has a free student version available: http://www.autodesk.com/products/mudbox/overview
- xNormal is phenomenal for baking all kinds of maps - textures, ambient occlusion, normals, height maps, you name it. Also, it's free! http://www.xnormal.net
MrMcCookieMuffin
I've only used blender before, it's an exciting new world for me currently.
afx82
This is so much more satisfying than when i made models for Half Life mods in the 90;s. Things have evolved since milkway (thankfully).
EmmaWatsonReference
Neat. Thanks bud.
Jcary13
You should try Substance Painter. You can bake out normal and AO maps from the high poly model and then paint directly on the low poly model
truthsmiles
Favoriting to never try later.
HandoB4Javert
3/D or 5/7 for soaking those logs in pixels.
kurnett
I would have soaked them in wood, but you work with what you've got.
Montablac
dont worry, the programmers added 'if(Item.IsWodden()){Soak.Wood(Item);]'
Summogod
I feel like a fool, I'm going to school for this and I do this stuff all the time but I never knew I could get FREE Internet points?!
kurnett
The fake internet points are there, man. People like hearing about this stuff, apparently.
luminaraunduli
Cool post! So you make a higher res one first and then dumb it down?
kurnett
Pretty much, yeah! The cool thing about modern modelling techniques is that you can flatten huge amounts of detail down into small sizes.
luminaraunduli
It just seems like a waste of so much work that goes unseen
kurnett
C'est la vie and all that. At least I get to tell everyone on Imgur about it. :P
IHaveUnusualPets
This is really cool showing people how it's done, but you did miss out PBR which is fast becoming the norm
kurnett
That's actually a good point I didn't really talk about materials, though - that could be a topic for a future post!
IHaveUnusualPets
Hells yeah :D More! Nice one
battleshit
I made a Max Payne level once which took place inside a big green pyramid I created. It was really shit.
Schloobles
Can you post it?
miragliotta1
JourneyEd.com and get the full 3 year version for like 10 bucks (2/2)
Ichqwertzu
Just a quick little tip: If your comment is too long, reply to yourself. That way we don´t have to search for the second, third etc. part ;)
miragliotta1
I tried lol. I'm on an Android and I couldn't reply to myself. Idk why
petgoats
AMD user here, thank you for not having 500,000 polygons on useless shit, unlike Crytek.
IalwaysupvoteKorra
The models didn't have that many polygons. They were added at runtime by a technology called Tessellation.
petgoats
I know that, but this means he can add tesselation and it won't murder my framerate as much.
Sumpte
Crytek's didn't either. Tesselation adds polygons dynamically, but yes, it's an intensive effect so will hit your FPS.
petgoats
The main issue was it was done with "help" from Nvidia, and love to murder and competing cards, their own included, with the effect.
zebzebzeb
Gonna use the space in the UV map for something else? I cried i bit thinking about all that lost space haha
kurnett
Don't worry, it'll get used soon enough. :P I haven't finished all the wooden assets for the scene yet.
miragliotta1
Btw all Autodesk programs are free for 3 years if you're a student but if you don't wanna use the educational version, you can go to 1\2
JustPraiseGaben
JourneyEd.com and get the full 3 year version for like 10 bucks (2/2)
JustPraiseGaben
(copied your 2nd comment so people don't have to search for it)
miragliotta1
Thanks. For some reason I couldn't reply to myself. On an Android phone
RedWhiteBlu
hell
Lifestyleoftheridgeandthefamous
Made me giggle. Thanks.
Scrimscales
Save yourself 700 $ and use sculptures, made by pixologic and is free to use. As for re topology from a high res model, instant meshes (1)
Meloncov
Scuptris is nowhere close to as powerful and versatile a program as ZBrush.
KaizergidorahXi
I'm a 3D design student and I had no idea we use both Maya AND mud on for stuff. Guess I'll be looking forward to that
Meloncov
Don't wait for your program to cover it! You're not gonna be prepared for a job if you just do your classwork.
kurnett
Seconded. Classes will help immensely, but start experimenting now just for the heck of it. You'll learn a lot and make some cool stuff.
KaizergidorahXi
Believe me, I will.
RyanLever
I use maya and love it
BurlRavenscroft
last I checked (10 years ago) zBrush exported maps fitted to models. Why not do that with a low-res model instead of rebuilding and mapping?
TalaayaCosplay
ZB doesnt always create what you want in a low poly model and personal preference may be the reason for using xnormal.
kurnett
I prefer the level of accuracy I can get by retopologizing in Maya. ZBrush would work, but it wouldn't be quite as precise.
TheEmperorOfMankind40000
I've done this and the only annoying part to me is getting the right texture.
Sumpte
It's a lot easier with applications like Substance (a bit crappy) and Quixel's dDo. It does a lot of the boring bit for you.
TheEmperorOfMankind40000
I'll look into those.
Scrimscales
Is a good free alternative. Obviously they are not as good as zbrush or topogun, but they get the project done. (2)
pizzamaneatspizza
Hi other CG artist
OceanOdyssey
Hello
kurnett
Yo
sauceTipPen
can i join the cg artist gang aswell? ;(
Sumpte
If you're learning 3D art, Unity is a horrible place to start. Unreal Engine 4 is free and has a much better toolset. Also, dat UV layout
Meloncov
Unreal looks great right out of the box. Unity can look good, but requires far more tweaking and plugins.
Lifestyleoftheridgeandthefamous
First engine I learned way CryEngine. I've had a hard time actually finishing a level in Unity or UE4 but I've done several in CryEngine.
Sumpte
1) CryEngine's good to get started with because it has plenty of sample assets, and outdoor levels are easy to make. Approaching it as an
Lifestyleoftheridgeandthefamous
Thats why I learned it first, tons of assets I could just throw around and experiment with.
Sumpte
2) artist is particularly horrible, though (not as bad as Source). The materials and workflows are set in stone, unless you know HLSL.
kurnett
I've found Unity to be a fantastic playground for new developers. I don't disagree that Unreal is a great engine, but don't undersell Unity.
Sumpte
Even with Unity 5's improvements, it still lacks a proper material and/or particle editor which makes it useless for learning artists.
Sumpte
And yes, there's Shader Forge (etc.) - but Unreal Engine has had this for a decade. It's a critical part of the art pipeline.
slicingupeyeballs
Neat. More please.
kurnett
Will do. o7 Is there anything specific you would want to see a post on, or should I choose another random game dev topic?
slicingupeyeballs
I likely will never put any of these things into practice, but I like seeing what makes the things I like tick.
cow042
How about making a human or creating animations like crouching?
kurnett
Creating a human might be a bit too much detail for an Imgur overview, but animation workflows - I can do that.
cow042
Thanks. Im in school for comp sci and in a game dev class so this overview was nice
sora3087
Omg I love this. This is my dream job and I just am not talented enough to do it. I work in development instead.
Zr388
Not a bad guide. Your uv mapping should completely utilize the 0/1 space in order to get the most from your texture work though.
kurnett
use the whole space, but game assets are a whole 'nother can of worms. (2/2)
BulletAnt93
Well he's creating a texture atlas. Meaning he'll create maybe another 9 assets to fit into the same uv space to reduce the amount textures.
Montablac
as a programmer, thank you for doing this. changing textures in memory is costly
kurnett
I use a 4096x4096 texture atlas, so the actual resolution is still decent. If I were rendering this out in Maya, I definitely would (1/2)
Zr388
Didn't think of that admittedly. When I did level design it was always requested one uv set per obj because of how finnicky udk is.
kurnett
Yeah, apparently (from my talk with another commenter) UDK handles materials way different than Unity does. I'm gonna have to look into it.
Zr388
Yeah. It handles each material as a separate entity. I suppose in theory you could group objects, but for the sake of simplicity.
Sumpte
1) Atlassing is standard practice in UDK and UE4. What they may have been referring to is the UV layout for lightmass, but in that case
Sumpte
2) you use two UV channels. UE4 handles that automatically these days, anyway.
Zr388
That's wicked. I haven't done much in UDK for the last few years, but I'm definitely out of practice hearing all this neat stuff.
LeftHandPanda
Blender is great. There are loads of tutorials online.
cow042
Any you would suggest for someone who has no 3d modeling exp at all?
Denvercoder09
Yes. It's mostly key commands so learning those will help and there are so many great tutorials to start and move forward
IHaveUnusualPets
CG Cookie, crying in fetal position, blender guru, etc
IHaveUnusualPets
Always upvote xnormal :D
Sumpte
As a Max user, I don't really understand why people want the hassle of exporting to another software suite?
kurnett
Mostly because I can't practically import a three million poly model from ZBrush into Maya, but xNormal can process that with no problems.
IHaveUnusualPets
As a Blender user..... that's my explanation, blender XD
Sumpte
Fair point. I just figure there must be a reason Max / Maya users use it as well, but I've never figured it out.
IHaveUnusualPets
To be fair you can get great results in Blender but you nearly always get great results in xnormal. It also does a load of things, is free
therealSKYKING
What an inefficient UV layout, you should be ashamed :/
kurnett
The layout assumes an indeterminate number of assets to be accounted for. It's not ideal, but it leaves enough room to work safely.
Meloncov
Just put things on separate maps, each using the full 0-1 space. You can combine maps later if you need to reduce draw calls.
therealSKYKING
I suppose I can give you a pass, though just about every modern game assigns layouts per model. Texture atlases are old school.
kurnett
Creating 0-1 layouts for each model would require a new material for each model, which would cripple performance (speaking from experience).
therealSKYKING
In my experience with Unreal, I've never had a problem having hundreds of materials. I guess you have a point for console or mobile games.
kurnett
Very interesting... In Unity, the number of draw calls skyrockets until the game won't even run on PCs. I'll have to look into that.
Meloncov
Not if you're using material instances properly.
kurnett
Sadly, material instances still result in an increase in draw calls. It ends up being the same as creating new materials.
Sumpte
No, having one layout for multiple (similar) models would be horrendously inefficient. Texture atlassing reduces drawcalls.
therealSKYKING
Read my responses to OP.
kurnett
Also, the actual resolution is 4096x4096. The individual assets still have a decent amount of resolution.
Montablac
WHAT, why are you using such a high resolution?!? the coders are going to kill you!
kurnett
Fortunately, I am the coders too. :P Really, though, 4096 is fine for most atlases. It takes up a bit of memory, but nothing too extreme.
Montablac
for a gods dam normal map tho? thats over kill in the extreme
kurnett
It's really not. Memory size is far from the limiting factor in modern video games.
angryeunuch
As someone who has been doing this for 15 years I can honestly say that uv layout offends me to my core. The rest is accurate.
kurnett
I'm really a programmer who dabbles in animation, so I know there's stuff I don't know about this. Would you mind PMing me about how (1/2)
angryeunuch
Maximize uv coverage. You only have so many pixels, so try to use them all. You'll get sharper textures and a cleaner normal map.
sipos0
Care to share what is wrong with it for the curious but uninformed of us?
kurnett
you would lay them out? (2/2)
IHaveUnusualPets
I'm curious as to why it looks like it takes up an nth of the space, must be the odd way this is being shown surely
Meloncov
They're leaving space to put other objects on the same texture map. Not how I would have done it.
IHaveUnusualPets
You reckon it's better to have the lower resolution per texture with the price of more draw calls?
Meloncov
It does depend on the project, but I'd default to one texture per asset unless there's a compelling reason not to.
IHaveUnusualPets
Good thinking, I'd do the same if it's anything that isnt a part of a modular construction set
Meloncov
Especially for something like a barrel that'll likely be reused in different contexts.
bolshevik09
I tried making a m3 with blender for starcraft. I opened the program and then cried, closed it and quit
Mulberryberry
Don't give up! Blender is amazing tool! Just take a look of few tutorials and you have a good start :-)
Cowchips
Blender has that effect on people. Just pirate Maya or 3DS Max, find a website that has good tutorials (like 3D buzz, or youtube), and 1/2
Cowchips
take it one step at a time. You'll also need to learn Photoshop for textures, and probably Zbrush for better textures. It's a long road.
bolshevik09
Well I'm pretty good at gimp. I've made a few textures but don't really understand the alpha and rgb values for nomad mapping
Lifestyleoftheridgeandthefamous
No need to pirate, auto desk has free student editions that are so easy to get.
PhaserRave
Take a tutorial, then it's easy.
bolshevik09
Which
PhaserRave
I can't recommend any specific one as I learned how to use it before they revamped the UI. Blender Cookie is likely to have a lot. (1)
PhaserRave
(2) Theirs were my favorite. Once you learn the UI, all of the other skills are transferable to any other 3D program, pretty much.
bolshevik09
See I tried following a specific tutorial but the whole gui was different and I was lost. Doomed for despair
PhaserRave
The current version is 2.77. Any tutorial which covers anything version 2.49 or before will be wildly different. Some things in early (1)
fhecrewdavid
I'm a professional 3D artist. Give me a shout if you have Blender questions okay?
BattlefieldCounterStrike
look at my most recent post. can i get an opinoin
fhecrewdavid
Hey man looks fun! You should take that texturing to the next level on the cheap! Quixel is on a massive sale for students!
fhecrewdavid
Also, I might use some variation in that grass. Check out Gleb Alexandrov's tutorial on grass over at YouTube.
Lifestyleoftheridgeandthefamous
Could I message you? I've been using blender for almost 3 years and I still suck ass. I feel like I'm going nowhere.
fhecrewdavid
Got your message. Lets talk about where your at and where you wanna be, alright?
bolshevik09
So I want to make a complex shape, no bones or animations. What is a good tutorial for blender that is updated.
fhecrewdavid
Masterxeon1001, Gleb Alexandrov, Blender Guru, and Tutor4u are all good channels on Youtube.
JaxAndHisLampPost
Blender is the most unintuitive 3D modeling software. But it's gotten better.
tokomak
But have you tried 3DS Max. OH GOD WHY.
RandomAbscessMemories
See, I learned how to use Blender, and now every other 3d program just feels clunky and awkward. You have to click so many things!
kurnett
Hoo boy, the horror stories I could tell about ZBrush. It makes sense once you get used to it, but getting there is a pain in the ass.
fhecrewdavid
As someone who used Maya for years Blender is the best and certainly the best for beginners.
kurnett
If you do that enough times, eventually you'll keep the program open and not quit. Don't let your dreams be dreams, man.
RunsWithShortShorts
Don't let your dreams be memes!
Different55
^this is how I got used to blender. Took me like a decade of opening and closing it until I didn't really get the hang of it. Now I can 1/2
Different55
use it pretty well but I'm not an artist so it doesn't do me much good. ¯\_(ツ)_/¯ 2/2
kurnett
'Not an artist'? Your ability to use Blender disagrees. :P Don't sell yourself short.
lighterletter
Can't you do most of this stuff in blender alone?
kurnett
You can, actually! However, you'll typically get a better result using the applications created specifically for one task (1/2)
kurnett
(ZBrush for sculpting, xNormal for baking, etc) rather than one general-purpose program. As with anything, though, skill trumps power. (2/2)
lighterletter
Thanks for the awesome response.
Westly
Can...I just, like, give you a cyber hug for this comment? It reminds me it's okay to close it and have a cry, but always open it again.
bolshevik09
You can hold me all night long
shoutuckerfatheroftheyear
Let them be night terrors and sleep paralysis
TheCommunistManifesto
Laughed too hard at this then I should have.
IMadeThisAccountForButts
Dreams! By Radon Randell.
HalfCat00
I've tried to learn Blender since I was 11, and now I finally made a model of my room. I'm 16.
kurnett
That's awesome! You have a huge head-start on all the other aspiring animators - keep at it.
Bombideer
That's what I did with FL Studio. I'm a musician who wanted to create. I gave up years ago. Thanks for inspiring me to re-install.
kurnett
Don't give up! Life's a crapshoot, but the only way to really fail is to stop trying. Whatever you do, keep composing.
ozjuggler
I'm not a musician, that's probably why I found FL Studio fairly easy to make music with. Not good music, but it *was* music.
Bombideer
For me it was mostly learning how the software worked. I knew next to nothing and let that be my excuse for stopping. Thanks
inspiringandfunnyusernamecoolheh
When I was at highschool I used to map my parents house as a cs map, my friend mapped his parents home, and the third mapped the school.
bolshevik09
I used Hammer to map a job site I was working at. It was to scale according to the blueprints
bolshevik09
Btw do you still have it?
inspiringandfunnyusernamecoolheh
nah, it was for an old cs before source and go, friend might still have it, but tbh honest the house maps were ok, schoolmap is gone.
bolshevik09
oh ok i c. Yeah good times
inspiringandfunnyusernamecoolheh
He could not map the entire school, it was too big, he partmapped it, but it was never really playable (and that was the whole point)