ZBrush to Photoshop : One click rebuild all the passes in a document

 

After I added a professional tangent normal mapping algorithm  to bake your textures with the best quality as possible using the ZGametools Texturer Toolset.

 

I wondered to myself what would be the best feature that all pro would like to get to complete the workflow in ZGametools.

Let me introduce you the “Smart” and “Extendable” Javascript support for ZGametools and Photoshop.

The feature is available at the moment in ZGametools Texturer and ZGametools Renderer, And soon for ZGametools Baker but i must to complete the support of Substance BatchTools before.

Well  instead of sending files one by one, using the ZGametools Core , I took the decision to invest of my time developing a function that build on fly a “Smart” and “Extendable” Javascript file to run with Photoshop CC.

Like it was on my priority list, and the architecture of the ZGametools that got a complete Project Workspace Manager would match ideally to organize such of new tools.
I got to invest some time o understand how to write javascript to automate tasks in photoshop, and finally

It generates off the Rendering Batch Process, a Javascript file that defines the rendered passes to send to Photoshop,  based on the options set in ZGametools Render options Panel.

The architecture of the script generation you create from Zbrush , has been thought to be entirely hooked  the most simply as possible.
Simply click on Append SDK  button, and it will create a “Scripts” directory (with sub-dir and files) structure of file ready to be edited within the your Project’s workspace directory

Insanely easy to edit and to add news actions you would like to automate during the document construction process in Photoshop.

 

All my Toolsets are Coded with love for Artists.

ZGametools Normal map algorithm – Unity 3d 5.5

This test is not supposed to tell which is best or worst, so make you own appreciation keep in mind only the final result is the most important thing that you should never forget.

Level, Lighting, and Rendering setup

Quality : Fantastic

Graphic Settings : Default

One Distant light  ( sky light)

HDRI, SSR,   are  enable

Anti-Aliasing : FXAA3 Console

Notes on level and rendering setup

Setup the scene in Unity especially the Screen Space reflections when the smoothless parameter in the shader are set to 1, it was a long fight to understand what would give me the more realistic result. To be honest , I am still not convinced by both final renders, and therefore I had a long time to take in consideration production practice like :

setup the reflection probe, choose to bake it with box projection or using “Realtime” settings for the cubemap. I also had a try with a legacy, the “reflective >  bumped specular” but it not lightmapped shader so the Global illumination can ‘t to be apply on the mesh, and it has never convinced me enough to post some render of that test,  so I came back to the new standard materials ( PBS Specular /Metallic ). IMHO, the  PBS Metallic shader is completely useless, as you can get the exact same result using the PBS specular, the only difference is that with metallic, you can’t to define a color for the specular.

 

Look ‘n Feel

Allegorithmic PBS SpecularZGametools PBS SpecularAllegorithmic PBS MetallicZGametools PBS Metallic

Observations on the surface reflections

Allegorithmic MetallicZGametools PBS Metallic

Conclusion

Make your own conclusion, share your observations and opinions by posting a comment.

ZGametools Normal Map Algorithm – Marmot Toolbag 3

That test is not supposed to tell which is best or worst, so make your own appreciation keep in mind only the final result is the most important thing that you should never forget.

I had exported the normal map baked with Substance painter as RGB 8 bits PSD file format, and loaded it in Marmot toolbag 3.

(on left : sp 2.4.1, on right : ZGametools]

The two materials in Marmot Toolbag are strictly identical, only the path to the normal map is different.

In this test there is no optimization of the scene or positioning of the light source, the models and textures are rendered with the exact same conditions.

AllegorithmicZGametools

The normal map was baked and exported as PSD file in RGB 8bits format directly after the baking from Substance Painter 2.1.4 ( super sampling 4×4).

The normal map baked and exported as PSD in RGB8bits format.

There is nothing really noticeable on both, they looks very similar lighting, reflections distance…

The main Difference, require to have a close look on the materials reflections.

 

First Observations (Low Dark contrast on Depth)

The First Observation is all about the blue Channel of the normal map, that concerns the depth that give the volume on the texture.

In accordance to the high mesh used to bake the texture, that has a lot of depth volume on it. the baking of such extreme volume is giving too low dark contrast on the blue channel and generates unrealistic reflections. like pictured on the screen below.

AllegorithmicZGametoolsAllegorithmic (not annoted)ZGametools (not annoted)

 

Note : This issue happen in substance painter in Iray rendering mode because Iray in Painter doesn’t not support 16bits normal map( read this article). This issue happens into Unreal Engine too (read this article).

Second Observation : (Banding)

Both render are very similar , it hard to tell which one is the best and correct result.Actually this shape look flat on front of it, but it is not.

 

normal-map-marmotset-sp-vs-zb-bandingTo check what is causing the banding to happen on both normal map  when we have a close look on the model surface in Toolbag 3 . I have applied an RGB level with extreme value to reveal how each channel are blend together.

