Author Topic: HOWTO: Create Texture Maps with Frequency Separation  (Read 11870 times)

2015-06-12, 01:21:14

dubcat

  • Active Users
  • **
  • Posts: 426
  • ฅ^•ﻌ•^ฅ meow
    • View Profile
How does this work ?
We split the low and high frequencies and blend the high frequencies with the right Corona value.
You create all the maps by adjusting "Value" and "Contrast".
I have made a sRGB/RGB to Corona value converter in Excel, download link at the bottom.


Why use this workflow ?
This method is non-destructive, since we split the frequencies we have full control over the actual texture value. Lets say you want to create a Glossiness map with the same effect as 0.4 Corona value. We input 0.4 intro my converter and get 168 RGB for people who are using Auto Gamma, or 102 for people who are using 1.0 Gamma. We fill the low frequency layer with 168 RGB and we are done. If you change your mind and want the Glossiness map to have 0.6 Corona Value, you just change the low frequency layer to 202 for Auto Gamma or 153 for 1.0 Gamma. It's that easy, you don't have to think about Gamma anymore.

How do we split the frequencies?
There are two methods to do this.

#1 High Pass
* Open your diffuse texture
* Go to "Filter > Other > High Pass"
* Enter a radius that you like, I usually go for 100.
* Set the layer to "Linear Light" 50% Fill

#2.1 Apply Image method 8-bit image
* Open your diffuse texture and name the layer Average
* Duplicate the diffuse texture and name it HighFreq
* Select the Average layer
* Go to "Filter > Blur > Average"
* Select the HighFreq layer
* Go to "Image > Apply Image"
* Set Layer to Average. Set Blending to Subtract. Scale as 2 and Offset as 128.

* Set the layer to "Linear Light" 100% Fill

#2.2 Apply Image method 16-bit image
* Open your diffuse texture and name the layer Average
* Duplicate the diffuse texture and name it HighFreq
* Select the Average layer
* Go to "Filter > Blur > Average"
* Select the HighFreq layer
* Go to "Image > Apply Image"
* Set Layer to Average. Turn on Invert. Set Blending to Add. Scale as 2 and Offset as 0.

* Set the layer to "Linear Light" 100% Fill

Creating the Albedo (Diffuse) Map
I'm using THIS texture, I have made a quick and dirty seamless version.
I like to use the High Pass method.

* Create a group folder in Photoshop named "Albedo"
* Rename your diffuse layer to "Reflectance" and drag it into the folder
* Duplicate the "Reflectance" layer and name it "High Pass 100"
* Go to "Filter > Other > High Pass"
* Enter 100 as radius.
* Set the layer to "Linear Light" 50% Fill
* Select the "Reflectance" layer and do "Filter > Blur > Average"
I don't like the color we got from Average, so I'm filling the layer with #898983. This is how you change the color of your albedo/diffuse.
It should look like this


Creating the Glossiness Map
* Create a group folder in Photoshop named "Glossiness"
* Create a layer named Value, this is where we control the Corona Value.
* Fill it with #828282 or whatever value you want. Use my converter.
* Create a new folder inside the "Glossiness" folder and name it "128 RGB".
* Set the folders Blend Mode to "Linear Light" and leave Fill at 100%
* Copy the "High Pass 100" layer intro the "128 RGB" folder and change Blend Mode to "Normal" and Fill to 100%
* Add "Hue/Saturation Layer" above the "High Pass 100" layer and set "Saturation" to -100
* Add "Brightness/Contrast Layer" above the "Hue/Saturation Layer" and change "Contrast" to 19
It should look like this


Creating the Reflection Map
* Duplicate the "Glossiness" folder and rename it "Reflection"
* Fill the "Value" layer with #D0D0D0 or whatever you want. Use my converter.
* Change "Contrast" to -50
It should look like this


Creating the Bump Map
* Duplicate the "Reflection" folder and rename it "Bump"
* Fill the "Value" layer with #ECECEC or whatever you want. Use my converter.
* Duplicate the "Contrast" layer 2 timer.
* Change the last "Contrast" layer to -31. So you should have -50 -50 -31 Contrast.
It should look like this


Here is the end result. And the best thing is. You can just High Pass another Concrete texture and swap it out and everything is ready. Maybe you have to tweak the contrast sliders +-10. I have template files for Concrete, Wood, Stone etc.


Notes
* The image you get after extracting the high frequencies with High Pass is around 128 RGB.

* Enable "Expanded View" in the "Histogram". This will make it easier to get the correct Corona Values.

- "Mean" is the average of the values in the image. You use this number with the Converter to get the Corona Value.
- "Std Dev" this will tell you the contrast in the image.

* Adjust the the "Value" layer until you get the value you want in "Mean"
* Adjust the "Contrast" layer until you get the value you want in "Std Dev"

How to convert old materials to this workflow

