You are on page 1of 81

Art Pipeline Tips and Tricks

David Llewelyn

Wednesday, 10 April 13

David Llewelyn

About the Speaker


8 Years in game development and architectural visualisation. Been producing CGI for 15 years.

10 Apr 2013
Wednesday, 10 April 13

Page 2

10 Apr 2013
Wednesday, 10 April 13

Page 3

10 Apr 2013
Wednesday, 10 April 13

Page 4

10 Apr 2013
Wednesday, 10 April 13

Page 5

10 Apr 2013
Wednesday, 10 April 13

Page 6

David Llewelyn

About the Speaker


8 Years in game development and architectural visualisation. Been producing CGI for 15 years.

Born in Wales !!

10 Apr 2013
Wednesday, 10 April 13

Page 7

David Llewelyn

About the Speaker


8 Years in game development and architectural visualisation. Been producing CGI for 15 years.

Born in Wales !!

10 Apr 2013
Wednesday, 10 April 13

Page 7

Overview

10 Apr 2013
Wednesday, 10 April 13

Page 8

Overview
Prototyping in Unity. Preparing 3D assets. Texture creation. Importing in Unity. Optimization.

10 Apr 2013
Wednesday, 10 April 13

Page 9

Prototyping in Unity

10 Apr 2013
Wednesday, 10 April 13

Page 10

10 Apr 2013
Wednesday, 10 April 13

Page 11

10 Apr 2013
Wednesday, 10 April 13

Page 12

10 Apr 2013
Wednesday, 10 April 13

Page 13

10 Apr 2013
Wednesday, 10 April 13

Page 14

RobotLab and Stealth



Large number of high quality assets for distribution. Other work commitments. Some workow optimizations required.

10 Apr 2013
Wednesday, 10 April 13

Page 15

Prototyping in Unity

Prototype thoroughly in order to prevent abortive work. Identify areas of your process that can be automated and implement this early. Small savings throughout the art pipeline add-up to large overall gains.

10 Apr 2013
Wednesday, 10 April 13

Page 16

Prototyping in Unity

Use Unity primitives, or create your own custom shapes to layout levels and test your mechanics.

10 Apr 2013
Wednesday, 10 April 13

Page 17

Prototyping in Unity

Use Unity primitives, or create your own custom shapes to layout levels and test your mechanics. Make use of the Asset Store!

10 Apr 2013
Wednesday, 10 April 13

Page 18

10 Apr 2013
Wednesday, 10 April 13

Page 19

Prototyping in Unity

Use Unity primitives, or create your own custom shapes to layout levels and test your mechanics. Make use of the Asset Store! Creating quality artwork is time consuming. Prototyping helps to identify an asset list that is 100% required.

10 Apr 2013
Wednesday, 10 April 13

Page 20

Prototyping in Unity

Go to wiki.unity3d.com and search for OBJ Exporter.

10 Apr 2013
Wednesday, 10 April 13

Page 21

10 Apr 2013
Wednesday, 10 April 13

Page 22

Prototyping in Unity

Go to wiki.unity3d.com and search for OBJ Exporter. Editor Script that allows you to export .obj les from Unity.

10 Apr 2013
Wednesday, 10 April 13

Page 23

Prototyping in Unity

Exported OBJ is a good base to model over.

10 Apr 2013
Wednesday, 10 April 13

Page 24

Prototyping in Unity

Exported OBJ is a good base to model over. Precise snapping during polymodeling. Identication of repeatable, modular pieces. Easier to determine asset list and distribute to team members.

10 Apr 2013
Wednesday, 10 April 13

Page 25

Prototyping in Unity

10 Apr 2013
Wednesday, 10 April 13

Page 26

Prototyping in Unity

With Stealth we started-off creating a number of wall panels 2m x 2m. Used standard assets controllers and cameras to test the level design. Both art and code departments could collaborate and agree on design. Reduced refactoring.

10 Apr 2013
Wednesday, 10 April 13

Page 27

10 Apr 2013
Wednesday, 10 April 13

Page 28

10 Apr 2013
Wednesday, 10 April 13

Page 29

10 Apr 2013
Wednesday, 10 April 13

Page 30

Prototyping in Unity

Using this approach we managed to create a fully approved prototype very early-on. Art ts a feasible layout from the outset. Reduces the need to re-t precise artwork at the modeling stage.

10 Apr 2013
Wednesday, 10 April 13

Page 31

Prototyping in Unity
These saving meant time that could be better spent on art direction.

10 Apr 2013
Wednesday, 10 April 13

