Author : Lonewolf


Reply
Reply
 
Thread Tools Display Modes
ZacD's Avatar
Old (#26)
Congrats on getting a banner!
Offline , polycounter, lvl. 13, 7,244 Posts, Join Date Jul 2009, Location Columbus Ohio Send a message via MSN to ZacD  
   Reply With Quote

killingpeople's Avatar
Old (#27)
Great job man.

"After all these years it is finally brought to life……Brings a tear to my eye…"
Victor Lee
draw without greed
Offline , veteran polycounter, 3,993 Posts, Join Date Oct 2004, Location california Send a message via ICQ to killingpeople Send a message via AIM to killingpeople Send a message via MSN to killingpeople Send a message via Yahoo to killingpeople Send a message via Skype™ to killingpeople  
   Reply With Quote

r_fletch_r's Avatar
Old (#28)
Wow, thats beautiful! The lighting is stunning. reminds me of Jeremy Vickery's work
Offline , veteran polycounter, 2,970 Posts, Join Date Feb 2010, Location Ireland  
   Reply With Quote

throttlekitty's Avatar
Old (#29)
fokk!
Offline , polycounter, 954 Posts, Join Date Dec 2008, Location South Dakota Send a message via ICQ to throttlekitty Send a message via AIM to throttlekitty Send a message via Yahoo to throttlekitty  
   Reply With Quote

Ark's Avatar
Old (#30)
Awesome work man. Love the lighting and atmosphere.

Are you using parallax on the floor or is this modeled?

My only niggle is the roof texture seems a little bland in comparison to the rest of the environment.
Offline , dedicated polycounter, 1,416 Posts, Join Date Aug 2009, Location UK  
   Reply With Quote

Darkrusader's Avatar
Old (#31)
Hey guys! Thanks for all the great comments and feedback! Its been really overwhelming and totally unexpected. Again, a big thank you to Blizzard and Victor Lee for the epic material to work from! And all of you who have been posting your techniques over the years. Communities like this are a treasure trove of information!

KP - Man, that makes me so happy that Victor dug the piece! You guys are kicking ass over there! So much inspirational art coming out of Blizzard!



I just wanted to talk a little bit more about my workflow on this project. My goal was to create a level with a very painterly feel. Ive been using zbrush for about a year and a half. I started really dabbling in polypainting about 5 month ago. I really dug the look I was able to get when I would sculpt and polypaint. After playing around with it I decided I should try to create an entire level construction set with this technique. I searched around for some cool concepts and the second I saw Victor's Tristram Tunnels I knew that was the one. Ive always been a huge Diablo fan as well so I was double amped on this! My goal was to really try and capture the essence of the concept piece. There is so much subtle detail and story here. Often this subtle detail and story is lost when creating 3d versions of concepts. I wanted to avoid that as much as possible, maybe even push that story and detail even more if I could.

But that was only half the battle. I wanted this to be very optimal for game use as well. Ive been working in Unreal for a long time. I knew I would need to break this down in the smartest way possible. Modular is the way to go with Unreal tech. When creating construction sets for levels, it is always my goal to have as few unique props as possible. Memory takes a huge hit for every unique prop that you add to your level. The best way to work is through instancing your geometry. You take the initial hit for your unique geometry, but then every time you duplicate it around you will be only taking on a very small fraction of that.

So it is really about the classic game artist balancing between trying to capture the subtle detail and story of a concept and being smart about how you use your geometry and texture space.

Well, i got to run...going to be late for work! haha.... A further breakdown will be coming this weekend! For now I just wanted to show a screenshot of all the props that I created for the construction set. You can think of these as the lego pieces I built the whole level out of. Thanks again everyone! If you have any specific questions, feel free to ask. Hopefully most questions asked will be answered in the breakdown later!

Offline , vertex, 48 Posts, Join Date May 2010, Location Newport Beach, CA  
   Reply With Quote

Darkrusader's Avatar
Old (#32)
I wanted to start the first breakdown with the prop that I started this whole project with. The floor bricks. No two props were created exactly the same way, but there is a definite flow on how I work the asset through the pipeline. Here is a little visual aid to explain how I went about creating the floor bricks. Hopefully it communicates my process in a clean concise manner, but if it is confusing I will explain more below



The following is a much more in-depth breakdown of each step.

Step 1 - The Block in - Sometime I like to start my model with a blocked in base mesh created in 3ds max. The most important thing to keep in mind at this stage is that the model is created out of as close to even quads as you can. Do not worry about polycount at this stage. There are multiple stages of polygon reduction that can occur later on. Right now we need to make something that will sculpt well in zbrush. I created the block in with this shape because I dont want tiling to be evident at all. I will have top and bottom of the bricks uniquely textured so I can flip the model upside down and get totally unique looking bricks, while still keeping only one instance for all my peices. By giving it this shape I will further reduce the tiled look. I just fit them all in together like little lego peices.

Step 2 - Subdivide - The mesh must be subdivided well to be sculpted on. Ctrl D to divide. Make sure that when you first start to divide the mesh you turn smooth off or you will get a dough ball from your geometry. I like to subdivide a few times then turn smooth on to get a small beveled edge. I find this ideal for sculpting because the brush will catch that edge nicely when it comes to the next stage.

Step 3 - Beat it Up - This is a very fun stage, maybe the funnest. This is where you just go to town on your object. For this particular prop I started off with a bit of noise (see zbrush tutorial on that). I used that noise to guide me in beating it up even more. I wanted to really push the weathering and damage on these things. This is really where you are telling the story of your prop. So much can be said non-verbally through this process. All those little details you add in here will help in creating a much more immersive environment. Brushes I tend to use here are Clay Tubes, Trim Dynamic, and Move. Maybe a little planar flatten as well to handle unwieldy areas. *protip - Learn your brush hotkeys or set up your interface to pick brushes quickly. It will save you a lot of time in the long run!

Step 4 - Rinse and Repeat - Once you get a good luck going on one of your bricks, recreate that look across each brick. What I like to do is time myself, and try to do each one a bit faster and a bit better. You will learn little tricks on each model you experiment on that will speed up the next one you do.

Step 5 - Polish it Up! - I started feeling like things were getting a bit too noisy so I started to polish up each brick. Work in layers while doing this! it will allow you to experiment more freely because you can quickly get rid of changes or change the intensity of them. This is the stage that I think shifted it from a more realistic looking brick to a more painterly one.

Step 6 - Polypaint it Up! - Now I must preface this and say that this prop was one of the first models that I ever polypainted and it kicked my ass! I was trying to figure out how to control my strokes and not have it look like a bloby mess. I dont know how successful I was. This was the goal of the whole experiment, to master poly painting. Two things that I didnt do here that I learned to do in my other props. 1 - practice painting while you sculpt, you can get some amazing results with this. I will show more on that in later breakdowns. 2 - Masking by cavity! It is amazing! You can do so much with it. Again, more on that later when I actually used it.

Step 7 - Polypaint all bricks - This stage is just repeating what you did across all of your sub-tool bricks. Pretty straight forward

Step 8 - Lower SubDs and Create UVs - This is a stage that many, including myself when I was first learning can find confusing. Lowering your sub division levels will make this process go much faster. Delete UVs if you already have some. I like Pack UVs (PUVTiles). For this asset, I did a unique unwrap for each brick. Might be overkill, but it doesnt really mater because this is just so you can export out your polypaint. Your real unwrap will come later and these packed UVs will bake onto them

Step 9 - Higher SubDs and create Texture from Polypaint - This is another potential hangup for some people. We need to get that polypaint out zbrush so we can bake it in. Crank up your res to the highest and then hit new texture from polypaint. Then clone texture. This will move it to the texture window.

Step 10 - Flip Texture in V and export - I would export this to the same folder as your geometry. Make sure that you flip your texture or else it will look like a pixalated mess. You can now export your geometry as your High Res mesh.

Step 11 - Decimation Master! - This is a critical step in converting your zbrush model an optimized game prop. Just choose how many polys you want it to be and decimate. I brought each brick from about 2.4 million to 500 tris. The beauty of this is that your decimated mesh will look almost exactly like your high res mesh! You will then export this geometry as your low res mesh.

Step 12 - Unwrap - I used headus UV Unwrapper. It is a kick ass tool that shaves off massive amounts of time when unwrapping. If you dont know about it, you should go to the site and watch the tutorials. you can get a free trial as well.

Step 13 - Add High Res Geo to X-normal - Also dont forget to add your polypainted textures to your HR meshes as well. This is how you will get them to back on to your low res mesh!

Step 14 - Add Low Res Meshes to X-Normal - You can use the ray distance tool in the tools section to get an accurate min and max distance for baking. Usually default will work pretty well because decimation is so close to your original model.

Step 15 - Bake your maps! - You can do a test back first at 512 with no anti aliasing. If you see anomalies then you can play with your ray distances. Once your 512 looks ok, you can just crank up the 2048. Bake your final at 2048 and with a 4x anti aliasing. Check Normal, Base Texture, and Ambeint Occlusion

Step 16 - Open normal map in Crazy Bump

Step 17 - Get diffuse map generated from normal map in Crazy Bump. You can use this to really pop your edges in our diffuse map later. Just multiply it in!

Step 18 - Used baked maps to generate Game Textures - Here is where you combine all your bakes to make the textures that will go on your object. On this prop I did a lot more hand painting in the photoshop file just because I was such a polypainting newb! I got it down with the later meshes though so I weened myself from needing to do that. Not that there is anything wrong with painting in photoshop. You get a great base to work from if that is the workflow you want to do!

Step 19 - Bring it back into 3DS Max and Export to Unreal! - This is the final step. Import the model back into max. You have another oppritunity at poly reduction if you would like. ProOptimizer is another kick ass tool that will reduce your polys perfectly. Just tell it how much to reduce. But dont forget to check on Keep Textures! It is off by default. If you forget, you will lose your UVs!


So that is the basic path for the bricks. I will break down other stuff this weekend. I hope this helps someone out a bit! Feel free to ask any questions!
Offline , vertex, 48 Posts, Join Date May 2010, Location Newport Beach, CA  
   Reply With Quote

sampson's Avatar
Old (#33)
thanks for the writeup. standard technique i suppose (not saying that in an offensive way or anything) but very well explained
Offline , polygon, 603 Posts, Join Date Nov 2008, Location Sydney, Australia Send a message via MSN to sampson  
   Reply With Quote

haiddasalami's Avatar
Old (#34)
Would definitely like to see a breakdown of the polypainting on a more complex model...
WebGL Project - In a state of constant flux so might be down when you check it. Pretty old now.
Junior Technical Artist at Digital Extremes.
Online , dedicated polycounter, 1,881 Posts, Join Date Nov 2009, Location Toronto  
   Reply With Quote

tyl3r's Avatar
Old (#35)
Wow, breakdown was great, helps me out a lot! Keep up the strong work, it's inspiring!
Offline , line, 61 Posts, Join Date Aug 2009, Location Canada  
   Reply With Quote

luke's Avatar
Old (#36)
great work man, the scene has a really nice cold feeling to it
Offline , polycounter, 773 Posts, Join Date Sep 2009, Location Cambridge, England Send a message via MSN to luke  
   Reply With Quote

slave_one's Avatar
Old (#37)
Great work, great posts! thx Dark
Offline , spline, 139 Posts, Join Date Aug 2005,  
   Reply With Quote

PatrickL's Avatar
Old (#38)
Really awesome job, Dark. You deserve a medal for these step-by-step guides.
Offline , triangle, 450 Posts, Join Date May 2010, Location Tennessee  
   Reply With Quote

Darkrusader's Avatar
Old (#39)
Glad to hear you guys are diggin the tutorials! Let me know if you have any questions and ill do my best to answer them!

The next breakdown is of the gargoyle at the base of the stairs. It was done 100% in Zbrush. It was my first real attempt at zsketching out a more complex shape. In all honesty it kicked my ass. When I was done zsketching, I thought there is no way I will be able to salvage this mess. I forged ahead anyways figuring I can always start over if it was that bad. I ended up really beating it into submission with some heavy handed sculpting.

The number one thing about Zsketching is that when you use a unified skin on it it turns into perfectly spaced quads, ideal for sculpting! Here is a breakdown of the process I took.



Step 1 - ZSphere -I wont go into detail on how to start a Zsphere armature because Pixologic does a fantastic job of doing that themselves, which is where I learned! It is AMAZINGLY fast to get the basic shape of your model in with this technique.

Step 2 - Zsketching - is a process that you can only do when you have a Zsphere armature to sketch on. Again, to learn this go to pixologic's Zclassroom and they will let you know all you need to know to start sketching away. The idea was to try and sculpt out the musculature and body land marks as close as I could to the painting. This was the model i taught myself zSketching with. The base coat was done with sketch 1 brush. It is almost as though you are painting on globs of clay to your model. I tried to experiment with every brush to see what they all did. I found that I was using the move tool almost as much as the draw (sketch) brush. You really want to get as close as you can to the shape you are aiming for before ending this stage.

Step 3 - Unified Skin - creates a new mesh based off of your ZSketch. This is where the power of this technique lies. It gives you a perfectly quaded mesh that is perfect for sculpting! You can try this at different resolutions to get different results. Some lower end computers might not be able to handle higher res skins, but low ones are pretty damn accurate. I believe the one i did was 256.

Step 4 - Subdivide - This step is pretty straight forward. Subdivide that pixolated mess so we can start sculpting.... And we will need to do some sculpting.... Look at that ugly face!

Step 5 - Fix Ugly Face - I target that face right away. It is horrid! At first I thought there is no way I will salvage this mesh. But I went on anyways. Using Polish, Claytubes, and Trim Dynamic brushes I beat that face into somthing a bit less grotesque.

Step 6 - Polish Geometry - Now I start going to the rest of the body. I search for planes wherever I can and and polish them out to be even more planer. I also added on a torus that I will sculpt into his bracelets. At this stage I started to see some rays of hope that I could salvage this guy after all.

Step 7 - Fill Color - I choose a base color for each part and fill the whole object. Think of this as your base color coat of paint on your object.

Step 8 - Sculpt / Paint - Now this is where I really started to have some fun with the model. I started carving out chunks of detail with my claytubes brush, but I turned on my RGB on the brush and chose a color that I imagined would be under the chipped surface. What we are doing now is sculpting and polypainting at the same time. I am a huge fan of this because you will get a perfect correlation between your sculpt and your painted texture.

Step 9 - Mask By Cavity - This technique is fantastic for the later stages of polypainting. Under masking you can mask by all kinds of different functions. I love masking by cavity because I can paint all my little nooks and crannies one color and my high points another color. You can get hardcore with this technique too by sculpting and polypainting while masked by cavity! Experiment away with that masking!

Once you are done, UV and export your high res mesh and polypaint texture as described in the last tutorial. (steps 8-10 on brick tutorial)

Step 10 - Decimation Master - Good ole decimation master gets my model down from 1.5 million quads to a game friendly 2800 tris. In this case I wanted a continuous low poly mesh so I used Pro Boolean (union) in 3ds Max to combine the bracelets with the body.

Step 11 - Unwrap - Unwrap the mesh in your favorite Unrwapping program. I perfer Headus. Be smart with your UV space. It is precious in games. The red thing you see in the unwrap part of the mesh hidden in the banister geometry so I shrank it down. Headus turns objects red if they are squashed, but I was OK with that here. I did not want to get rid of it completely incase I did a more beaten up version of the banister and that part was exposed. I could have probably broken this up better, but I was trying to keep everything kind of close so I could paint in photoshop if I had to.

Step 12 - Xnormal - Just like the brick tutorial, Place your hi res mesh and polypaint in the Hi mesh section and the low poly in the low poly section. Set your settings and bake away!

Step 13 - Create Textures - You should get some awesome bakes out of xnormal which you will now combine up into your final game textures. I multiplied my AO on top of my baked base texture to create my diffuse map. I tweaked with some level adjustments to get my spec. Normal looked pretty cool right out of the box so I just left that.

Step 14 - Export to UDK - Just bring your low poly mesh into your favorite 3d modeling package and export out as an ASE or FBX.


That is it for the gargoyle. I really tried to capture the emotion that was conveyed in the concept. That was really important to me because it sets the emotional undertone for the whole piece. Miss that and you miss the whole scene. I saw it to be almost the look of abhorred awe. I did my best to capture it in the 3d version.

Hope this helps!
Offline , vertex, 48 Posts, Join Date May 2010, Location Newport Beach, CA  
   Reply With Quote

MoP's Avatar
Old (#40)
Very cool, thanks for sharing all of this information

Personally I'm a little surprised you used the Decimation Master mesh as your final lowpoly, I guess it saves a lot of time but I feel like the mesh could have been cleaner and "cheaper" if it had been done by hand.
However, I'd usually do that from the "base mesh", which in this case doesn't exist since you worked from ZSketch

Interesting stuff!
Offline , MoP, 11,604 Posts, Join Date Oct 2004, Location London, UK  
   Reply With Quote

teaandcigarettes's Avatar
Old (#41)
Thanks a lot for these Darkrusader; it's nice to see that even your HP sculpts have that nice, stylized look.

While I do agree with MoP about the low being slightly messy, I tend to use Decimation Master/Meshlab a lot myself. I usually tweak the low by hand afterwards; you might want to consider that in the future, since I've noticed some very thin triangles on your mesh, that could be removed without affecting the silhuoette. Moreover, using Pro-optimizer on your decimated mesh can work wonders sometimes and save you the trouble of doing it by hand.

Neverthless, awesome work mate I'm loving your workflow; seems that with polypaint you can easily achieve that cartoony look. I will have to try that somewhere in the future.
Offline , polycounter, 1,236 Posts, Join Date Aug 2009, Location Nottingham, UK Send a message via MSN to teaandcigarettes  
   Reply With Quote

Darkrusader's Avatar
Old (#42)
Thanks guys. You are right about the slight dirtyness. I do pro-optimize quite a bit for that extra clean up. If I really want to squeeze every bit of memory that I can, then its time to go in their by hand and massage the quality out. Like you said, this is just a really fast technique for getting your stuff out. What I like about DM is that it is so fast and gives your low poly a very close representation of your high poly mesh for a clean baking.

two other ways that I approach mesh clean up is to retoplogize in zbrush and use that lower divided mesh as my base mesh. Also the Graphite Modeling tools (freeform/polydraw) in 3ds max 10 are just like polyboost. Just use a mid res export from zbrush as your mesh template for those tools. These methods add a bit of time to the process, but give you a super clean mesh.
Offline , vertex, 48 Posts, Join Date May 2010, Location Newport Beach, CA  
   Reply With Quote

yiannisk's Avatar
Old (#43)
there is not much i can say that others haven't already.. but i had to say this:
AWESOME!!!
.::no issues
Offline , triangle, 300 Posts, Join Date Mar 2010, Location in an off world colony.  
   Reply With Quote

Lee3dee's Avatar
Old (#44)
thanks so much for posting your process!!
Freelance FX Artist | spacehulk-game.com
Offline , card carrying polycounter, 2,255 Posts, Join Date Jan 2005, Location Austin, TX  
   Reply With Quote

Darkrusader's Avatar
Old (#45)
I had a couple of request to show some shots in the traditional isometric view. I built the environment to be high enough detail to walk around in, but it was fun to see what the more traditional Diablo cam looked like. I know it is not exactly isometric like diablo...i slightly fudged the angle to get better compositions, but you get the idea! Hope you guys dig em!










Another tutorial coming too....just been a couple of late nights at work slowing me down a bit....Thanks guys!
Offline , vertex, 48 Posts, Join Date May 2010, Location Newport Beach, CA  
   Reply With Quote

teaandcigarettes's Avatar
Old (#46)
Looks lovely. I would love to play a hack and slash with environments like this one
Offline , polycounter, 1,236 Posts, Join Date Aug 2009, Location Nottingham, UK Send a message via MSN to teaandcigarettes  
   Reply With Quote

Darkrusader's Avatar
Old (#47)
Thanks Tea!

I finally finished up this little pillar break down. Now let me pre-phrase this breakdown and say that this might not have been the best way of creating this asset. I learned some valuable lessons on this one. If I were to do this asset again I would make some adjustments. Figure 1-C was the biggest problem. Im sure some of you can see the problem just looking at that image, but I will explain it further below and how I would remedy it.

Changed the format a bit too for this tutorial. Im trying to work out the clearest and most concise way to lay out these steps. I wont go into much detail on exporting and importing because I covered that with the brick tutorial. This will focus more on the basic workflow between Zbrush and 3DS Max.




Step 1 - Base Mesh Creation
1-A: Created a very basic shape out of quads that was the shape of the pillar I wanted

1-B: Created some shapes that I will ProBoolean to get my base shape for zbrush. I abuse this fantastic tool all the time. It is so much cleaner and more reliable then the old Boolean. Still some clean up needed, but not like the old one.

1-C: Here is the basic shape I got from subtracting the corner peices and unioning the middle pieces. Looks great shape wise. I figured I can just beat this thing into submission in zbrush. BIG MISTAKE! That topology is terrible for sculpting and caused me much pain later on in the process, mainly in that I needed to crank the subdivisions really high to be able to sculpt reasonably. The reason it is so bad is because of the triangles in the mesh and also the uneven size of quads.

*solution for avoding this - I could have easily created loops from those corner tris and ran them right down the base of the shaft. Also, I could have just cut subdivisions of all the quads until they were all a similar size.


Step 2 - Zbrushing the Center Shaft
2-A: Import your OBJ from Max and subdivided it up. Dont forget to turn off smooth for those first couple subdivides or your model will turn to a doughy mess.

2-B: Started Masking across areas and using the deformations to inflate the masked areas out or in.

2-C: Still Masking away, getting those landmark cuts in. I use these cuts to guide me along for the rest of the process

2-D: More detailing. The top shape was created in the same way, except for I softened the mask. It gives that slightly curved shape.

2-E: Getting the more detailed masking and sculpting in. The top row of arches was created from a custom alpha

2-F: Finish up detail sculpting on shaft.

Step 3 - Creating the Moldings
3-A: In max I created these two quaded shapes and exported them out to zbrush

3-B: In Zbrush I did a remesh of these two objects with them set to union. This gave me a nice quaded shape to sculpt the molding out.

3-C: Sculpt the molding out

Step 4 - Sculpting Details
4-A: Duplicated moldings around base and around top of shaft. 8 total.

4-B: Ribbed the shaft

Step 5 - Polypaint and export High Res Mesh
5-A: Throw down a base coat of polypaint on objects. Block in basic colors.

5-B: Get in there and detail up the object with some grime and age. Export out your polypaint and High Res Mesh. (refer to brick tutorial if you do not know this process)

Step 6 - Decimate and Export low res meshes to objs

Step 7 - Import all meshes to 3ds max and unify them into a single mesh. I use ProBoolean for this as well. After you connect them you have to clean up and dirty areas. A ProOptimize for good measure can help too after it is all one mesh.

Step 8 - Unwrap in your favorite UV Unwrapping program (mine is headus!)

Step 9 - Bake out those base textures from Xnormal (or any program that can bake)

Step 10 - Cleanup/Optimize. I decided that I could cut this down a few notches in triangle count. 5400 was a bit on the steep end for a UDK mesh. Got it down to 3400 which is much better for memory. I could probably spend a lot more time on this stage and get it super clean and efficient. Just turn on preserve UVs and it is really easy to remove edges and cut new ones

Step 11 - Export OBJ to UDK or your favorite game engine!
So this was my process for this prop. Biggest lesson learned, stay clean on that base geometry early on or suffer the wrath of zbrush later on! Hopefully some will find this Tutorial helpful! Let me know if there are any questions!

Thanks again guys!
Offline , vertex, 48 Posts, Join Date May 2010, Location Newport Beach, CA  
   Reply With Quote

MoP's Avatar
Old (#48)
You rock, man. Thanks for all the information and updates
Offline , MoP, 11,604 Posts, Join Date Oct 2004, Location London, UK  
   Reply With Quote

Serp's Avatar
Old (#49)
I like how you made a great environment without being super clean. Like I would have done a lot of the modelling in Max and only done some surface damage in Zbrush. But I think the "hand styled" modelling you've done has helped the scene.
Offline , spline, 241 Posts, Join Date Sep 2005, Location Krakow, Poland  
   Reply With Quote

Tallooriravi's Avatar
Old (#50)
Nice work man What a achievement.
Offline , null, 3 Posts, Join Date Aug 2009,  
   Reply With Quote

Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Copyright 1998-2012 A. Risch