I don't want to break any copyright rules by distributing maps, so I'm going to remake this Evermotion floor texture by using a map from CGTextures. As you can see, you can "steal" the look of other materials with this method too.

I'm going to use THIS texture as a base

I have made a quick and dirty tillable version of the texture and used High Pass 100.
I used "Average" on the original material and got #443225, I filled the "Reflectance" layer with that color.


The original ""Glossiness"" map has 198 "Mean" and 12 "Std Dev", this is what we must match.


I didn't have to change the "Constrast" layer. I filled the "Value" layer with #C7C7C7 that is 198 RGB.


The orignal "Reflection" map has 216 "Mean" and 11 "Std Dev", this is what we must match.


I changed the "Contrast" layer to 8 and the "Value" layer to #D9D9D9 that is 217 RGB.


The orignal "Bump" map has 217 "Mean" and 13 "Std Dev", this is what we must match.


I changed the "Contrast" layer to 27 and the "Value" layer to #DADADA that is 218 RGB.


Here is the remake, you can't see the groves in the bump because this texture didn't have any deep grooves.
If we had used the original wood texture from Evermotion it would look identical, but you would have the frequency separation controls.
« Last Edit: 2015-11-29, 23:49:43 by dubcat »
             ___
    _] [__|OO|
   (____|___|     https://www.twitch.tv/dubca7 / https://soundcloud.com/dubca7 ( ͡° ͜ʖ ͡°) choo choo

2015-07-04, 20:41:07
Reply #1

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 7109
  • Let's move this topic, shall we?
    • View Profile
    • My Models
Hi dubcat, curious if your converter could be placed online, to google spreadsheets for example? I don't have excel nor open office calc, but i'd like to have access to simple converter like yours. I found one converter online, but it's quite cumbersome to use.
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2015-07-04, 23:03:30
Reply #2

dubcat

  • Active Users
  • **
  • Posts: 426
  • ฅ^•ﻌ•^ฅ meow
    • View Profile
Hi dubcat, curious if your converter could be placed online, to google spreadsheets for example? I don't have excel nor open office calc, but i'd like to have access to simple converter like yours. I found one converter online, but it's quite cumbersome to use.
Here you go, Google Spreadsheet
             ___
    _] [__|OO|
   (____|___|     https://www.twitch.tv/dubca7 / https://soundcloud.com/dubca7 ( ͡° ͜ʖ ͡°) choo choo

2015-07-04, 23:13:25
Reply #3

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 7109
  • Let's move this topic, shall we?
    • View Profile
    • My Models
Great, thank you!
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2019-05-16, 16:56:47
Reply #4

actrask

  • Active Users
  • **
  • Posts: 141
    • View Profile
    • actrask.com
Does this spreadsheet exist somewhere else? The link is broken

2019-05-19, 21:55:02
Reply #5

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 7109
  • Let's move this topic, shall we?
    • View Profile
    • My Models
Does this spreadsheet exist somewhere else? The link is broken

You don't have to use this converter with Corona anymore. Just switch to corona colour picker in 3ds max and you will be able to read and enter photoshop values directly.
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2019-05-20, 19:49:39
Reply #6

arqrenderz

  • Active Users
  • **
  • Posts: 827
  • arqrenderz.com
    • View Profile
    • arqrenderz
All this photoshop actions can be scripted? i have try but photoshop cant use actions if the layers have another name, Anyone with some experience can shed some light on how it can be done? Thx!

2020-12-02, 13:34:24
Reply #7

RikyWalls

  • Active Users
  • **
  • Posts: 14
    • View Profile
Hi dubcat, curious if your converter could be placed online, to google spreadsheets for example? I don't have excel nor open office calc, but i'd like to have access to simple converter like yours. I found one converter online, but it's quite cumbersome to use.
Here you go, Google Spreadsheet

Really interesting! Thank you for sharing your knowledge!
I was googling about the use of frequency separation for make tileable textures and I find this interesting post...I'm tring to implement
on normal map too...The bad thing is that in photoshop cloning in noth possible between layers..and that's where frequency separation is useful using high and low layer. Have you ever try this for make tilable textures with this technique?

2020-12-02, 14:31:54
Reply #8

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 7109
  • Let's move this topic, shall we?
    • View Profile
    • My Models
If you want simultaneous cloning on multiple layers, then you should give a try to Affinity Photo.
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2020-12-03, 10:28:36
Reply #9

RikyWalls

  • Active Users
  • **
  • Posts: 14
    • View Profile
If you want simultaneous cloning on multiple layers, then you should give a try to Affinity Photo.

Thank you for your suggestion. I already use affinity, for cloning multiple layers, the thing about frequncy separation is that is less distructive then just cloning. (cloning produce halos)
With frequncy separation halos are almost no visible. (n.b. I'm working on high resolution maps)