Page 32

Prototyping in Unity
These saving meant time that could be better spent on art direction.

10 Apr 2013
Wednesday, 10 April 13

Page 33

Summary
The main benets of this simple prototyping approach: 1. Early agreement between design, code and art. 2. Less chance of time wasting by having to re-position/re-stitch models. 3. Earlier distribution of workload amongst artists = fewer dependancies.

10 Apr 2013
Wednesday, 10 April 13

Page 34

Preparing 3D Assets

10 Apr 2013
Wednesday, 10 April 13

Page 35

Preparing 3D Assets

Group assets by commonality. Keep hierarchies as at as possible. Find a suitable taxonomy in order to organize hierarchies alphabetically. Consider a renaming script.

10 Apr 2013
Wednesday, 10 April 13

Page 36

Preparing 3D Assets

Reduce draw-calls by combining smaller objects. Massive objects represent a ll cost. Equalize triangles for better normal distribution.

10 Apr 2013
Wednesday, 10 April 13

Page 37

Preparing 3D Assets

Auto exporter scripts available through resources such as Creative Crash. Keep naming conventions consistent in your scene. OS project folders will be faster to navigate.

10 Apr 2013
Wednesday, 10 April 13

Page 38

Summary
When building your 3D assets: 1. Avoid time wasted drilling through recursive hierarchies. 2. Less repetitive exporting and naming in your OS. 3. Improve visual quality with good modeling practice.

10 Apr 2013
Wednesday, 10 April 13

Page 39

Texture Creation

10 Apr 2013
Wednesday, 10 April 13

Page 40

Texture Creation

Texturing is a process that is full of repetitive tasks. These are obvious cases for automation. Standardize PSDs for easier collaboration in team environments. Next-gen means even more assets!

10 Apr 2013
Wednesday, 10 April 13

Page 41

The Master Builder"

10 Apr 2013
Wednesday, 10 April 13

Page 42

The Master Builder"


www.davidllewelyn.com/v2/master-builder

10 Apr 2013
Wednesday, 10 April 13

Page 43

10 Apr 2013
Wednesday, 10 April 13

Page 44

Texture Creation

Part of a suite of Photoshop actions to help automate repetitive tasks. It takes a range source maps from tools such as xNormal. Produces a standardized, exible PSD template. Lets see how it works...

10 Apr 2013
Wednesday, 10 April 13

Page 45

Texture Creation

Robot and Stealth include 433 unique textures. On average setting-up a PSD by hand takes around 5 minutes longer. So, thats (433 x 5) = 2165 minutes. Or,

4.5 working days!

10 Apr 2013
Wednesday, 10 April 13

Page 46

Image Pre-Processing

10 Apr 2013
Wednesday, 10 April 13

Page 47

Image Pre-Processing

Work in PSDs within your 3D packages project folder. Use File>Scripts>Image Processor to automatically apply actions to your images.

10 Apr 2013
Wednesday, 10 April 13

Page 48

10 Apr 2013
Wednesday, 10 April 13

Page 49

Image Pre-Processing

Work in PSDs within your 3D packages project folder. Use File>Scripts>Image Processor to automatically apply actions to your images. This offers some distinct advantages:

10 Apr 2013
Wednesday, 10 April 13

Page 50

Image Pre-Processing
1. Flatten PSDs to reduce project size. 2. Reduce compression artifacts with lter combinations. 3. Normalize histogram levels. 4. Apply artistic effects or sharpening.

10 Apr 2013
Wednesday, 10 April 13

Page 51

Image Pre-Processing

The PVTRC format is commonly used for mobile. Can result in visible stepping or banding across gradients. Apply a hi-frequency noise to your textures to simulate dithering. Trick the PVTRC compressor.

10 Apr 2013
Wednesday, 10 April 13

Page 52

Summary
Processing images before import allows you to:

Reduce VCS sync times. Apply stylized lter treatments. Improve compression results for mobile textures.

10 Apr 2013
Wednesday, 10 April 13

Page 53

Importing into Unity

10 Apr 2013
Wednesday, 10 April 13

Page 54

Importing into Unity

Unity was designed to work similarly to Autodesk Maya in terms of interface. However, there are some differences when it comes to 3D.

10 Apr 2013
Wednesday, 10 April 13

Page 55

Importing into Unity



Scale is important for things like light-mapping and physics. Unity default unit = 1m (100cm). Maya default unit = 1cm. Default scale factor therefore = 0.01 (100x0.01)=1

10 Apr 2013
Wednesday, 10 April 13

