Showing posts with label CG. Show all posts
Showing posts with label CG. Show all posts

Sunday, 13 March 2016

Comparing albedo map creation techneques

In this post I am going to be looking at some different methods of producing albedo maps from a photograph for use in a PBR material system. For these tests I will initially be comparing the possible techniques such as using Photoshop to manually create the map, as well as semi-automatic creation though using software such as ShaderMap. To actually get a good idea of what results are possible I am going to be looking at a variety of materials types.

Test 1: Wood



Results

Using the manual method kept more of the dark information such as the cracks. This could probably be made better with a little more work to balance levels, however this may be a desired look for the material type.

The ShaderMap results have more colour variation as the dark areas are better filled with colour information which better fits the definition of an albedo map.



Conclusion

Close up the difference in dark areas can be seen, but at a further distances the difference is barely noticeable. Other than the dark notch detail which looks washed out in the ShaderMap version, the maps look very similar to each other but for the use of this texture I do prefer the results of the manual process.

Future tests

  • Brick
  • Fabric
  • Ground

Sunday, 14 February 2016

Understanding and adapting to a Physically Based Rendering (PBR) workflow

So Physically Based Rendering (PBR) is here in a big way with Unreal Engine 4, Unity 5, Quixel Suite 2 and Marmoset Toolbag 2 but a few to name that now use this workflow as standard. It's quite a lot to take in, but not too hard to understand once you get going with it. Rather than try to explain what the differences are and what you need to do to adapt, I think it's more useful to just list the materials I found while learning this new workflow, as there's others out there that have already done that job.



Reading material

Physically Based Rendering Encyclopedia - https://docs.google.com/document/d/1Fb9_KgCo0noxROKN4iT8ntTbx913e-t4Wc2nMRWPzNk/edit

The above link covers most of the other materials I have read and listed below but it's also worth reading the rest as it may cover different tools and techniques in your own workflow.

Physically Based Rendering in Substance - https://www.youtube.com/watch?v=LP7HgIMv4Qo

Allegorithmic PBR Guide Playlist - https://www.youtube.com/watch?v=mnJ8NjLRmLk&list=PLB0wXHrWAmCwwpWr5aZ1lf0wY3IcWJAjE

Texture Maps Explained - PBR Workflow - https://www.youtube.com/watch?v=PjGCtnEDDeU

Physically Based Texturing - https://www.youtube.com/watch?v=Tt30zzBQb3w

Tutorial: Physically Based Rendering, And You Can Too! - http://www.marmoset.co/toolbag/learn/pbr-practice

Basic Theory of Physically-Based Rendering - https://www.marmoset.co/toolbag/learn/pbr-theory

Tutorial: PBR Texture Conversion - http://www.marmoset.co/toolbag/learn/pbr-conversion

Allegorithmic - The Comprehensive PBR Guide - https://www.allegorithmic.com/pbr-guide

Physically Based Materials (Unreal Engine 4 documentation) - https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/PhysicallyBased/index.html

PBR Texturing Techniques - http://quixel.se/dev/issue03



Textures

gametextures.com
Offers a library of ready to use maps for use in a PBR workflow. Although not free, at the time of writing they do offer a 14 day free trial which includes 75 or 200 material downloads which is very generous and helps you get started with this new workflow and for $19 and $30 per month after that it seems like a fair deal.


Tools
Allows you to take a set of maps from alternative workflows and convert for use in PBR. This is not just a plug everything in and hit convert process though. You will need to provide the required inputs to get good results and spend some time tweaking.

gametextures.com drag and drop Substance system - https://www.gametextures.com/how-to-import-gametextures-substances-into-ue4-and-unity-5/
The website now offers downloads of substances which can be quickly imported into Unreal Engine and Unity via drag and drop.

Need to create extra texture maps?
If you have a normal map then NDo has a built in feature to take a normal map and output a variety of different maps including AO, height, specular and cavity - http://quixel.se/usermanual/quixelsuite/doku.php?id=convertmenu

For the workflow converter you will also need a gloss map. These are easy enough to produce and this video shows the basic procedure - How to create a gloss map from a diffuse map https://www.youtube.com/watch?v=OKdUIm3i_jc


Workflow Tips

Albedo map creation