normal-map-marmotset-sp-vs-zb-banding_rgb_level

From a very closed view, we start to see the pixelated effect on the model surface.

normal-map-marmotset-sp-vs-zb-banding-close-up

 

Conclusion

Make your own conclusion, share your observations and opinions by posting a comment.

ZGametools Normal map algorithm – Unreal Engine 4.14

That test is not supposed to tell which is best or worst, so make your own appreciation keep in mind only the final result is the most important thing that you should never forget.

The main purpose of the standardization for normal maps you want to use into any Game engine and real time technology, is to make sure the normal map will fits with the DirectX Compression (DXT5 /BC5).

 

Level, Lighting, and Rendering setup

  • Engine Scalability Settings : Epic
  • Build lighting : preview mode
  • One Sky light ( Distant light)
  • Three Static Point Lights ( Red and blue at ground level, green is head height from the ground)
  • One global sphere reflection cubemap for the complete level ( as recommended by Epic )
  • One sphere reflections on front of both models
  • SSR + SSAO enable
  • Planar Reflection for the ground
  • Rendered with Geforce 760 GTX /shader model 5

Material setup (gold /silver) :

normal-map-ue4-material-setup

Important Note : The Screen space reflections generate false lighting on border of the screen for both rendering tests ( SP & ZGametools).

Look ‘n Feel

AllegorithmicZGametools

Here is the normal map baked With Substance Painter 2.4.1 rendered into Unreal Engine 4.14.

On the normal map baked with ZGametools in Zbrush and rendered into Unreal Engine 4.14.

Observations on the surface reflections

AllegorithmicZGametools

Any Banding Issue ?

AllegorithmicZGametools

 

The Blue Channel after the Re-Normalisation of the Normal map

AllegorithmicZGametools

Conclusion

Make your own conclusion, share your observations and opinions by posting a comment.

ZGametools Normal map algorithm – Substance Painter 2.4.1

That test is not supposed to tell which is best or worst, so make your own appreciation keep in mind only the final result is the most important thing that you should never forget.

Description of what i did in Substance painter :

  1. I had baked the normal map in RGB16F native format using the baker available in Substance Painter 2.4.1.
  2. I had imported the bakes done with Zgametools/Zbrush (PSD RGB 8bits) as resource in Substance Painter.

Global observations:

normal-map-subtance-painter-2-4-1

At this moment, it seems hard to tell which texture as been baked with allegorithmic or ZGametools Normal mapping algorithm and which texture is best quality to work in Substance painter.

Detailed observations :

I gonna apply a material that give some reflection ( glass visor) and let judge about the quality and difference in Substance painter viewport, with both Painting mode, and Iray mode.

The Painting mode :

normal-map-marmotset-substance-painter-painting-mode

Conclusion : Zgametools baking in RGB 8bits let display Low dark contrast for the depth( blue channel)  of the normal map, which result in some stepped gradient not really accurate.

IRAy mode :

 

normal-map-marmotset-substance-painter-iray-mode

At the moment you export your normal map to a RGB 8bits format file even if you done the normal map in Painter, the low dark contrasts from the depth data in the normal map will let display  that kind of artifacts in Marmot Toolbag, Unreal engine 4 and more.

If you have to continue to work on the texture with substance painter it would be clever to bake the normal map using Allegorithmic bakers instead of ZGametools and using the tools available to create a substance painter project from Zbrush directly.

And do not forget the most important is the final result you get with the game engine  of your choice.

Do not decide what is best solution without to have a look about what are the cons and the pros to use Allegorithmic or Zgametools algorithm with different game engines.

Note : RGB 16bits format is too big to be use in game industry.

ZGametools Normal map algorithm – Test Overview

That test is not supposed to tell which is best or worst, so make your own appreciation keep in mind only the final result is the most important thing that you should never forget.

Features

Industry Standard requirements for Normal map texture:

  • Support DirectX and OpenGL Normal map.
  • Compatible with all game engine  ( Unreal Engine 4 , CryEngine 5 , Unity 3D 5.5 , Stingray )
  • Compatible with software editors  like  Substance painter, Substance Designer and more
  • Support DirectX compression, Optimized for DXT5 and BC5 compression.
  • The Normal map are computed from 16bits matcap data ,then are  rendered with BPR and directly exported to RGB 8 bits PSD /TIFF file format, without extra edits to apply in Photoshop.
  • No Banding Issue ( read more about Banding)
  • Rendering time and quality of the anti-aliasing of BPR renderer.

In both articles I am trying to make relevant observations i am comparing the normal map i had baked using Substance Painter (native RGB16bits) with the normal map baked using ZGametools in PSD RGB 8bits file format and imported into Substance painter as texture resource.

Note :  Both articles linked above are constantly updated.

The stress test

What is my Objective ?

My objective to provide a normal mapping algorithm to use with ZGametools Texturer Plugin in Zbrush that is conform with all  the industry requirement and who follow all conventions and all norms, and that could compete with other algorithm on the market.