Page 56

Importing into Unity



3DS Max default unit = 1m. Unity default unit = 1m. Scale factor should be set to 1. Do a cube test!

10 Apr 2013
Wednesday, 10 April 13

Page 57

Importing into Unity



Unity uses the left hand rule for cartesian coordinates. Same as DirectX. +X faces in the opposite direction to right handed packages. World-space rotation about Z will be in the opposite direction. This can cause complications when eyeballing values.

10 Apr 2013
Wednesday, 10 April 13

Page 58

10 Apr 2013
Wednesday, 10 April 13

Page 59

Importing into Unity

3DS Max uses swivel coordinates, so Z is up, rather than Y.

10 Apr 2013
Wednesday, 10 April 13

Page 60

Importing into Unity



.FBX .DAE .3DS .MB .DXF and .OBJ supported. Unity also supports the embedded FBX standard.

10 Apr 2013
Wednesday, 10 April 13

Page 61

Importing into Unity



Texture assets can be included with your 3D model le. Great for rapid prototyping, but can clutter projects with metadata. Consider importing standard FBX

10 Apr 2013
Wednesday, 10 April 13

Page 62

Cleaning-Up

Duplicate or unwanted materials, textures and models can quickly build-up. This can slow the team down. I propose a quick way to tidy-up a cluttered project:

10 Apr 2013
Wednesday, 10 April 13

Page 63

Cleaning-Up
1. Backup!! 2. Select all your scene les from within the project panel. 3. Right-click, and select Export Package. 4. Save this somewhere outside of the Unity project folder. 5. Select the project folders containing any duplicate les you wish to remove.
10 Apr 2013
Wednesday, 10 April 13

Page 64

Cleaning-Up
6. Right click and Delete. 7. Right click anywhere in the project pane, select import package. 8. Select the package you just exported and reimport. 9. Voila! You should end-up with a project containing only the assets referenced by your scenes. (Dont use this on your scripts folder!!)
10 Apr 2013
Wednesday, 10 April 13

Page 65

Summary
When importing into Unity:

Be aware that Unity uses the Left Hand Rule for cartesian coordinates. Use the embedded FBX format for rapid prototypes. Periodically remove unwanted les or duplicates.

10 Apr 2013
Wednesday, 10 April 13

Page 66

Optimization

10 Apr 2013
Wednesday, 10 April 13

Page 67

Optimization

Use Unitys view modes to troubleshoot and optimize poor draw performance.

10 Apr 2013
Wednesday, 10 April 13

Page 68

10 Apr 2013
Wednesday, 10 April 13

Page 69

Optimization

Specular component encoded in the alpha channel of the diffuse texture. Alpha view can be used to check specular maps are displaying correctly. When using PSDs, transparency on the base layer can cause specular to not come through. Useful way to troubleshoot.

10 Apr 2013
Wednesday, 10 April 13

Page 70

10 Apr 2013
Wednesday, 10 April 13

Page 71

Optimization

Draw cost without visible on-screen result (except alpha). Overdraw represented in an additive colour scheme. Lighter areas represent higher levels of overdraw. Remove these polygons from your model if possible.

10 Apr 2013
Wednesday, 10 April 13

Page 72

10 Apr 2013
Wednesday, 10 April 13

Page 73

Optimization

MipMaps are textures storing precomputed texture subsampling. Effectively smaller versions of the texture. Swapped at runtime to ensure texeldensity is appropriate to the nal on-screen resolution. Mipmap view shows which MipMap level is currently being used.

10 Apr 2013
Wednesday, 10 April 13

Page 74

Optimization

Highest (blue) mipmap level in foreground, yellow in the middle, red in the distance. Red in the foreground means textures close to the camera will appear blurry. Blue in the background means textures likely to be too high in resolution. Waste of memory.

10 Apr 2013
Wednesday, 10 April 13

Page 75

10 Apr 2013
Wednesday, 10 April 13

Page 76

Optimization

Set the Max Size for your textures in the inspector. Scene should be correctly balanced in the mipmap view. Correct distribution (blue> yellow> red) ensures that memory is not being wasted.

10 Apr 2013
Wednesday, 10 April 13

Page 77

10 Apr 2013
Wednesday, 10 April 13

Page 78

Optimization

Objects at same scale are statically batched. Rendered in the same draw-call. Boosts GPU performance.

10 Apr 2013
Wednesday, 10 April 13

Page 79

Questions?

10 Apr 2013
Wednesday, 10 April 13

Page 80

You might also like