[Infinity Series] PBR Tools including "PBR Conversion" to convert any Legacy Texture to Unity5 PBR!

PBR Tools from Infinity Series
→ Asset Store Link ←
PBR Tools is a set of tools designed to help developers work with PBR as well as use PBR features with legacy materials using the flagship tools “PBR Converter” and “Texture Changer”.

PBR Converter
This will allow you to convert any of your legacy textures to PBR textures. The big benefit is that it works with multiple texture types at once. Many of the Asset Store models you already have and love include texture atlases with multiple materials types, like Leather, Stone, Wood & Metal. With this tool, you’ll be able to use image maps to separate the types and assign metallic/roughness values to each. It does require you to create a Color ID map in Photoshop or another image editing program, but once you do that, you’ll be able to use sliders and check boxes to set up the Metallic and Roughness values. The script will also create AO & Height maps from the normal map!

Texture Changer
Now you can change individual textures on your legacy models! Up to 16 different sections of your model can be isolated and adjusted, or replaced entirely with brand new materials. Works with PBR and Non-PBR materials!

Potential Use Cases: Replace the metal in a sword you have from the Unity Asset Store with a brand new metal, or with wood, or something else. Change the skin tone of your models. Continue using your previously purchased Asset Store models with modern PBR models from our Infinity Series!

Combine Metallic Roughness
If you happen to have a metallic map and a roughness map, and want to use it in the Standard Shader, you can’t! This is because Unity (smartly so), expects the roughness values to be in the alpha channel of the metallic map. This tool has an input for the two maps and will export a properly inverted (Unity also expects the roughness map to be inverted – we’ll do that for you!) “Metallic Roughness” map which can be used in the Standard Shader.

Combine Albedo Opacity
Similar to the Metallic/Roughness, Unity expects the opacity map to the in the alpha channel of the albedo (aka diffuse aka base color) map. This tool will help combine two input maps into one “Albedo Opacity” map that you can use in the Standard Shader. (Just select “fade” or “transparent” at the top of the Shader options). With this, you could even add holes in floors for many of the models you already own!

RUNTIME: Color Blender
This is a runtime optimized feature. It allows you to blend a color with your material via code. There are four blend types to choose from (Copy, Multiply, Overlay & Additive). Via code you can change the blend type, the blend amount & the blend color. Perhaps the closer your player gets to this object, the brighter the blend color? There are many ways to use this.

RUNTIME: Color Modifier
This is a runtime optimized feature. Similar to the Color Blender, this allows you to change the Hue, Saturation, Lightness & Contrast of your albedo texture at run time. With it you could fade between saturated and desaturated, change the hue, or do many other things, all via code while the game is running.

There are more things I could add, if you have any idea of things you may like to have! Let me know! Let me know if these would be useful to you as well!

2 Likes

Very nice.

1 Like

Thanks!

Next version should have a really powerful Normal->AO baker with sliders to adjust the intensity of it all.

I decided to pull the review to add a KILLER new tool called “TEXTURE CHANGER”.

Seriously cool – this tool works with PBR and Non-PBR materials, and lets you selectively change the actual texture itself. If you have any other texture, perhaps one of the PBR textures you can create using our Base Material Generators from the Weapons & Armor PBR Pack #1, you can switch out whatever texture your material uses with the new ones!

You can also adjust the Hue, Saturation, Lightness & Contrast of your material, and even adjust the roughness value and add an overlay color.

In the example below, we took the PBR Converted version of Ethan and changed his suit to a Silver metal. For the various parts, we adjusted the roughness so it wasn’t as shiny as actual silver and added overlay colors. We didn’t change the texture on the skin or hair, but adjusted the colors to change the character completely.

Find it when PBR Tools is launched!

Added video showing the Texture Changer!

https://www.assetstore.unity3d.com/?asac=7juY35a0Rm#!/content/47725
LAUNCHED :slight_smile:

Let me know what you guys think! These tools are deceptively powerful.

This package qualifies for our contest! Get it, or any of our packages, write a review and tell us about it-- details here: [CONTEST]: Win the package of your choice from our Infinity Series PBR (EASY TO WIN!) - Community Showcases - Unity Discussions

Only one submission has been received, and up to 5 will win. So the odds are currently in your favor!

Super cool asset

Are produced shaders in one custom shader file or use the Unity standard shader structure ?