Manual process using Photoshop

How to Make an Albedo Texture from a Diffuse Texture - https://www.youtube.com/watch?v=KKQZN3eoKUo

Process steps:
  1. open diffuse map
  2. create a duplicate layer of the diffuse map. ensure the new layer is above the original
  3. fully desaturate (CTRL + U or add an adjustment layer) the duplicated layer to create a cavity map
  4. invert (CTRL + I) the duplicated layer, so that dark areas now show as light
  5. change blending mode of the duplicated layer to Soft Light
  6. make any changes to saturation etc of original map (if required)
  7. using the luminosity values chart below select the value most appropriate to the type of material
  8. open the histogram and ensure the expanded view is selected by clicking the arrow and four lines in the top right of the window and set Channel to Luminosity in the drop down
  9. take note of the median value
  10. adjust the levels (CTRL + L or add an adjustment layer) of the original map (or the overall new texture) so that the median level comes close to the luminosity value from the chart
Semi-automated process using ShaderMap

Creating an Albedo Map from a Photographic Texture - http://shadermaptutorials.com/tutorial/creating-an-albedo-map-from-a-photographic-texture/

Luminosity value guidelines
Material            Linear value  sRGB value  photoshop    source          
                                              median value
Brushed Metal       0.02          0.16                     [2]
Charcoal            0.04          0.22                     [1]
Fresh asphalt       0.04          0.22                     [1]
Rubber              0.04          0.23                     [2]
Black acrylic paint 0.05          0.25                     [3]
Coal                0.05          0.25                     [2]
Leaves              0.05          0.26                     [2]
Rust                0.06          0.27                     [2]
Plastic (glossy)    0.10          0.36                     [2]
Painted metal       0.12          0.38                     [2]
Rough steel         0.13          0.40                     [2]
Worn asphalt        0.12          0.38                     [1]
                    0.15          0.42                     [3]
African tanned skin 0.15          0.42                     [3]
Bare soil           0.17          0.44        112          [1]
Dirt                0.17          0.45        115          [2]
Plastic (rough)     0.19          0.48                     [2]
Brick/Concrete      0.23          0.51                     [2]
Dry clay soil       0.23          0.51                     [3]
Mud                 0.23          0.52                     [2]
Green grass         0.25          0.53                     [1][3]
Plaster             0.25          0.54                     [2]
Canvas              0.27          0.56                     [2]
Old concrete        0.30          0.57                     [3]
Wood                0.31          0.59                     [2]
Red clay tile       0.33          0.60                     [3]
Rock                0.33          0.61                     [2]
Desert sand         0.40          0.65                     [1][3]
Satin               0.43          0.69                     [2]
New concrete        0.50          0.72                     [3]
New concrete        0.55          0.76                     [1]
Clean cement        0.55          0.76                     [3]
Ceramic             0.57          0.78                     [2]
Ocean Ice           0.50–0.70     0.73-0.85                [1]
White cement        0.70          0.85                     [3]
White acrylic paint 0.80          0.90                     [3]
Fresh snow          0.80–0.90     0.90-0.95                [1][3]
Notes:
some values converted using https://docs.google.com/spreadsheets/d/1KcHvNFqQA8Y7xyjMTuuQgMTT3bB6lvNpTgpsU1MmDjs/edit#gid=0

Sources:
[1] https://seblagarde.wordpress.com/2011/08/17/feeding-a-physical-based-lighting-mode/
[2] http://www.marmoset.co/toolbag/learn/pbr-practice
[3] https://www.fxguide.com/featured/game-environments-parta-remember-me-rendering/

Sunday, 23 February 2014

Articles worth reading for any 3D Artist

10 KILLER TIME-MANAGEMENT TIPS FOR ARTISTS
http://magazine.artstation.com/2015/03/10-killer-time-management-tips-artists/

10 THINGS PROFESSIONAL GAME ARTISTS WISH THEY KNEW WHEN THEY FIRST STARTED
http://blog.digitaltutors.com/10-things-professional-game-artists-wish-they-knew-when-they-first-started/


6 Habits You Can Learn Right Now to Be a More Productive Artist for Life


Maya Workflow Tips: Tools to Get the Job Done Faster