Why do I based my comparison and observations, on substance painter normal map algorithm  why not a different algorithm ?

To me the best and finest baking algorithm for normal mapping on the market, is the one built
by the Allegorithmic developers. The normal map you bake with Allegorithmic tools, are compatible with many game engine and editors.
What i am trying to reproduce with ZGametools is to provide at least, an equivalent of in terms of quality and compatibility,
than what Substance designer and substance painter would provide to you no matter which are the game engine or software editors
you would like to use with ZGametools normal mapping algorithm.

The Baking Setup

To make sure i based my research in the right direction, I setup a mesh and exported it to subtance Painter, to bake a clean normal maps.

Substance painter normal map spec :
  • Texture resolution  : 2048* 2048
  • Baked RGB16bits and supersampling 4×4
  • Exported to PSD format in RGB 8bits
  • Rendering time : 1 minute 36 secs
ZGametools normal map specs :
  • Texture resolution : 2048*2048
  • Baked and exported to PSD RGB 8bits
  • Anti-Aliasing : BPR subpixel level 3
  • Rendering Time : 6 ~ 10 seconds

Switch between the tabs to compare both Textures

AllegorithmicZGametools

(Click for the full Size )

( Click for the full Size )

Here is the hires model  sculpted in Zbrush, then exported as Obj file to bake the normal map in Susbstance Painter 2.4.1.

This is the same model i use to bake directly in Zbrush.

zbrush64_2016-11-04_16-59-55

 

ZGametools Texturer : Sharing my progress and my workflow

Some Features :

Bake accurate normal maps and target the engine of your choice compatible with GGX and metalness workflow.
*** Optimize GGX reflections for Marmot toolbag, or Unreal Engine 4 using engine target presets, and some more support to come for ( maya/stingray, unity, cryengine)
**** Baking time are faster that substance painter baker or any other solution on the market ! *
***** BPR rendering AA is taking no time ! better quality that what Substance Painter 2.4.1 gave me after 1 minutes of baking with no AA !

Bridge Zbrush to Photoshop, Marmot Toolbag, and Unreal engine 4 with no effort. *
Use Toolbag or Unreal Engine 4 as previewer during your sculpting session in zbrush.
Switch to normal map shader then, sculpt directly the normal map in zbrush canvas.

 

Complete description of the video :

Workflow with External application * (all along the video i jump from app to app)

Workspace manager helps to exchange with Zbrush > photoshop > Marmot Toolbag, then finally end into Unreal engine 4.
workspace-directory
Both applications helps to check the all the baking that is entirely achieved into Zbrush, with the new Normal map Matcap.
Work in Zbrush, then bake and switch to the game engine and apply the edit, then you can use Toolbag or UE4 as previewer in combo with zbrush,
during your sculpt session.

1a. Sending the baked texture using ZgameTools core to Photoshop,
Note : then after the document is open into Photoshop, you don’t need to use the core module, it will update in Ps if the file has changed.
1b. I just apply the crop to the texture to remove the margin and by the way the 1 pixel black border.

2a. Toolbag scene has been setup just before the video capture.
2b. The path to the texture are pointing  within the workspace directory, where zbrush batch save all rendered passes you setup in the render options of the Zgametools.
2c. Then when you switch to PS or marmot toolbag will automatically apply the textures changes without to do anything.

3a. In UE4 you import your texture then setup the material,
3b. then you will only have to select the updated texture in content browser and click Reimport !


Clipping Tools ** ( 2’15 in the video)

Get more control on soft or sharpen edges of your sculpt/texture using the Zbrush tools ( clay polish, smooth, relax etc..)
Note : I use a clipping plane with an offset that is driven by the layers intensity, depend the result i like to get, adjust the clipping for soft or sharpen edging.

zbrush-vs-spainter-normal-map-cliping-methodOn top ZGameTools baking using the clipping plane method, on bottom Substance Painter 2.4.1


GGX Reflections ***

Take the control on how the GGX reflections applies the horizon occlusion on your normal map, mostly depends of the game engine you choose to export to.
Several presets (Unreal engine 4, Unity 3d, Maya/Stingray, Marmot toolbag) are now available in Zgametools Texturer to match the game engine of your
choice with the optimized settings.

Rendered into Unreal Engine 4.13  ( on top ZGametools bake, on bottom Substance painter bake)

zbrush-vs-spainter-normal-map-ggx-reflections


Baking Rendering Time ****

My computer specs : ( low spec :s)

  • Amd phenom II
  • 6 gb ram
  • Geforce 760 GTX
  • no ssd

Example :

Zbrush BPR Default AA Settings, Substance Painter with no AA
2048*2048 take only 6 seconds in Zbrush with BPR and default AA settings, and between 30 seconds to a minute to bake using Substance painter with no AA.

 

On left ZGametools baking, on right Substance painter 2.4.1

zbrush-vs-spainter-normal-map-helix

Stay tuned.

Nicolas