It doesn’t actually use a custom shader – it’s a workflow I designed using substances, and it exports into Standard Shader materials.

The only thing the user has to do besides adjust sliders for the effects is build a Color ID map for whatever texture you’re using, since there’s really no way for anyone to dynamically create one for you – at least not accurately to the various “materials” on a model.

I’m trying to figure out how to set up my server to verify purchases, so that users can upload Color ID maps for popular items on the asset store, and download as well, to speed up the process. No doubt many people who have bought environment packages from a particular Polish artist would appreciate being able to use them in Unity 5 :slight_smile:

I get it now. So would it be possible to assign the parametrers using a property, like a color range for example, than a texture based color ID ?

e.g. apply bumpy shiny property to black or grey color and leave the rest

If I’m getting what you’re asking, then yes.

The system allows up to 16 colors – they’re preassigned values. (white, red, green, blue, yellow etc). If something is not one of those colors, then it shouldn’t be affected at all by any changes. And of course you don’t have to change anything.

I’ll have to double check to see if something happens when the color value is close, but not exactly, the value required (like an almost-white) – would it just not be affected, or be partially affected. I think I can make it so that it’s partially affected, so that you may be able to get more smoothed changes.

Ultimately the main point isn’t to have much gradient between sections – a shield is usually Wood & Metal, not a blend between the two, for instance. But it could be an option for uses I haven’t thought of.

1 Like

Ok, seems very nice and controllable. Cant wait :slight_smile:

Bought this today and did a test run. However when I’m trying to Save the textures (using the menu item under Windows) I’m getting this error

AmbiguousMatchException: Ambiguous matching in method resolution
System.Reflection.Binder.FindMostDerivedMatch (System.Reflection.MethodBase[] match) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/Binder.cs:106)
System.MonoType.GetMethodImpl (System.String name, BindingFlags bindingAttr, System.Reflection.Binder binder, CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System/MonoType.cs:245)
System.Type.GetMethod (System.String name, BindingFlags bindingAttr) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System/Type.cs:787)
SFB_Exporter.SFB_Export (UnityEditor.SubstanceImporter substanceImporter, UnityEngine.ProceduralMaterial[] substanceMaterials, System.String basePath, UnityEditor.SubstanceArchive substance, System.String code) (at Assets/SFBayStudios/Editor/SFB_Exporter.js:16)
SFB_SaveTexture.SaveTexture () (at Assets/SFBayStudios/Editor/SFB_SaveTexture.js:23)

I’m using Unity 5.2.2p1 Pro on Windows 10.

EDIT: Looks like the bug (there was a bug in 5.2.2) has been fixed, but in the process, they changed some stuff behind the scenes so my script is throwing errors! [MESSED UP! :smile:]

I’ll update the script and paste it here.

FOR NOW: Use the gear icon in the top-right of the inspector (when the top-level material is selected, it’s the 2nd gear icon down), and export the bit maps manually. YOu’ll have to create a material and populate the maps into the material.

Ok, looks like I have to wait for the next patch then as downgrading isn’t an option for the project.

Just updated the post above. I figured I should check it out, since they did say 5.2.2p1 it’d be fixed. It is, but things got changed behind the scenes so my script is broken at the moment.

Suceeded in exporting the textures and assigning a new material using those to my character. Works like a charm ;). Thanks for the great support.

1 Like

Cool! hooefulky I will have a fix for the script soon, too

Hmm seems like I’m encountering an issue with the TextureChanger tool: I created my colorID masks and everything works fine until I’m at slot Custom 6. When I’m assigning the textures everything is still fine but when I’m checking the Main Customs 6 [0,255,255] the material turns completely black where the mask color should be assigned. Note I’m not setting any Hue, Saturation, Lightness, Overly settings for the section 6. This seems to be only the case for that item. Any idea what can be wrong?

EDIT: Nevermind, when I’m assigning everything for section 7 then the dark skin goes away. No idea what happend though but a non issue for now. Thanks.

Unity likes to re-bake the data every so often, sometimes seemingly at random time.s Do you think that’s what was happening? I’ll check out the graph on it, however, to see if anything is mis-connected.

UPDATE: I wasn’t able to replicate this – I used the demo TextureChangerb material (the one w/ the green suit on the character). I was able to replace the material with the demo metal.

One thing, the area will appear black until the inputs are set with the new material, so double check that the correct section had the inputs.