DEMO REEL AND PORTFOLIO TIPS FROM GAME INDUSTRY PROFESSIONALS
http://blog.digitaltutors.com/demo-reel-and-portfolio-tips-from-game-industry-professionals


The Art of the Showreel
http://cgi.tutsplus.com/articles/the-art-of-the-showreel--cms-21449


WHY THE CG ARTIST WHO ONLY KNOWS ONE APP IS DYING


UNITY, UDK OR CRYENGINE – WHICH GAME ENGINE SHOULD I CHOOSE?
http://blog.digitaltutors.com/unity-udk-cryengine-game-engine-choose


3ds Max vs. Maya: Is One Better than the Other?
http://blog.digitaltutors.com/3ds-max-vs-maya-is-one-better-than-the-other


TEXTURING FOR GAMES – MAINTAIN A HIGH LEVEL OF DETAIL WITHOUT EXTRA GEOMETRY

Thursday, 20 February 2014

Working between Maya and Max

Back face culling

Maya - is done on a per veiwport basis - enable back face culling in shading tab of the viewport and un-checking two sided lighting in the lighting tab

Insert two edge loops (for high poly models)

Maya - use insert loop tool and select multiple edge loops and scale tool to push the edges

Mirror geometry

Maya - either use mirror geometry tool, or duplicate selection and set the scale for the axis to mirror in to -1 and the others to 1. using mirror gemoetry tool method will only mirror where thr current object is, to mirror across an axis (like using the mirror modifyier in Max), but it requires the pivot to be on position 0.

Select objects by material

Maya - in hypershade - Edit > Select Objects with Material


Rotate pivot

Maya - rotate the object back to world orientation, then use freeze transforms

Move/scale in two axis only

Maya - hold CTRL and drag on the one axis you don't want to move/rotate. Be careful when using in orthographic views as it still scales in all three axis.

Snapping

Maya - hold v to snap to vert/egde hold x to snap to grid

Isolate Selection

Maya - Shift + I to enter isolation in the current viewport, or check View Selected under Show > Isolate Select. To exit isolation uncheck View Selection in the same place.


Bend Modifier

Maya - apply a Nonliner Bend deformer found in the Animation menu Create Deformers > Nonliner > Bend


or the following icon on the Deformer shelf (if enabled)


View poly/tri count

Maya - It's in the menus but really easy to miss (as are many things in Maya's menus)

Display > Heads Up Display > Poly Count


Re-topologising geometry

Maya - Split Polygon Tool which is hidden away in recent version of Maya (2013). Useful to create an item on one of your shelves for quick access. Thanks to my tutor Ian Harrison for that one!

Max - Cut tool


Finding n gons

Maya - Mesh > Cleanup... choose Select matching polygons and Faces with more than 4 sides


Toggle Wireframe

Maya - create a custom command in the Hot Key Editor using the following code and assign to a key (I like to use the T key as by default it toggles displaying manipulators which seems a pretty pointless operation).

string $panel = `getPanel -wf`;
modelEditor -e -wos ( !`modelEditor -q -wos $panel` ) $panel;

Combine Meshes while keeping pivot points

Max - Automatically done when using Attach tool.

Maya - use mel script "FlattenCbombine".

Download from http://area.autodesk.com/downloads/scripts/flattencombinemel and extract the .mel file to Maya's script folder which is C:\Users\[UserName]\Documents\maya\scripts by default, but custom installations of Maya will use the directory during install. Then, open script editor window - Window > General Editors > Script Editor and type "flattenCombine". Note: this is case sensitive.


Now highlight the text and drag to the shelf to create a shelf icon for easy access and use. To use the script select the meshes you want to combine and press the icon on the shelf. Note: select the mesh with the pivot point you want to keep first, followed by all other meshes.

Maximize Viewport

Max - Alt + W

Maya - Spacebar

Push modifier

Max - Using the push modifier allows you to push the geometry based on face normals

Maya - Select the object (or faces of sub objects) and go to Modify > Transformation Tools > Move Normal Tool, then Edit Mesh > Transform. Use the Z axis (blue arrow) to push the faces in or out. This is the same as using the extrude tool, but means you don't have to remove the 'inside' gemoetry created.
https://youtu.be/UVRL4esNUlE?t=42s