+ All Categories
Home > Documents > NiceVertex2 HD

NiceVertex2 HD

Date post: 03-Oct-2015
Category:
Upload: ikariswings
View: 5 times
Download: 0 times
Share this document with a friend
Description:
Just Vertex
Popular Tags:
300
2 Featured Artists 2 Darren Bartley Philip Klevestav Render Targets Material Guidelines Far Cry 3 Art ZBrush Texturing Tricks World Machine 3D Scanning NDO/DDO 2D Concepting 3D Environment Cover Image By: Alexandre Zedig Diboine
Transcript
  • VERTEXRYANHAWKINS

    2

    Featured Artists

    2

    Darren Bartley

    Philip Klevestav

    Render Targets

    Material Guidelines

    Far Cry 3 Art

    ZBrush

    Texturing Tricks

    World Machine

    3D Scanning

    NDO/DDO

    2D Concepting

    3D Environment

    Cover Image By: Alexandre Zedig Diboine

  • Contact the Editor

    Letter From The Editor

    VERTEX

    2

  • Contact the Editor

    Letter From The Editor

    VERTEX

    Letter From The Editor

    Ryan Hawkins, [email protected]

    I would like to first thank you, the readers, for downloading the books from us and helping show us that there is a need for this type of media out there. VERTEX is brought to you by the community of artists from all different types of digital entertainment industries. Origi-nally the concept of what this book was going to be focused directly to and only on video game development tips and tricks. But the interest in this type of educational media sparked from other industries as well so I thought well we might as well try to cover those needs. Since VERTEX is free we are able to take our time with the content and make sure that we are giving the readers the ideal material. The goal with VERTEX was to release one volume a year but due to the size of the actual book and the content needs we can only really release it when it is truly done.

    The content in VERTEX comes from working professionals who have full time jobs and do not get paid to contribute to this. We work with their schedules as best as possible and do not rush the content to meet a release deadline. By holding the book and editing it and tweaking the content with the artists we can ensure the quality of the content will be its best for you. There are always those readers out there who voice their opinions about how we should charge for these books and if we were making money then it would help increase the pro-duction speeds in how these are created. The truth is involving money in this equation just makes things take even longer. Because the books are free we are able to give you insights on company workflows and breakdowns of movies or games without having to work with legal teams too heavily.

    Another thing that I dont see changing too much is the fact that I horde the creation of the book to myself. I want to make sure the content is to the quality that I want. I also hand pick the content in the book so that there is no overlap from previous books as well. With just a few team members and me, we are able to take our time and not rush things. I also do not work on the book every day. I work on the book in strides to ensure the books quality is always the best it can be. I feel that if I force myself to work on the books for long periods of time the work that I have done becomes repetitive and starts to lose its flare. This also allows for the artists submitting content to be more relaxed as well thus making their want to share their workflows and tricks with the readers stronger. I try not to stress anyone that works with the books. The end result is all we care about. When its done is just a matter of if we feel the content is ready or not. Thanks again for letting us take our time when creating the books and not pressuring us to sacrifice quality to release faster.

    Thanks for the support,

    3

  • VERTEX

    Table of Contents

    04

  • VERTEX

    Table of Contents

    05

  • VERTEX

    PERSPECTIVEPerspective Environments in Games By: Gino Whitehall

    Environments in perspective can be a tricky beast to paint. My fellow artists, along with myself, will have wonderful gripe sessions about how tricky it is to come up with a convincing scene, much less a populated, convincing scene. With so much to consider, its easy to lose track of all the spinning plates. This tutorial will break down the elements of a perspective environment and explore some of the things I consider while painting.

    For the sake of space, and our attention spans, Im going to assume at least a base familiarity with fundamental drawing skills and the idea of one and two point perspective. Thanks to the internet, there are many resources out there, from instructional videos on YouTube to Wikipedia articles, that can help bring you up to speed. This image started out as a daydream while waiting for the train one morning.

    I was at the station people watching, and I started making up backgrounds for everyone I saw. Eventually an un-dercover spy drama was unfolding before me. The thought of spies among the public entertained me all day, and I wanted to go with it!

    PERSPECTIVE6

  • VERTEX

    PERSPECTIVE

    Values will help show atmosphere, with the darker values being up close, and the lighter values being further back. I will keep the greatest area of contrast at my focal point, which happens to be in the mid-ground. I will frequently check my composition at thumbnail size, or convert to a grey scale image, to see if my value arrangement is still working. I also frequently flip my image horizontally, so that any mistakes Ive missed might become more apparent.

    The first step, of course, is the thumbnail and reference stage. I Google searched image reference online and sketched from life at the station. I quickly get down a few compositions, trying to see what works best for the vi-sion forming in my head. Im thinking I want to show two agents interacting among an unsuspecting public. This is especially difficult. While I want the viewer to pick the agents out from the crowd, they should look like they could blend in. I decide that I want to explore a stylized world, as opposed to something more realistic, mostly just be-cause I enjoy exploring shape design. This means that I will avoid photo textures or anything that might suggest too much real-life detail. After a couple thumbs, I have something I like. Ive been looking at photos of subway stations from New York City to the United Kingdom to Japan, and decide to use elements from the different locations. I build a three point perspective grid and use it as an overlay while I sketch out the environment. At this stage, as well as throughout the rest of the painting, I try to keep in mind on a couple of important concepts. Specifically, I like to pay more attention to the horizon line, repetition, composition (foreground, mid-ground, background), and values.

    It is important to always keep track of your horizon line, otherwise known as the eye level of your scene. Anything below this, you will be looking down on, anything above it, you are looking up at. The horizontal line is also helpful when placing people into a scene. I decide to have my horizon line at a human height, so as a viewer, we are look-ing eye to eye with everyone in the scene, making it a bit more convincing. I make my horizon line especially dark on my perspective grid, so I can keep track of it. Repeating a form in space is a great way to sell depth. As such, we want to push the idea of depth as much as we can, since we are only actually looking at a flat surface. Using repeti-tion, in this case the pillars repeating into space as well as the people scattered about the scene, will definitely help create the illusion of depth. Foreground, mid-ground, background! Environments are easiest to comprehend when broken down into these three sections. I try to identify each section and plan the image accordingly. My foregrounds will have the darkest values, while my backgrounds have the lightest. I try to again sell depth through overlapping of shapes. The long walkway from foreground to background helps draw our eye into the scene, while the figures and pillars overlapping each other help to avoid any flatness.

    7

  • VERTEX

    Once my space is sufficiently sketched in, I block in my initial colors. I want to use the creepy green tint of fluorescent bulbs as my main light source. This will give an eerie vibe to the subway that I think will work well. I decide on a red and green color scheme, since red is the natural complement to green, and because I found some neat red pillars in my photo reference. I keep my perspective grid on for now, moving about the image evenly, fixing any mistakes, and cleaning up edges. As the image progresses, Im introducing a lot of muted grey colors because it helps the fo-cal point pop even more and keeps the scene from feeling too distracting. As I identify my focal point, I make sure to lead the eye to that area, making sure the rest of the image helps support the main idea. For example, the pillars seem to point back to that spot, as well as pipes along the wall.

    This next stage is just a lot of rendering passes. I continually adjust and clarify different spots, slowly introducing smaller details such as garbage cans, signage, and weathering. I try to show the age of the station, worn out from years of constant use. The walls are peeling, the ground is stained. Very often in real life a warm light source means cool shadows, and vice versa. I make sure to show a warm and cool color contrast in my lights and shadows to show this. I decide to expand the canvas a bit to show a subway train approaching. I feel that its orientation will help lead the eye back away from the edges of the canvas, as well as its headlight balancing the bright values just a bit.

    PERSPECTIVE8

  • VERTEX

    PERSPECTIVE

    Now, the finishing touches. I finish detailing the background folks and change the pose of our foreground spy so that hes drawing a gun. Ooooh the suspense! Its the moment of calm before the storm. I show some papers fluttering through the air, being pushed by the wind of the train. These sorts of details help sell the effect of a moment frozen in time. At the point where I feel done I go back to my focal point and spend just an hour or two polishing details. I want that area to be the first place one would look, and because Ive been detailing the rest of the image evenly I can polish one area while leaving other areas looser without breaking the image. If you look at areas of the train, the tracks, or the background figures, you can see how simple they really are. Thats thanks to the focal point, along with the surrounding areas leading our eye back there so we can get away with these broad strokes.

    Now its time to fill my environment with life! I block in my figures, showing contrast through their different sizes. I try to inject an urban vibe by showing lots of average Joes rather than suits. This also helps the spies stand out a bit more. The many jackets, as well as an umbrella, hint of a cold environment up above the ground. We know we are below ground due to the stairway leading up behind them. Ive made it a point to keep most of the crowd in the shadows. Their colors are a bit darker, so they sit into the scene a bit. There isnt one specific person standing out, except the ones intended to. Their heads all line up at eye level, which reinforces perspective and helps them look grounded. I pay a bit more attention to the seated spy. His suit is definitely flashy, but I decide thats just his charac-ter. The advertisement sits behind him intentionally because the value contrasts really forcing the eye here first. Hes peering just over the top of his newspaper. Is he aware of whats happening?

    9

  • VERTEX

    With the image completed, Im able to look back and reflect on what went right, and what didnt. Overall, Im happy that the perspective of the environment reads convincingly, and the people in it seem to belong and dont feel out of place. I feel relatively happy with the color scheme, but feel I could have pushed the color shifting even more. The darker spy doesnt pop out as well as I had hoped, but hopefully the rim lighting on his back gives him the contrast he needs.

    Another painting complete, more XP toward gaining another art skill level! With each image finished, you are further refining the skills of your hands and eyes, even if you dont necessarily realize it. With each painting, you have experi-ence from all of the little successes and failures that came with it. If your environment skills are leaving you frustrat-ed, attack it in pieces. Do studies from your favorite movies. Carry a sketchbook everywhere you go, draw every room youve ever been in. Like any other muscle, exercise it the correct way, and it will get stronger!

    PERSPECTIVE10

  • VERTEX

    PERSPECTIVE

    My name is Gino Whitehall, I was born and raised in Healdsburg, Cali-fornia. My life changed sometime around age 4 or 5, when I discovered Super Mario Bros., and Uncanny X-Men. From that point on, drawing and reading were my obsessions.

    I attended Art Center College of Design in 2004, obtaining my BFA In Illustration. Upon graduation in 2008, I found myself at Blizzard Enter-tainment, working as a Concept Artist on their unannounced MMO. I spent four years there, as well as teaching environment painting at La-guna College of Design.

    Im currently at Gree International, as a Senior Concept Artist. Im hav-ing a great time exploring the budding mobile games market, and as always, am filling sketchbooks and hard drives as fast as I can.

    www.whitehallstudios.blogspot.comGino Whitehall

    About Me

    11

  • www.rasberg.blogspot.comRasmus Berggree

    12

  • www.interstation3d.comToni Bratincevic

    13

  • VERTEX

    SPLINES

    THE SPLINESplines and Booleans By: Mark Dygert

    I know what youre thinking. Youve probably heard some horror stories and you might even have shied away from them because of a bad experience but I aim to change that. I will reintroduce you to splines and show you some tricks you might not have thought possible. With any luck it will unlock a new set of possibilities and boost your speed while giving you more flexibility to make simple changes to complex shapes in a shorter amount of time. It almost sounds too good to be true. What about the horror stories?

    The truth of the matter is the horror stories are right, but mostly because people try to use them for bazaar things. Just like you wouldnt use a screwdriver to prune bush you dont want to use splines the same way you use edit poly. Leaning some of the cool things you can do with a spline will help you realize their potential and hopefully leverage them to the best of their ability.

    Say hello to the much maligned and ever so humble spline. There is a lot you can do with this simple little line. You can use it as a path to sweep a piece of molding along a wall, you can use it as a profile shape for a modular wall unit, you can create vase, a decorative pillar balusters or chess pieces. I could keep going on and on but really once you have the workflow down you find all kinds of uses for them so it really pays off to warm up to the spline.

    Click a few points in the viewport and click on the first vert to close the shape. This is important because some of what we aim to do, will need closed geometry. Open splines are one reason they get a bad rep and its mostly because people never close their splines.

    Note: There are some simple ways to make sure your spline is actually closed. A closed spline will have only one segment so go into segment sub-object mode and click a line, the entire spline should turn red, if it doesnt you know where the breaks are and you need to weld them. Also keep in mind that every vertex has a number, the order is derived from their creation and the first vert is always white. If you have multiple white verts, this means you have multiple segments.

    If you have not used these little guys before you should take a second to familiarize yourself.

    Command Panel > Create > Shapes > Lines

    Creating Splines

    14

  • VERTEX

    SPLINES

    Also with a closed spline you can set the 1st vert to any vert using the Make First tool in the spline menu. On an open spline the first vert will always be on an open edge, so if you cant move the first vert, there is a chance its on an open end.

    You can also place a poly creating modifier (edit poly, shell, extrude, etc) on top of the splines stack and if nothing shows up, its open and you need to close it. If you have a spline that just refuses to convert to polys select all of the points and weld with a relatively low threshold. 99.9% of the time this solves the open geometry issue.

    Notice the difference when creating a spline if you simply click a point, you get a sharp corner. If you click drag a point you get a smooth point with bezier handles. You can change the behavior of the verts at any time by selecting them, right clicking the viewport and select one of the options in the upper left.

    I normally stick to making corner and smooth and leave the bezier options alone for the simple fact that working with bezier curve handles in 3D space is one reason splines get a bad reputation.

    If you really want to dig into bezier handle editing the 3ds Max help file has some useful info on helping to manipu-late the handles along the different axes. I find smooth and corner get the job done in half the time, with a lot less frustration and less interaction with wonky tools like the axis constraints.

    Note: You can also increase and decrease how smooth a smooth vert will be by adjusting the interpolation steps. Setting it to 0 will not add extra loops. I almost always select all of the verts and set them to smooth and use Refine in the spline menu to place control verts/edges close to each other, much in the same way you would do it when working with sub-d.

    Drop an extrude or shell modifier on top of your stack and go back down the stack and edit the spline in vertex mode, be sure to turn on show end result in the modifier stack.

    Smooth/Corner

    Shell and Extrude

    15

  • VERTEX

    SPLINES

    Painting a spline can be a bit more creative and fluid than clicking each point to make a spline. With any edit poly object selected, go to the Graphite Modeling tools, Freeform tab, and click spline. Now you can paint a spline in the viewport.

    It can be a quick way to create:Tree trunks, vines, ropes, cables (closed spline shape, convert to Edit poly, extrude along spline path, taper and twist)

    Table cloths (closed spline shape, copy spline, spherify, cross section modifier, convert to edit poly)

    Ivy or branches (use particle flow to add leaves, use vertex paint to define where they go)

    Extrude and Shell do pretty much the same thing for our proposes here but it is good to note the difference in settings because one may do something better than the other.

    For example shell will allow you to bevel the edges and define that bevel with another spline which can be helpful for things like a fancy detail around the edge of a table. Lets get back to our spline...

    Set one of the points to smooth and move it around, you can push around a lot of geometry by only manipulating one vert. In the spline menu you can increase the Interpolation steps to increase the smoothness of the spline. You can also adjust the segments in the Extrude modifier to add more cross sections. This can be incredibly helpful for a modular wall section or quickly blocking in simple shapes that are part of a more complex model, but more on all of that later. There is one more way to create splines...

    Spline Painting

    16

  • VERTEX

    SPLINES

    Delete the extrude modifier and drop a lathe modifier on top of your stack and go back down the stack and edit the spline. Now you are working with one row of verts but controlling the rest of the geometry easily. Making giant sweeping changes to the overall form of the piece is incredibly easy.

    Switch verts from smooth to corner and insert verts close to each other to make sharper rounded corners using the Refine tool in the spline menu much in the same way you would use control edges when working with sub-d. This can be a great way to add control loops and get the smoothing on a edge just right without being constrained to a ultra sharp corner.

    If you are on 3ds Max 2009 or lower you can check out Soulburns Scripts for a really well put together spline painter script by Neil Blevins who is an outstanding artist and technical director for Pixar. In addition to some great scripts he has a great CG education section on his site so check that out also when you get some time.

    In exchange for this freedom of fluidity you give up precise spline vert placement control. Spline painting will create verts every few units instead of points where you click. This enables you to create nice fluid shapes but the splines are a lot more dense. People will typically take a few minutes to optimize them before moving on, which is simple, weld with a average threshold or simply select verts and hit delete.

    Note: That you can also add verts back in by using the refine tool in the spline menu and clicking on the spline.

    Another advantage to working this way is that you can easily generate a low poly model or LODs, from the high by adjusting the number of steps in Interpolation and the number of segments in Lathe. Adjusting the number of segments in your model through normal poly modeling would traditionally be a big undertaking with a lot of steps involved, but with this method its one simple slider that you can adjust at any point.

    Splines and Lathe

    17

  • VERTEX

    SPLINES

    Keep in mind that with the way the modifier stack in 3ds Max works, you dont always have to work symmetrically and you dont always have to give up symmetry to have asymmetrical end results. This is probably best demonstrated by tossing a noise or FFD modifier on top of your stack. This allows you to go back and edit the underlying pieces but the end result is twisted and deformed. This is particularly handy for things like tree trunks or stalactites/stalagmites and various other organic shapes.

    Splines, Sweep Modifier, ProBoolean, Extrude Along Spline

    1: Profile spline for the wall.1a: Simple spline line, with a Sweep modifier applied, set to custom shape and targeting 1 (set to instance so 1 can be edited at any time and the wall is updated).

    2: Profile spline for wall indent.2a: Square spline with a sweep modifier applied, set to custom shape and targeting 2. You can use this trick to do picture frames, molding, trim around doorways and windows, you can even sweep a profile shape over a curved spline to create an arch over a doorway.2b: ProBoolean applied to 1a, targeting 2a (set to instance so 2 and 2a can be edited at anytime). After adding it to the 1a ProBoolean, you can click on operands in the Modifier stack, then select the specific operand in the Pro-Boolean menu and move it around. Note: You can press the shape into the surface only a little to get some very light details or deeper to get more details. This can be helpful if you are doing areas that are similar in style but different in finer details ie. fancy dining room in a mansion and the servants quarters.

    3: Cloned one box, set instances to 15, merged into one object. 3a: Added 3 to the 1a ProBoolean as an instance and moved them into place.

    18

  • VERTEX

    SPLINES

    A: Three, six sided cylinders vertex snapped together so they align perfectly and are easy to snap together. B: Then adjusted the number of segments to 12 to round it out a bit more, notice that the edges of the cylinders align and can easily be welded because we doubled the number of sided.

    C: Delete the top and bottom polys. D: Delete the inner polys and weld the verts together.

    E: Select the boarder and cap it, delete all but the newly created poly.4a: Move the poly you created in 4 to the 4a path spline and in edit poly of 4 use the Extrude along Spline tool to target 4a. Use the twist and segment options to create a rope shape. (This geometry is not added to the boolean for obvious reasons)

    Dont stop here, you can continue to add other shapes to get different details. You can reorder the Operands to change what layer any given shape interacts with the ProBoolean. The ProBoolean also acts as a warehouse for the shapes allowing you to extract copies if you deleted the original instances or had it set to move instead of instance when you added the shapes.

    19

  • VERTEX

    SPLINES

    So you are probably saying yea but I can do this with poly modeling. The power and flexibility start to play out when you go back to some of the basic spline shapes and start making some pretty big changes. For example exiting the top molding after the boxes have been cut with traditional poly modeling techniques would have you working on dozens of pieces of geometry that are identical, you can copy/clone one piece and weld them together but that takes time. With this method you could edit the original profile shape and it updates the final model.

    Adjust 1 vert instead of 30+, remove some verts and adjust the spline interpolation to make your low poly instead of painstakingly removing edges and collapsing rings.

    This method is great when you find out some of the molding details dont capture all that well when you bake out a normal map, or your boss utters those classic boss phrase I like this but change that...

    The key to keeping any boolean clean is knowing what kind of geometry it will generate and now the mesh is being triangulated. It can be helpful to put a turn to poly modifier on top of your stack, set the number of sides to 3 and toggle it on or off to see how the triangles are being laid out. Often this will catch messy edges that you can avoid by nudging around an few operands.

    It can also be beneficial to add a smooth modifier to the top of your stack, which will automatically smooth the model as you work on it without having to manually edit the smoothing groups each time you make changes to the geometry.

    Working off of a grid and snapping to it can help keep geometry clean and manageable. Remember to use custom grid objects (Create Panel > Helpers > Grid)

    Object space scaling will trickle down to all aspects of splines later on so its good to either not scale in object space, or reset the transform/scale matrices after youre done. Again you can scorch the earth with reset xform or take the more humane route and go Hierarchy tab > Reset Scale/Transform.

    So there you go. A small sample of how splines can help speed up your workflow and make it more flexible, and how to side step some of the common spline/boolean land mines that people tend to run across.

    Custom grid objects can be moved rotated and snapped into place.

    Note 1: Select a grid object and right click to activate it. Do the same to switch to another grid object or back to the home grid.

    Note 2: If you do this often enough you might want to bind Activate Grid (Context) to a key. This key will activate any selected grid object, with nothing selected it will acti-vate the home grid.

    Keeping It Clean

    Scaling In Object Space

    20

  • VERTEX

    SPLINES

    Booleans tend to get a bad rap for unpredictable results, part of why that happens is the orientation of the objects local pivot point and the Refer-ence Coordinate System is set to world (I said along Z!? Why is it path deforming along Y!? Oh right local pivot)

    Or if the object was scaled in object space before being operated on. A lot of tools that work with splines and booleans work on the local pivot (like most of the animation tools) they assume the objects local pivots are pointing in a similar direction, if it isnt you get rotated and distorted results.

    Depending on what viewport you create an object in, it will affect how that objects pivot point will orient to the world. On object creation, Z always points directly into the camera of that view. Meaning it wont always point up, unless you are in perspective or orthographic mode where it will align to the world, then the local Z will point up. For the sake of consistency, stick to creating splines in perspective view or in the top viewport, so the pivots match and you minimize wonky issues.

    Keep in mind, that you can change the orientation of the pivot by going to the hierarchy tab, and clicking affect pivot only then rotate just the pivot point. If your model distorts along one axis when you rotate the pivot point, you have scaled it in object space (more on that in a minute) just go down to Reset and click transform and scale. This will clear out the transform matrix history and set everything back to 100%, then you can rotate the pivot point without it freaking out.

    Going nuclear on pivot points by using the reset xform Utility (which I dont advise unless youre the scorched the earth type of person) can also cleanse your pivot point, but it will also orient your pivot point to the world which can be bad. But honestly just get in a good habit of paying attention to your pivot points and it wont be an issue.

    Pivot Point Orientation

    My name is Mark Dygert I am currently the lead character animator at Her Interactive. Its hard to remember a time when I wasnt passionate about making games, actually if I try really hard I can remember grow-ing up in the 80s and early 90s back when Legos, Star Wars and GI Joe where high tech toys, which is what I was playing with when I wasnt drawing and wanting to be a 2D animator. I would like to apologize to the Northshore School district for using its textbooks as flip books

    I was in high school when Doom shipped and it introduced me to dial-in-multiplayer and making custom content. Back then it was not really a career path like it is today, so I tucked those fun times in my back pocket as a hobby and went off to college.

    As I was working my way through college and I ended up working the graveyard shift job doing page layout for a bunch of different maga-zines, one of them was this thin little publication called Game De-veloper Magazine. 7 years ago my hobby became my full time job and Ive been at Her Interactive ever since, shipping 16 titles. I have a wonderful wife and a brilliant daughter and I hope someday she gets the opportunity to turn her passion her job, whatever it is.

    w w w . v i g v i l l e . c o mMark Dygert

    About Me

    21

  • www.jkconceptart.comJosh Kao

    22

  • www.duster132.carbonmade.comNivanh Chanthara

    23

  • VERTEX

    FRIENDLY ART

    FRIENDLY ARTHow to create Designer Friendly Art By: Philip Klevestav

    As an Environment Artist with a background as a Level Designer I have always been interested in creating my art assets to be as easy to use as possible from a designers point of view. This involves a lot of different techniques and will of course vary a lot depending on the type of game you are working on.

    I think this is sadly something that is overlooked quite often when it comes to game art. So many times you can see examples where design has suffered in favor of great visuals, or the other way around. The reasons for this can be many but I think the most common problem is poor communication between Level/Mission Design and Environment Art. It definitely has a lot to do with how roles are defined at a company too. I think it is very important that both de-signers and artists can or are even encouraged to familiarize themselves with each others departments. That doesnt mean a Level Designer should all of a sudden spend half his/her time texturing barrels or for an artist to build the next de_dust, but having at least basic knowledge of how things are made on both ends is very important and often auto-matically creates a strong bond between the two.

    To me creating something great looking is just a small part of the job of a game artist, the largest challenge is definite-ly creating something great looking on a tight performance budget that also plays really well. Its easy to say that its purely the designers responsibility to make the game fun and only focus on the visual part, but thats not true, making a game fun is really everybodys responsibility. The way you decide to create your art assets can and mostly will have a direct impact on gameplay. See it as a great chance to influence the game in more ways than sweet visuals.

    I believe that only when the art and design departments work very closely together, almost as a single unit, can a truly great experience be created. Sometimes it means that huge teams need to cooperate and other times the design and art departments consist of one single person.

    24

  • VERTEX

    FRIENDLY ART

    Having good set of measurement standards is perhaps one of the most efficient ways to ensure the art will be con-sistent from a gameplay perspective. Its surprisingly easy to overlook this very important factor. Things like: How wide is a door? How high is a cover object that you can duck behind? What is the jumping distance?

    We know we want to set up standards, try to test them and make adjustments very early on and make sure to stick with these under all circumstances. One of the best ways to make sure you stick with these standards and have an easy way to test is to create a designer build kit. It also allows you to make really quick iterations when testing.

    Setting up a range of these standards can be a lot harder than it seems at first. You will definitely want to do a lot of testing as early on as possible. As we all know games go through a lot of stages during their creation, so keep in mind these rules should be adjustable later on. Any change to a system while in full production will have a huge effect on most things created so far, so lot of rework might be needed and it should definitely not be taken lightly. This is why you definitely want to make as many of these adjustments as early on as possible.

    Standardize

    Creating a Designer Kit

    25

  • VERTEX

    FRIENDLY ART

    The few pieces in the image could, with a large dose of creativity be enough to prototype a whole level. Of course depending on the engine and tools used, you will most likely want quite a few more pieces. Creating various sized/shaped walls and floors is a good example. You will probably also want to cover up some of the most common prop sizes, different types of add-on parts, common railings, windows and such.

    A lot of studios already apply this, and its somewhat spread to some of the hobby developers. The Source engine SDK already conveniently contains a designer kit, so the idea is fairly widespread within the Source community.

    However I definitely recommend you create such a kit even if you are making scenes/levels for fun in your spare time. You only really have to create and set it up once and it will help you block out your scene incredibly fast. I often do this in a very iterative way where I try to block out the whole space, no matter if its a whole level or a smaller scene. Even if I plan to put most of the focus on the art side I will still try to create a kit. There are just a ton of advantages to having a kit like this, both design and art wise:

    You dont have to limit such a kit to only be the most basic block pieces either. It may help with the transition from prototype to real art if you have some more detailed pieces to place around in addition to basic block out pieces. It can help give the player a better understanding of what the area is all about.

    Standardizes everything you build and acts as a great guideline for anything new.

    Rapid prototyping.

    Helping you imagine a space and making sure its easily built once switching out to real assets because you already have everything laid out before hand.

    Great for paint overs.

    Perfect as filler for missing objects in your scene that hasnt yet been created.

    26

  • VERTEX

    FRIENDLY ART

    The designer kit shouldnt be too large as it can get out of hand and defeat the purpose of having a quickly adjust-able kit if design is changing, but having enough shape and size variation in these more detailed block outs will almost ensure you to have something the designer needs so no further requests are needed. It will also help when replacing any of the block out art with real art.

    In my experience these kinds of designer kits have been helpful, if not essential, to the entire development team. It makes both design and art more confident that what they are creating will actually work. After some time using a designer kit I always feel like all the measurements and rules kind of stick to me and I know them all in my head which also makes me a lot more confident when I create new stuff.

    To me, if you have a solid set of basic rules to follow its actually easier to be creative than if you have absolutely nothing to start from.

    This is a big one, and it involves numerous topics. It can range from pivot placement and how consistent you are with them to how optimized, readable and reusable your art is. I will start with the simplest one.

    It may sound silly to bring this one up, but it really makes a huge different how consistent you are with where you place your pivots/root points of your assets. Its definitely worth giving this a fair bit of thought before you start creating your assets, especially if youre part of a team and other people will use your assets in their levels. Agree-ing and testing out the most efficient system for you will help speed level creation up a lot. Another reason why you may want to spend some extra time in the beginning to agree on a good set of rules for pivots is that the later you start standardizing this the more painful it will be to go over old assets with all kinds of rotations and center points.

    In the image on the next page you can see this simple railing piece having its pivot in the bottom center of the ob-ject (left in image) vs. at the bottom corner (right).

    The latter one will make it a lot easier to create corners and make it easier to offset while having it in the center of the object will force you to always move your object a lot more. Even if it may just be duplicating, rotating and mov-ing your object to create a 90 degree corner, any time saved for any of those actions will add up to a lot of saved time in the end.

    Pivot Placement

    Is your art user friendly?

    27

  • VERTEX

    FRIENDLY ART

    I dont think theres any right answer to how you always want to place your pivot, but it is something that should come out of discussions with the people who will use your art assets the most (typically a level designer of some kind). If you as an artist can reduce the time designers have to spend re-arranging placement of objects just because of inefficient pivot placement, the more time they will have to make sweet levels.

    Again this may vary quite a bit depending on the type of game youre working on. Assets with strange player collision can sometimes be very distracting, and in worst case totally piss you off. This is one of those things that you wont notice or think twice about until that one time it actually is off. This is handled differently by different engines. A lot of the time you can split up player collision and other types of collision. Personally I dont think that the player collision should be anything but a very rough representation of your model. If its a complex model with a lot of small protrud-ing parts the player collision should definitely be a lot smoother. You can often also gain a lot of performance by creat-ing very simple and basic collision meshes for your models.

    Player Collision

    28

  • VERTEX

    FRIENDLY ART

    On the previous page is an example where youd probably want to stay away from having small protruding parts that could interrupt the player if they accidentally get stuck between two of those details. This can be solved by simply altering the player collision slightly to allow for smooth movement. In an FPS (especially multiplayer) the slightest obstacles like these could be pretty devastating. Try to avoid letting the player get stuck behind anything that isnt clearly large enough to be used as cover.

    As I said in the beginning of this topic theres also the actual readability of your art. This obviously is both a big part of actual art direction and style as well, but I wanted to bring it up from a design and gameplay point of view.

    There are already tons of great books, tutorials and talks about leading the player with art and lighting in both sin-gle and multiplayer games, so I wont go into that really. I wanted to go in a bit on readability from a player perspec-tive. I think most people will agree that a game (single or multiplayer) where you have to fire at any type of target, its really important that you can clearly see the targets youre trying to take down.

    Ive seen this solved in a lot of different ways that dont actually involve having to make your art assets any more readable. From having enemies glow, a strong rim-light/outline, various toggle render modes for the player to see better (these can of course be a big part of a game mechanic as well and may not have anything to do with trying to make up for poor readability in the game), heavy fog or depth of field blur to hide things getting too cluttered further away.

    Personally I think its very important regardless of art style to make sure the game is very readable from an envi-ronment art point. It doesnt mean you cant have a lot of details in your art and have parts be very busy looking, but be careful where you have it. The density of it, and maybe most importantly, how often is it used in the game should be taken into account.

    Its very easy to get lost in looking at one isolated asset and try to make it look good enough to work as a portfolio item by just adding tons of stuff to it. Say youre working on a wall piece, you know its going to be used a lot in game, it may very well be repeated a lot as well. Heres a potential to really make the level/game very hard to read just because this one asset had too much stuff going on.

    Heres an example of a very dull and plain wall, this example will just show extremes on both ends to get the point out more clearly.

    Readability

    29

  • VERTEX

    FRIENDLY ART

    This one is packed with stuff and repeated, just a few times, but it becomes very clear in this example even if its obvi-ously very exaggerated and flat from an art point of view.

    Even if youd never just have this in a level (either of the examples), I think if you imagine having a full level in any of these styles itd become very clear that the last one would probably be very difficult to play in compared to the ex-tremely simplified example. Youd have a much harder time differentiating between enemies and some random wall detail. You could also run into issues with leading the player to the preferred routes or points of interest as itd be more difficult to spot things like doorways amongst the rest of the noise.

    Instead I recommend beginning too simple and play it early to see how it plays. If its really fun then you probably want to be really careful about what you add to it art wise, in my opinion its totally ok to keep some assets very simple just for this sake. You definitely have a problem if a level plays well and is very fun with temp/block out art and then becomes less fun when its actually artified.

    Other good things to think about when it comes to guiding the player to certain areas is the use of stronger accent colors/different brightness values and lighting. In a shooter multiplayer map I even try to imagine the playable space as some kind of an arena area, almost like a TV game show where you have a track or play area standing out from anything around it. Maybe not the best example, but I think the idea can be carried on to a lot of game types.

    My point is that you as a player should never have to think twice about if youre looking at an enemy or a fuse box or if you can jump over those rubble piles and get to that (perhaps too interesting) backdrop art, just because it looks more fun than the actual level area.

    Last thing, while on this subject, I wanted to just show a really quick example where I added a couple of add-on models to the first image here with the simple walls. Obviously nothing spectacular, but by doing these kinds of small additions to something that seems too simple, youve actually made it look a lot more interesting while maintaining the readability.

    30

  • VERTEX

    FRIENDLY ART

    My intention with this article is to bring up the importance of letting your artwork be more than something nice to look at. There are a lot of things that all weigh in on making the production of a game/level/scene faster, more fun to play and visually read clearly.

    Generally Id say you as an artist have a lot to gain by trying to work closely together with any design oriented people. It will give you some great insight to the whole design aspect of the actual game youre creating. Seeing how other people use your art pieces first hand can help you understand how you can improve things the next time around and it hopefully makes your art both easier to use and more fun to play with.

    A lot of work goes into making your art look great, you should make sure it also plays great and is as easy to use as it can be. In the end good art in a game is sadly pretty pointless if the game doesnt deliver on the gameplay side of things.

    Whether you are an Environment Artist who has been in the industry for years or if you just started working on your first hobby game I hope this article could inspire any of you to think about how your artwork directly and indi-rectly has a huge impact on so many different parts of a game.

    Conclusion

    Im currently an Environment Artist at Blizzard Entertainment working on the Next-Gen MMO. I have enjoyed playing games since I was a small kid. My first contact with level editors were for Duke 3D, Quake 1 and Command & Conquer where I tried to learn the as much as I could with my basic primary school English and no tutorials to read.

    My first on site job in the industry was as a Level Designer at GRIN in Stockholm, Sweden, where I also grew up. At GRIN I spent a bit more than 4 years, where the first year was mainly as a Level Designer, but then transitioned to becoming a Tex-ture Artist for a while. I hope to be able to stay in this industry for a long time to come and I cant see myself getting bored of it anytime soon.

    w w w . p h i l i p k . n e tPhilip Klevestav

    About Me

    31

  • www.ninnjapizzaburgers.blogspot.comBryan Lee

    32

  • www.yurialexander.comYuri Alexander

    33

  • VERTEX

    Render Targets

    Render Targets Render Targets in the Unreal Development Kit By: Alexander Dracott

    Through the following pages we are going to be taking a look at utilizing some tricks with tools built into the UDK to create a custom bloom post effect that looks like an anamorphic lens flare. In this session I will be covering three things:

    -What is a bloom post effect? How it is normally made?-Step by step instructions on how to create your own custom bloom in the UDK.-Why this technique is important, and what it allows you to do with custom post effects.

    I set out on my own just over a year ago to create my own custom bloom within the UDK. I had seen some fancy lens flares in different games (like the Mass Effect series and Battlefield 3) and wanted to do something similar. Not as a static actor placed in front of objects, but as a post effect that could look at an entire image and create its own lens flares.

    Unfortunately I ran into some major roadblocks while working within the UDK that prevented me from creating any-thing performance appropriate. Figuring out a way to create multiple render targets was my solution, and it is what I am going to talk about at lengths today. While it can be used to create blooms, it has many applications and opens up lots more. Lets get started with some basic bloom information!

    A pixel based image bloom is a post effect applied to a rendered frame made to simulate camera lens imperfections that show up when a light source is incredibly bright. This effect is usually made by extracting the brightest spots of an image, blurring it, then adding it back on top of the original image.

    34

  • VERTEX

    Render Targets

    The most complex part of this process comes down to the different ways to blur an image. For pixel shaders, the basic idea is taking one pixel, looking at nearby pixels, adding them all up, and dividing that total by the number of samples that you took. You can also apply weighting to those samples as you add them up to make a blur appear more soft and natural. The example I will be covering is called a Gaussian blur, which in its original form is a com-plex equation to decrease the weight of samples as you go farther from the source.

    We will be approximating those weighting values for increased performance. A technique we will be using here is separating out horizontal from vertical blurs. While it is possible to blur in every direction at once, it can become quite expensive to do so. It is cheaper to instead blur in one direction, then another. You can stack these blur passes on top of each other to achieve different types of shaped blurs.

    Keep in mind that this per pixel operation can get very expensive as the number of pixels you sample increases at high resolutions, even with the double pass blur I mentioned above. 30 samples on either side of your source pixel is not very big when your resolution is at 1920x1080. Fortunately we can get around this by down sampling an im-age a few times using a factor of two before blurring the image. If we sample the image down step by step using a factor of 2, the bilinear filtering which occurs on images as they change resolution helps us preserve detail as we go down in resolution. Then it helps us soften things as we go back up. Using all of these tricks is vital to helping us create a really soft shape for our blurs, but for a very cheap cost.

    Lets talk about what I ran into when I wanted to do all of these things in the UDK and why it creates a roadblock for us. Currently the UDK post process chain is linear. Each post process chain node accepts the current render target from a camera as a texture with 3 color channels and 1 alpha channel containing depth. The output of that post effect feeds to another, but only the color channels. The alpha channel is reset to the depth render in between dif-ferent effects.

    35

  • VERTEX

    Render Targets

    Normally in a custom post effects pipeline you could create your own texture which you could write to, or read from, and save out for later use. In this case we would need to do that multiple times (first to capture the bright parts of our scene, then later before and after the blur passes). Unfortunately, even with custom HLSL nodes within the UDK Material editor, we only have access to things within the pixel shader, and cannot declare new textures which happens outside of it. On top of that, to my knowledge there is not a mip chain to allow us to access lower resolution images of the default scene render.

    Lets talk about why this is a problem. In HLSL, to get the value of a pixel near or around the original correct pixel (in this case for a blur), you need to shift the entire image in either the U or V direction by 1 pixels worth of space. You then have access to the value of a new pixel as well as your original (so shifting the image down 1 pixel, gives you the value of a pixel 1 up from the original). Now because we want to achieve cheap blurs with multiple passes, we need access to the results of our previous blur, so that we can blur it again (vertical, then horizontal). Because the UDK post effects pipeline is linear, we cannot save out a blurred copy of our threshold (the bright spots which will get turned into bloom) without overwriting the original image (which we need to add our blurred threshold back too). This pre-vents us from any kind of multi-pass blur on anything other than our original image.

    For a long time this was a stopping point for me, since without a proper licensed version of the Unreal Engine, you cannot go in and alter the code to give yourself access to this. It is possible to do your bloom blur at default resolu-tion, but the cost of doing so is beyond doable. At this point I have to give credit to a real time graphics programmer Kris Lang at Sony Online Entertainment.

    Kris had been helping me for some time understanding complex rendering techniques and when hearing of this dilemma, reminded me that you could in fact render textures and access them real time in the UDK. Normally these textures are used for reflections on flat surfaces, but what if you could render them to flat walls and recapture the im-age in real time with a camera? It looks like now we have a solution!

    36

  • VERTEX

    Render Targets

    So lets talk about technique. The basic idea is using the Texture Render Targets of the UDK to store the textures mid post effect. To do this we will be capturing our scene with a camera actor other than the main one, and writ-ing that out to a texture in real time which we will display on a mesh somewhere in the scene you are working on. We can then recapture that image with another camera. Repeating this process gives us a way to access multiple textures. Also custom camera capture resolutions allow us to fake the down sizing I previously mentioned.

    As I mentioned before, we cannot use the normal camera for this (since it doesnt have a render output). Instead we want to use a SceneCapture2D Actor which can be found in the content browser under Actor Classes. Since this is your normal camera you will want to increase your view plane, and enable fog and certain post processes. Lets also name this camera Cam_InitCap. This camera is what is going to be capturing your actual render. Its output will be what is referenced for the final image composition, and your bright spots in your image. Check out the im-age attached to see what settings to use.

    HINT: You can preview your camera as your main camera, and fly it around like a normal camera by creating a new matinee in kismet and adding your Cam_InitCap as a camera track, then previewing it. You also need to make sure Cam_InitCaps movement physics are set to Phys_Interpolating so it can be animated.

    HINT: In the settings for my Cam_InitCap I plugged the render results into a temporary post effects chain so you can see what the camera is seeing (Cam_InitCap Tex_InitCap Mat_InitCap MainCamPostProcessChain).

    Now that we have our main actor, we need to create a new texture for it to write to (and plug it into the Texture Target) of Cam_InitCap. Right click in your content browser and create a new RenderTarget2D. You will want to make sure that you create it in floatRGB format, and that you set your resolution to be what your final image out-put will be.

    HINT: From here on out, resolution makes a huge difference. In this example I will be working at 1280x720. If you want to go higher, just make sure you keep the math in mind when we start cutting the resolution in half.

    After your TRT (TextureRenderTarget) has been created, you will want to double click and change some settings. Here you can adjust the size if you need to, as well as turn off the check boxes (specifically the render once option, since this will be a real time render).

    37

  • VERTEX

    Render Targets

    We also need to make sure the RTT tile is flipped, so that if there is any image bleeding when we blur, it blends better. Finally we need to set the address Y and X to mirror so that if there is any kind of offset as we blur, the seams wont be super huge. Check out the image for more information. Not including the size, all TRTs from here on out should have this format. Lets call this TRT Tex_InitCap.

    Next, we need to make a material to display this image. This material is going to be where we separate out the things we want to blur. Make a new material and set it to an unlit lighting mode. We want these display materials to be as cheap as possible. Lets call this materials Mat_InitCap. With this naming convention we can keep track of what texture is displayed on what material, and it will also match up with the name of the camera. This way we know that Cam1 Tex1 Mat1.

    Inside the material, we want to first call in your Tex_Initcap, and then extract the bright spots. The easiest way to do this is to just subtract your image threshold from your main texture sample, then clamp it (to prevent any negative values and weirdness). I also throw in some custom desaturation parameters and value parameters to give me more control. Finally I divide by (1-Threshold Value) to balance out the brightness. Make sure this material is set to the unlit lighting model!

    38

  • VERTEX

    Render Targets

    HINT: These values can be switched and played with later. There are many ways to do this part. The important part is the subtraction, and the clamping.

    We also need a 3D plane for Mat_InitCap to be displayed on. In any 3D program make a simple flat plane. The only important part about this plane, is the need for the aspect ratio to match the resolution you will be rendering at. Make sure you unwrap it to take up the full 0 to 1 space. Position this plane out somewhere in your scene, and put the Mat_InitCap on it. After this create a new Scenecapture2D actor. Lets call this camera Cam_HalfRez. We are now working down the resolution chain. We do this, instead of jumping straight to lower resolutions, because it helps keep individual pixels represented. If we were just to jump from full resolution to 1/8 resolution, small parts of the image would get completely lost.

    The settings for this camera need to be slightly different since we are now starting to stack real-time cameras. We want make this camera capture as cheap as possible. You can look at the image of the settings to use, but the most important thing is making sure the far plane is very close, and that the camera is just capturing an unlit version of your scene.

    39

  • VERTEX

    Render Targets

    Here comes the tricky part. You want to get your camera to line up perfectly with the capture of the plane. The easi-est way to do this is to put something bright and vibrant behind the plane, and look through your camera as you move it. I recommend making a temporary TRT and hooking it up to Cam_HalfREZ so you can see if any part of the bright background bleeds into the image from the edges indicating your camera is not correctly lined up. The unfortunate truth of the matter is its almost impossible to be 100% accurate. You will have to just get it as close as you can, as this part is very hacky. If you start to notice your images not lining up as we move down the chain you can nudge your cameras physically by tiny amounts. We will also do some work to attempt to make up for the lack of accuracy of this technique later on.

    Now we need a new TRT (call it Tex_HalfRez). Use the settings from the previous TRT here, but lower the resolution to of what your Tex_InitCap was at. We also need a new material (Mat_HalfRez). This material is just a simple transi-tion material, so it can be unlit, and just plug the Tex_HalfRez straight into the emissive slot.

    40

  • VERTEX

    Render Targets

    The next few steps are pretty repetitive so I wont go over them in detail. You need to duplicate your camera and plane and drag it over in 3D space, and rename them to recreate the down size. Instead of full resolution to half, you will be going from half to a quarter resolution. Lets jump ahead to the material that you are creating to display the quarter resolution image, since this is where we are going to be starting our blurs. Our first blur, is going to be a vertical Gaussian blur. If you followed the naming convention previously set, the material we want to be looking at is Mat_QuarterRez. Instead of just plugging the Tex_Quarter straight into the emissive slot, we need to blur the im-age. We will be doing this part with a custom HLSL node, with some custom inputs. We also need to use a Custom Texture node instead of a texture sample to make it easier to use in the custom HLSL node.

    Create said node, and select it in the material editor. You want it to output a float3, and accept 4 inputs. One of those inputs should be a UV coordinate node, so lets call that tex. The 2nd is your texture input, which we can call SceneColorTexture. We also need a value to dictate how far away each pixel sample for the blur will be (called Factor), and finally we need a float2 containing the X and Y size of our image (to know how far we are offsetting the image in each sample). Call that node PIXEL_SIZE. Check out the image for how I set mine up.

    HINT: Lots of these blur methods take testing. I recommend throwing in test images instead of your Tex_* TRTs so you can clearly see what is happening to the image. Now for some HLSL. Im going to just copy the code below with some comments explaining whats going on. It CAN be copy pasted into the custom HLSL node:

    //we need to have a variable that we can add the blur totals up too//float4 sum = 0.0f;//we are creating an array of gaussian weight approximationsfloat BlurWeightsGaussian[] = { 1.0f / 4096.0f, 12.0f / 4096.0f, 66.0f / 4096.0f, 220.0f / 4096.0f, 495.0f / 4096.0f, 792.0f / 4096.0f, 924.0f / 4096.0f, 792.0f / 4096.0f, 495.0f / 4096.0f, 220.0f / 4096.0f, 66.0f / 4096.0f, 12.0f / 4096.0f, 1.0f / 4096.0f,};//declaring variable for our loop float k; float i;

    41

  • VERTEX

    Render Targets

    //First for loop for blurring pixels //keep doing the loop for 13 steps for (i = -6.0f; i

  • VERTEX

    Render Targets

    This material needs to be set to a translucent blend mode (so we can put it in a post effects chain). In it, we want to just add our blur on top of our Tex_InitCap texture. Unfortunately, the bilinear filtering does not always work with this hacked method. To counter this I discovered if I add up all of my TRTs that I saved out as I was working up my resolution back to half (in our case only 2), then weight them individually to soften the effect I was able to remove any weird pixelization that occurs. I also added in some basic exponent control, and saturation and tinting features (for those of us who think anamorphic flares should be blue). The last step in this long process is hooking this ma-terial up in a new post effects chain, and opening world properties and hooking it up! Now as you fly around while in preview mode of your kismet camera, you should have the bloom effect up and working.

    Once you have hooked this up, you may have noticed that the fi-nal effect seems very delayed in editor. I dont honestly know why that is, but I have a feeling it does have to do with the cameras. When I made builds however the delay was gone. Using Intels GPU Frame analyzer, you can break down an individual frame of a build with this effect in it and check to see that the down scaling of the textures and everything works as intended. Its a lot of work so maybe you will just have to take my word for it.

    I know that this effect is not the ideal way to get a lens flare in game. The UDK has a GREAT lens flare editor already in, and if you want cheap, then I recommend you go with that more than anything. What is really important to take away from this though, is the actual technique of saving textures. It lags in editor, but performs as expected in game. This is big because it means so many post effects tricks that are deemed insanely expensive within the UDK are now doable. Tricks like Kawase bluring techniques, light streaks (like the bloom found in Kane and Lynch 2), or multi-sized and weighted sharpening and blooms. Its very possible to use that bloom texture and mask in dirt on the screen from any source that has a bloom, or even follow Unreal 4s route of image based lens flares. Below is a snapshot of my own custom bloom.

    In closing, I hope everyone who stuck through this large amount of technical talk has learned something. It has been a really long journey trying to figure this out, and sharing it with the rest of the industry is something I have wanted and planned to do for a very long time. I know personally, that the journey isnt done, as there are always ways to improve, optimize, and show new tricks. I also wanted to credit all of the 3D assets in the above pictures to Epic (they are from the Unreal Development Kit) and some of my code to the guys working on Studio Post-Effect. Thanks for your time and maybe Ill have an opportunity to share more in the future!

    My name is Alexander Dracott and currently I am employed as an environ-ment artist at Sony Online Entertainment in San Diego, CA. I was born in Phoenix, Arizona but quickly moved to, and was raised in Portland, Oregon. There I attended the Art Institute of Portland where I had a chance to push myself by working on various projects with many talented students and fac-ulty.

    I have always been interested in games, ever since I started playing Word Munchers in early grade school. That interest slowly turned into a passion for the industry itself, and the process of making games. These days I have been studying more and more technical effects, and how they can be in-tegrated into pushing the quality of both art and storytelling. At work Im helping with Planetside 2, which has proved to be an amazing opportunity to learn and work with a brilliant team. I cant say whats in my future, but Im sure it has some form of 3D art or shaders in it. Maybe even a lens flare or two.

    w w w . d i g i t a l d r a c o t t . c o mAlexander Dracott

    About Me

    43

  • www.pstchoart.cghub.comTsvetomir Georgiev

    44

  • www.rebelconcept.blogspot.comRayph Beisner

    45

  • VERTEX

    Glass Tunnel

    RaptureCryEngine 3 Bioshock Homage By: Scott Homer

    If youre reading this your jaw is probably firmly resting on your desk having feasted on the high poly mechs and sci-fi goodness that gratuitously litters these pages, and have stumbled onto this for a cold shower. Well... grab a cup of tea, pause Tors live stream and settle down whilst I breakdown how I achieved my Bioshock homage using CryEngine 3.

    Its good to decide the scope from the start in order to assess whether the project youre embarking on is realistic with the time you have available. Remaking the entirety of Bioshock in the hours that fall between when I get home from work and when I drag myself to bed would take 10 years or more. So my aim was to create a large interior and then a couple of subsequent areas that best represented the atmosphere of Bioshock. I would, of course, be using CryEngine; as I was keen to showcase some of the features that I hadnt had much opportunity to use during my day to day duties at work.

    In the wake of many personal projects that fizzled out during the early stages of 2012, the project blossomed from a desire to do some casual high poly modelling. I found myself enjoying recreating the world of Rapture so much that I kept finding more inspiration. Why Bioshock? Awe-inspiring visuals, intricate decor and industrial architecture... whats not to love?!

    In this breakdown Ill go through various workflows I used to create the assets in the scene, highlighting techniques I employed to recreate the Bioshock atmosphere. Im trying to write this with useful information for both students and professionals (easier said than done!), but beware, this isnt necessarily the quickest or even best way of doing things; its just how I do it.

    Lets get started!

    Why

    Planning

    46

  • VERTEX

    Glass Tunnel

    With scope in mind I constantly had to remind myself that the focus was quality and not quantity. Several areas ended up being cut allowing me to focus on pushing the quality of the Main Hall, the Post Room and the Tunnel. After de-ciding the scope of the project, the next step was to collect reference images which would help me to plan out the environment.

    I gathered references from Bioshock, of course, but also from across a broad spectrum of Art Deco inspired architec-ture and interior design. I watched a collection of documentaries and got my hands on some really useful books (you can see a full list of these at the end of the breakdown).

    I found it inspirational to boot up Bioshock and run around taking screen shots. Just flicking through a collection of a few hundred images taken during a play through allowed me to dive (har har) back into Rapture after spending the day in the Crysis universe. At this point I was ready to get stuck into blocking out; I will quickly go through a few things to bear in mind during this process.

    47

  • VERTEX

    Glass Tunnel

    The Block Out For this project I made a fairly detailed block out for each area with simple geometry to scale (on the grid!) so that I could be sure that I had no nasty surprises lined up for me. I found it useful to setup each shot before I began produc-tion. I did this by dropping a camera into the scene and flying around to see what looked interesting. This helped me focus my attention on where I wanted detail. Past experience tells me that without doing this youre likely to spend a week making something look good that isnt even visible! At this point its useful to drop some lights into the scene to get a feel for how the scene is going to work atmospherically. This also helps during the texturing phase, especially when setting up my specular maps.

    Lighting and Atmosphere This is where I set up my Time of Day and also add a global environment probe (cubemap). If you can get the lighting working reasonably well at this point it will help greatly with asset production. This isnt to say the lighting has to be fi-nal, but often a fairly interesting solution is a great way to see if the environment reads well during the blockout stage. Creating moving refraction on the glass to give the feeling of the level being underwater was important to the final look of the scene. I also added volumetric lighting and ground fog to enhance the atmosphere and add depth to the composition.

    Environment ProbesEnvironment probes in CryEngine are similar to Mirror Ball probes used in pre-rendered CG. These are used to capture the environment around a certain point and create a flat image which can then be used to light your scene and add reflections. They are extremely useful for creating localized specular highlights and also for realistically lighting spaces. Setting them up is easy and they instantly bring your scene to life.

    48

  • VERTEX

    Glass Tunnel

    To set up an environment probe in CryEngine, you must first drop an environment probe into your scene (located un-der EnvironmentProbe in the Objects - Misc panel of the Rollup Bar), I find it is best to drop a global cubemap into the middle of the entire environment with a radius for 9999 for the global specular values of the entire level.

    This will create an overall cubemap of your level, which whilst being inaccurate will help to maintain a level of con-formity in your specular highlights throughout. For areas that can benefit from stronger or more accurate localised reflections I tend to go through the environment adding smaller cubemaps with much smaller radiuses for better results where the global cubemap isnt working well.

    To generate a cubemap you must first disable all cube maps in the scene, and then click either generate cubemap or generate all cube maps to capture the environment surrounding the probe. To see the result, reactivate all cube maps. Theoretically, turning the probe off before capturing the cubemap should prevent issues with the cubemap multiplying itself by itself and give the most accurate results possible.

    49

  • VERTEX

    Glass Tunnel

    Texture Creation

    ContrastIt is important to have good contrast between light and dark areas in lighting, and the same can be said about architec-ture. Soft curves contrasted with strong lines can create areas of focus. This can be seen in the strong vertical columns of the Main Hall which are contrasted by their curved tops. This is also echoed in the curved roof which contrasts with the straight vertical walls.

    NoiseDetail draws the viewers focus in the same way that contrast does. Therefore noise in the form of detail across an entire scene can make things very hard to read. Noise is something that is often most evident when placing objects in a scene, however you need to be aware that to balance an image you must create areas where the eyes can rest. I tried to create pools of noise complimented by more sparse areas to focus the player/viewers attention. One way to cut back on noise was to have large bare walls with minimal detail so the eye is drawn to the focal point of the envi-ronment.

    If you make sure the scene looks good with just floors, walls and ceilings, adding props and detail should only make it more awesome- I have always found this advice really useful. If the walls and floors arent blocked out, textured and lit at the start of an environment, the likelihood is that youre going to run into a wealth of issues further down the line when you find that the environment as a whole doesnt really work. With this in mind, my first priority when it came to building the actual art was to create these base textures. Ill go through in depth how I created the walls, and then illustrate some useful processes I used to create some of the other textures.

    50

  • VERTEX

    Glass Tunnel

    Base Mesh

    For the walls of the Main Hall area, I wanted to create a dark, cold stone slab, based on a mixture of polished con-crete, slate and basalt. I wanted the worn edges and dam-age that is inherent to the porous quality of concrete, the dusty chalkiness of slate, and the dark flat nature of the basalt. Anything is possible in Rapture no?

    The wall material is a blend shader, mixing together two separate textures using a height map and vertex colors to define the areas that are affected by each texture in the blend. When creating blends I usually try and create two textures that represent extremes; a clean version and a de-stroyed version so that I am able to blend between the two and get a result that can be used for multiple applications; destroyed, partially destroyed and intact. For the wall tex-ture I created a fairly clean (but overall worn) concrete plate and then a heavily damaged concrete plate.

    I started with the clean version of the blend, this way I can layer up the damage on top of this when I came to texture. To begin I created a back plate to the size of the texture, this was at a ratio of 2:1 (1024x512). This is used for the mortar that fills the gaps between each concrete plate and also as a low poly mesh to bake from. I snapped the planes vertices to the grid and dragged out a rectangle at 1 meter x 2 meters. I then rotated it 90 degrees so that in the front orthographic view the plane is upright, facing the camera. I tessellated this mesh in order to ensure it is subdivided equally, so that in ZBrush the plane maintained its shape and dimensions. The graphite modelling tools includes a great subdivision rollout that I used to tessellate my meshes without having to do it manually.

    Main Hall Walls

    51

  • VERTEX

    Glass Tunnel

    After loading this mesh into ZBrush, I divided it up a couple of times to make sure that mesh is dense enough to support sculpting the edge damage. I separated my mesh into its respec-tive subtools to prevent accidentally sculpting on the wrong area of the model (click Groups Split in the Subtool panel).

    I also added some polish and relax deforma-tion (deformation panel Polish 80 Relax 80) to relax the tiles edges and give it a soft-er look. From here the concrete plates were ready for sculpting. Subtlety is key; the clean mesh didnt need anywhere near the same amount of detail as the damaged version. I was quite conscious that pushing the clean texture too much would create a lot of noise throughout the entire scene.

    From this I created the geometry for the actual wall tile; this is simply a second plane of almost the same size with a shell modifier to give it some depth.

    I aligned this to the back plate so that they in-tersect each other; this prevented the tile from floating above the mortar and creating strange shadows when the Ambient Occlusion (AO) is baked out.

    These meshes were then both exported as .OBJ files using the ZBrush preset in the .OBJ exporter.

    52

  • VERTEX

    Glass Tunnel

    For sculpting edge damage I used a mixture of the Clay, Clay Tubes and Trim Dynamic brushes, these gave a good balance of edge noise and smooth chamfering of edges. I then exaggerated this so that the wear was obvious at a distance in the scene.

    High frequency detail

    I grabbed a concrete texture from CGtextures and dropped it into Pho-toshop; this texture has the slight surface pitting noise (caused by the air bubbles in the concrete when it is poured) that I would like to use across the concrete tile. Firstly I created an alpha for use in ZBrush, to do this I selected the pitted areas in the concrete texture using the Select Color Range tool in Photoshop (Select-Color Range) and then used the color picker to select the black areas, I had to tweak the fuzziness of the color range in order to pick up some of the micro-details.

    I then selected inverse of this (Select-Inverse) and then deleted the rest of the texture, leaving behind a white background with the pitted de-tails on top. In order to use this as an alpha in ZBrush, I simply inverted the canvas (Image-Adjustments-Invert) giving me the inverse result.

    Now, in ZBrush, I divided the mesh a couple more times to around 1.5 million polys. I created a new layer (so I could adjust their intensity (Lay-ers panel - +)), I then loaded my new alpha into the Brush alpha slot of the Clay tubes brush.

    Using the DragRect stroke function, I simply dragged my detail onto my mesh using a rectangular lasso type application. By varying the size and tweaking the z-intensity of my brush strokes I was able to add some more variance to my sculpt.

    53

  • VERTEX

    Glass Tunnel

    I then returned to 3ds Max and exported out my back plate to use as a low poly and then baked it all in xNormal. As you can see on the next page I generated the AO, normal and height map from xNormal. I used the CrazyBump to cre-ate a diffuse map which can be used for slight edge highlights. To do this, in CrazyBump select paste normal map from clipboard

    To finish off, I added some slight large scale, low frequency noise to the mortar between the tiles. This is only visible in the areas where damage to the edges is severe between the plates of con-crete. From here the rest of the work comes in the texture, so I merged these meshes together and exported the high poly plate (To do this, go to Subtool-Merge Visible and select the merged mesh from the Export panel).

    You can also use Subtool Master which is included in the new-er versions of ZBrush (and available from http://www.pixologic.com/zbrush/downloadcenter/zplugins/ for older versions of ZBrush) to export each subtool as a separate mesh.

    54

  • VERTEX

    Glass Tunnel

    Putting the Texture Together

    At this point I had all I needed to make my clean texture, so it was time to get started putting it together in Photoshop.

    PSD File structure:First off I loaded up a 2048x1024 document in Photoshop, (twice the eventual size of my texture) and created a group within this for each of my textures; - Clean diffuse, - Broken diffuse, - Overlays (general layers shared between both diffuse textures), - Clean specular (to be pasted into the alpha channel of the diffuse), - Broken specular (for the alpha of the broken diffuse), - Clean normals, - Broken normals, - POM Height Map (for displacement) - Blend Mask (the height map used to mix the 2 textures together). - Junk folder for layers that I didnt want to delete in case I needed them later.

    The resulting diffuse map is then tweaked to taste using the various sliders, I tend to try and make the contrast as high as possible so its easier to separate the highlights from the mid-tones.

    55

  • VERTEX

    Glass Tunnel

    I find it useful to do this, and to also name my layers wherever possible to keep everything neat and tidy. I always cre-ate my textures bigger than my intended size so that if I ever need to upscale them I can easily do this without having to recreate the texture.

    The diffuse: As mentioned previously my main concern was ensuring that the clean concrete plates didnt become overly noisy, I planned to use the texture extensively so hiding that the concrete was so heavily tiled was vital. In order to mask rep-etition, I rotated the UVs of a number of the concrete plates; unfortunately the downside of this is that any details in the texture must be readable even if the plates are flipped vertically.

    The clean diffuse consists of mainly the AO overlaid onto a good concrete texture sourced from CGtextures, combined with slight highlights using the CrazyBump diffuse map. I used monochromatic noise and motion blur to create a verti-cal directional run layer and overlaid that on top also with a low opacity. For the grout, I sourced a rough concrete texture and painted this into the areas around the edges of the tile. This gave the effect of rough mortar holding the concrete plate in place. Finally I tweaked the brightness and contrast values to reduce the noise in the texture and bring it into the right range for the scene.

    The normal map: The normal map required very little work; I generated a simple normal map using CrazyBump and masked this out using the mortar layer in the diffuse group.

    56

  • VERTEX

    Glass Tunnel

    Creating the damaged concrete plate:

    Once the clean version of the concrete plate was completed I had a base to work with for generating the damaged portion of the shader. The idea is to take the clean mesh and work into it to create a destroyed concrete plate. My technique to achieve this varies. Often I just look at reference and free-hand sculpt the detail and other times I cre-ate a template and work from that. The easiest and most realistic method involves gathering a number of textures with the correct amount of damage and then merging these together to use as a guide in ZBrush. I have used this technique time and time again to create damage throughout the project, some examples of which can be seen here.

    57

  • VERTEX

    Glass Tunnel

    Using a template in ZBrush discourages your brain from forcing your hand to draw patterns in the concrete cracks as this will break the effect completely. I tend to avoid using any one image, as often only a portion of a reference image has the high frequency details that will both tile well and look interesting. For this example I quickly grabbed three good textures and merged them together in Photoshop to use as a rough template, as shown below.

    PROTIP Removing Light Information from PhotosThis is a really useful technique for any texture or reference image. On something this rough that I will likely throw away it isnt THAT important; however for final textures I always use this to remove light information from my base textures. I do this by using high-pass to bring the tonal values roughly into the same range (Filters-Other-High Pass-255) using a Radius of 250 pixels.

    And then fade this by going to Edit-Fade-High Pass, setting the opacity to 100%, and set the mode to luminosity, re-moving the hot spots from the lighting and bring everything into the same tonal range.

    58

  • VERTEX

    Glass Tunnel

    Back in ZBrush I grabbed a copy of the clean concrete tile (always keep the original!), and applied the concrete tem-plate as a texture. This will serve as the basis of the sculpt. This presents the chance to get creative; I started tracing some of the more interesting lines and bridging them together using the Clay tubes brush, digging out areas to create some depth. It is good to think of cracked concrete as subtractive damage. Cracks take volume away from the mate-rial so I usually try to avoid adding any outwards detail to the concrete as this is not how the material naturally reacts to damage. It is useful to toggle the texture on/off occasionally to see how things are looking; I often play around with the material too in order to better see what Im doing.

    (In this case I de-saturated the image but it is not necessary)

    59

  • VERTEX

    Glass Tunnel

    As the sculpt progresses I often try to refine areas as the bigger picture becomes clear, digging deeper in certain places and just generally revisiting traced areas to add detail using a mixture of the Clay-Tubes and Dam-Standard brush-es. During this process I often try and walk away from the screen to see if the concrete is looking noisy from a distance. If this is the case I often remove some of the smaller crack details.

    Here are some of the maps I find useful to generate from my high poly sculpt to put together a convincing blend. The height map generated will form the basis of the blend mask; it is also useful for creating extra depth in crevices using POM.

    And heres one I made earlier! This one has had a lot of the noise stripped out.

    Baking

    60

  • VERTEX

    Glass Tunnel

    For the diffuse of the broken concrete texture, I worked on top of the clean texture; keeping this group visible be-low the cracked concrete layer and then began working on top of that. I dropped my AO and CrazyBump diffuse on top and began working into these to see what looked good. At this point I multiplied the height map on top with a low opacity to increase the depth of the cracks between concrete chunks.

    Another great way to make more interesting concrete chunks is to select a few random pieces and start darken-ing or lightening them in different places to increase the contrast in the texture and make the concrete look more separated.

    In order to emphasize the chunks of concrete, I darkened the edges and used white highlights from the diffuse texture around each piece to make them pop. For the gaps between the concrete chunks I used my height map as a mask and started to paint in noise in selected areas to make it look like crumbled concrete. I worked into the cracks with a black standard brush to polish up any areas that would benefit from some deeper crevices.

    Cracked concrete texture breakdown:

    61

  • VERTEX

    Glass Tunnel

    Normal Map Breakdown:

    Now for the interesting stuff! My goal here was to add height variance and add better definition in any cracks that could benefit from a little extra love. First of all I created a noisy, pebbly normal map that added that little bit of detail to the larger crevices, I did this by running a decent mud/dirt/ground texture though CrazyBump, and then overlaid this.

    I masked out this noise in order to confine it to the cracks. I often do this a couple of times to get some variation in the normal maps deepest crevices, overlaying several normal maps (using the above technique) to increase the depth.

    From here things get more complicated, in order to add variance to the way that the texture receives light, I overlaid normal map gradients on selected chunks of concrete.

    This forces the surface to pick up light differently across the broken surface. A subtle effect that often makes surfaces look much more dynamic than they would normally look, on the next page you can see how the normal map looks with (left) and without (right) this effect:

    PROTIP Overlaying Normal MapsNormal map A is on the bottom, normal map B is on the top. In order to combine these two normal maps, first select normal Map Bs blue channel and press CTRL-L (or Image-adjustments-levels) and change the output levels to 128 (or 127), this will take the deta


Recommended