Wednesday, August 27, 2014

Basic Asset turn around

Hola!

I compiled all of these assets into a turn-table scene and rendered it in Marmoset 2.  Admittedly, I'd like to put together a much better scene and will do so next time, but I ran out of weekend and PAX Dev is in just two days.

Anyway, this is the beginning of my Watermill environment that will eventually be put into Unreal 4.



It's pretty funny to see the change in quality going from the barrels to the wagon wheel, to the grain sacks and finally to the wooden crate.  I'm definitely excited to see my progress though and look forward to my next assets!

Have a great week and I'll see you at PAX Dev!

Sunday, August 24, 2014

Old time wooden beer crate

So the purpose of today's post is to go through my Substance Painter (SP) workflow to help myself remember key points and problems as well inform anyone else going through the same learning process as me  :)   Below are some beauty shots of the final product I made using this workflow. 


I'll go through my process to achieve this in detail below.  Ready, set, GO!

NOTE: This process is going to assume that the model has already been built and finalized with a basic UV unwrap -- all that is remaining is UV adjustments (in Maya), normal baking (xNormal) and texturing.  Also keep in mind I'm still a very new 3d artist and if you have any feedback or critique as to how I can streamline this workflow PLEASE let me know!

1. Mise en place:

a.  The first thing to do is research the asset online and decide how many materials there will be on the model. For this crate in particular, there will be two -- wood and metal.  Compile a base texture library for the asset using whatever resources you prefer. Organize your resources.

Base metal

Copper rust

Base wood

Worn wood corners

Custom beer logo derived from Grain Sack .psd elements


b.  Next, decide how many texture maps you want to create for the asset.  I opted to create (2) 2048x2048 maps for this crate; 1 for each material.  The plan is to resize them to 1024x1024 for the wood and 512x512 for the metal because I have already built this asset on a single 2048x2048 and I want to explore different methods.  It is absolutely possible to texture multiple materials on a single texture in SP and I will make separate notes (identified by: 1T) throughout this workflow outline on how these steps differ.

2. Prepping the Model:

a.  Separate materials by UVs when and wherever possible.  For this crate, there are metal straps on the sides and screws/nails on the wood itself.  Since the straps are pretty straight forward, you can insert some edgeloops to create faces that can be separated as UVs to make texturing much easier.  You will want to cut these UVs and keep them as a separate shell from the wood crate as you can paint by individual UVs in SP. (1T:  You should keep these UV shells in place in relation to the adjoining wood crate shells because you can delete these faces later.)  As for the screws and nails, we'll just have to paint those in by hand as adding geometry for each one would be dumb.

Base mesh before separating UVs for texturing

Adding edgeloops for metal straps


b.  This next step ONLY applies if you're creating >1 texture sheet -- using the Hypershade, assign separate materials to each set of UVs that will be on a separate texture sheet.  The reason you do this is because SP gives you the ability to paint on different materials individually, almost like working on two separate PhotoShop documents.  This does however mean that SP will export as many texture sets as you have materials assigned in the model.  An example texture set = diffuse, normal, specular maps; therefore 2 materials = 2 texture sets.  As below I have 2 material UV layouts: wood and metal.

Wood UVs

Metal UVs

c. Import HP/LP assets in .fbx format and import into xNormal.  Bake normals.

3. Importing to Substance Painter:


a.  To import: File --> New --> Discard (default scene) --> Select... (find your mesh) --> Document Resolution --> (desired) --> Add --> (baked Normal maps) --> OK

4.  Setting up Substance Painter:

a.  On the left hand side of the UI you'll see "TextureSets".  This should have whatever you named your Hypershade materials.  If it's highlighted then that's the Material you're working on.  Above that you'll see "Additional maps" under the "Document Settings" window.  Click on Normal map and assign the pertinent maps to the pertinent materials.

b.  Next, go to File --> Import Image --> and find the textures and other image resources you compiled to texture this asset.

c.  If you're unfamiliar with the UI beyond this point, Allegorithimic has some great tutorials to get you warmed up right here: https://www.youtube.com/watch?v=7DQZV9vOQpI&list=PLB0wXHrWAmCzhPKtFFF6xVEAOvfUJcV3s

5.  Base Textures:

a.  So to begin, choose a material to put a base on.  I started with wood because it's the primary material of the asset.  I first started by creating a Fill Layer and dropping my Wood texture into the diffuse channel. Then I adjusted the X and Y tiling below in the "Fill - advanced" Tool.

Base fill texture

Scaling Texture

b.  Looking at some of the wood grain, you can see that some pieces appear to be traveling the wrong way.  The next step is to create another Fill Layer and right click on it and select --> add black mask.  Select the mask as you would in PhotoShop, and select the Geometry Decal tool that is on the same tool bar as the Brush, Eraser, Projection, etc. tools.  Change the color to White and click the UV button.  From here we will step out of SP for a second to fix the wood grain direction.

c.  Locate your wood grain texture and right click --> Preview to open Photo Viewer.  Make a copy of the image and name it woodVertical_D. Next, use the rotate buttons on the photo viewer to rotate the image 90 degrees.  Import the vertical image into SP.

d.  On the Fill Layer with the black mask, select the Fill and attach the woodVertical_D image to the diffuse channel.  Next, click back on the black mask and press the "2D" view to view your UV layout.  Next, click on the UV shells that have the wood grain going the wrong way.  They will auto fill in with White and block transparency of the vertical fill layer.  You can also adjust the mask by objects, faces, and triangles if needed.  And like that, your UVs are painted and all wood grain is facing the correct direction.

Geo-Decal Tool

 2d View

e.  Repeat process (masking if needed) for the remaining base textures.

6.  Roughness:

a.  Painting in the roughness channel helps to customize and define the asset material.  Starting with the wood, I'll create a new layer above the woodBaseVertical mask and name it roughness and disable all Material channels but roughness, select a brush, and begin painting with the roughness uniform color slider as needed.

Wood roughness

Metal roughness

b.  Repeat across all materials as needed.

7.  Hardware:

a.  Next is to create hardware effects like screws, nails, bolts, etc.  SP Has some basic tools to help accomplish this but you can make your own as needed.  For this project I opted to use the "Bullet Holes" tool and painted in the metallic nails into the wood texture and opted to use the "Screw" tool for the metal bands.

Using "Bullet Hole" tool to make nail impact points

Painting in metal nail material

Using "Screw" tool to add height information to metal bands


8.  Accents:

a.  Next is to paint the texture accent layer.  In this case I'll use the copper rust texture to add some interest to the metal material of the asset.  Choose any projection material from the menu and then turn on or off any channels you wish to paint -- in this instance I will use diffuse and height as I have bitmaps for both.  Drag and drop your bitmaps into those channels and your stencil will update accordingly.  Holding "S" key will allow you to adjust your stencil as needed.  Go to town.  You can also adjust individual channels at any point when needed.

b.  Repeat across all pertinent materials.

8.  Grunge:

a.  I prefer to make a base grunge with substances and then painting in the details I want afterwards.  To start, create a fill layer and mask it out.  At the top of the Layers menu, clicking the Add Effects button will let you utilize substances -- for this I used the stock mg_dirt substance.  Adjust settings until you obtain the look you prefer.


b.  After creating a base grunge layer, create another layer and paint in custom dirt and grunge as desired.

Before crevice/custom dirt

After crevice/custom dirt

9.  Fresh edge wear:

a.  Finally, the last step is to create fresh edge wear and scratches.  I created another fill layer in my woodGroup just above the base wood layers.  I filled it in with the worn wood texture and scaled tiling 10x's.  Then black mask the fill layer and paint in grayscale where you want the worn wood to appear.  The end result is the finished images at the beginning of this post with the texture sheets below.

Wood Diffuse, Normal, Specular

Metal Diffuse, Normal, Specular


Monday, August 4, 2014

Grain Sack -- quick and pretty

Hello again  :)  After I finished updating from the last post I started on the grain sack and actually just wrapped it up.  I spent more time modeling and creating the custom logo than I did actually texturing -- plus Substance Painter didn't corrupt my file!  So I thought I'd add some quick beauty shots and call it a night.

Burlap diffuse texture edited and tileable -- found on cgtextures.com

Burlap height map

Grain logo: based of numerous French grain logos

Grain Sack prop in Substance Painter



UVs in SP -- You can paint directly on them or in 3D view; painting in 2D view = incredible consistency and time saving.

The model is VERY basic and really only took me about 45 mins start to finish so I'm not gonna bother with wireframes this time. Thanks for taking a look and I'll see you next time!  =D

Wagon Wheel prop -- My new workflow from start to finish

Hola my friends!

So last post I started playing around with Substance Painter to texture the barrel prop I'd made -- this time my focus was to create and refine my workflow using only Maya, xNormal, Bitmap2Material (B2M), Substance Designer (SD), Substance Painter(SP), and PhotoShop.  While I am nowhere near to mastering this workflow or the tools entirely, I can say for sure that anything I need to accomplish I can do so with just these tools -- hoorah.

This is the final product, rendered in Marmoset 2.  I've discovered that SP's included post rendering software, Yebis, actually looks better than Marmoset.  The only reason I didn't take screen renders directly from SP is because my texture file got corrupted.  Luckily I had exported some test bitmaps but was unable to complete the texturing process as I would've liked.  SP is still in Beta testing phase so I'm not particularly surprised nor frustrated, at least I got the test bitmaps out of it!.  Next project I'll have a finalized textured item and be taking screen renders from within SP if my file remains untainted  :)



The workflow on this project was, in order listed:
- Research and data collection
- Maya:  Blockout, HP modeling (prop and kit-bash assets), LP modeling, UV unwrapping, transfer map setup, .obj and .fbx exports.
- xNormal:  HP to LP normal baking.
- Substance Designer:  Curvature and AO baking.
- PhotoShop:  Compile and edit base texture library
- Bitmap2Material:  Adjust texture properties; normal, height, etc, bake tileable diffuse, height, roughness, metallic stencil .jpgs.
- Substance Painter: All texture painting and post processing (ideally).
- Marmoset 2 (as backup):  Image renders.

Research:
I wanted to get a basic idea of the wheel structure and texture so I did a little research online and found some base textures from www.cgtextures.com.




And the base textures from www.cgtextures.com



Unfortunately I didn't get around to accenting the metal with the copper texture before my file got corrupted, but there it is anyway.

After studying these and other research images online, I began the blockout phase of the wheel.  I started with the Hub, then created a single Spoke, and a single section of the wood rim.  I then duplicated the original spoke and rim portion and rotated them my 30 degrees to either side and then build the steel wheel section on top of those.  This ended up being much more difficult than I originally thought because as I began to duplicate the spoke and rim portions of the wheel, I found that my math wasn't adding up for it to match up exactly -- causing much heartache later on in the project.

So I've decided that eventually I will retake some basic math courses, particularly geometry and calculation classes -- maybe even delving into some architecture eventually and save myself future pain, suffering, and time.

After creating the blockout I jumped right into HP modeling.  I ended up with some pretty horribly translated edges on my normal map though and I think it's because I forgot to duplicate my original blockout mesh and instead, modeled my LP from scratch in orthographic views.  This cost me both time and quality.

HP Wheel Hub mesh modeled half at a time


Finished HP Wheel Hub

Wheel Spoke

 Wooden Rim

 And assembly duplication


Then outer steel wheel portion

Next I started a mini hardware kit to plug into the model for normal map information


 And plugged them in



I made adjustments to the HP mesh to get rid of 90 degree angles

And then modeled the LP version starting with the Hub

 then the Spokes and Rim


Next I UV unwrapped and exported the LP version in .obj for xNormal baking and .fbx for everything else.
I opted to texture just a single portion of the wheel to allow for maximum texture quality and to save time.

I also exported a plane and the kit-bash hardware and baked them in xNormal so that I could add in some of the bolts on the wooden rim in PhotoShop as they were too large to bake with the HP mesh

I then took the normal map and LP mesh into Substance Designer and baked AO and Curvature maps


Now that the mesh and base curvature, normal, and AO information was built I moved onto editing and preparing my diffuse textures.  Starting with the base textures I found in cgtextures.com, I edited out the bits and pieces I didn't want in PhotoShop like screws, scratches, bolts, etc and then saved the new images and imported them into Bitmap2Material.  One of the greatest things I found with B2M is that you don't even have to offset and tile your image in PhotoShop -- B2M tiles it for you automatically!  Good enough for stencils at the very least  :)  Not only does it do that, but you can then export Height, Normal, Specular, or any other information you want for your stencils to be used in Substance Painter.  Yeah, pretty incredible.

These are the final stencils with diffuse, height, and specular (if relevent) 512x512 maps:

Aged wood color

Aged wood height

Rusted metal color

 Rusted metal height

Rusted metal specular

Aged copper color

Aged copper height

Unfortunately I don't have any images of the work process in Substance Painter due to the corruption of the file, but I do have a couple different angled shots of the wagon wheel.  The last leg of finalizing the texture process though is to import the .fbx mesh, baked normal, AO, and curvature maps, and finally the diffuse, height, and specular texture maps.  Plug everything in as appropriate and begin texturing.


Considering how far Substance Designer has come and the incredible reduction in processing power as well as software stability, I really can't wait until Substance Painter is just as far along too  :)

The next prop to build is probably gonna be a grain sack or something else as simple and quickly attainable -- I spent a lot more time on this than I planned and PAX Dev is getting closer on the horizon.  Thanks for reading and I'll see you again soon!