Author Topic: Disney Specular and IOR  (Read 1452 times)

2024-08-26, 17:21:10

Sedrax

  • Active Users
  • **
  • Posts: 5
    • View Profile
Greetings. I wanted to ask you, if you have time for an answer) I am looking into Corona Physical MTL in more detail, namely Specular/IOR modes. And the question is: is Specular something like Reflection in Legacy MTL? Yes, it converts to IOR, but I mean the very principle of use. Also, how exactly to create textures for it? Previously, it was possible to simply make the texture black and white and adjust it by eye. Now we have to take into account that the color range should be up to 0.5, if I want to get an IOR of 1.5, and this complicates the task quite a bit, I don't know how exactly it can be done. And lastly, if there are ready-made textures for Reflection, how exactly do you convert them for Disney Specular? As I understand the textures from Megascans, namely "Specular" - are they made specifically for this mode? Thank you very much.

2024-08-26, 19:11:30
Reply #1

James Vella

  • Active Users
  • **
  • Posts: 645
    • View Profile
Its quite a deep topic, but for the sake of simplicity moving forward I would use the Metallic/Roughness method (default for Corona Physical) to be honest.

If you do want to use the Specular method regarding some textures you have on file then just put them into the appropriate material slots. In regards to the IOR you can read an in-depth topic I went into "Down The Rabbit Hole" on how you convert IOR to specular and bake them into your textures.

If you want to learn more about how Specular works I suggest you read the PBR guide (attached for convenience since I cannot find it online anymore - btw its missing pictures since I had to get it off the wayback machine.

Also if you really want you can also use my Bitmap2PBR plugin I made to do all these conversions for you, I made it quite a few years back but for the sake of learning you could use it if it really interests you (its a paid plugin but it converts a diffuse bitmap to PBR, Specular or Roughness or both). I dont use it myself anymore since I just stick with the Metal/Roughness workflow (and I wont be updating the plugin). FYI the plugin only takes a diffuse texture, and/or a metal mask bitmap, nothing else so if that doesnt help I dont suggest buying it.

« Last Edit: 2024-08-26, 19:28:52 by James Vella »

2024-08-26, 19:39:26
Reply #2

burnin

  • Active Users
  • **
  • Posts: 1604
    • View Profile

2024-08-26, 23:00:44
Reply #3

Sedrax

  • Active Users
  • **
  • Posts: 5
    • View Profile
Thank you very much. I will definitely review everything.

2024-08-27, 16:44:41
Reply #4

Sedrax

  • Active Users
  • **
  • Posts: 5
    • View Profile
If you use the standard metalness worflow mode, it turns out that you only need a texture for the Base Color, a roughness texture, and relief textures and the like, of course, having decided on the metalness parameter. But if the mirror image is too large, then you just need to numerically reduce the IOR and that's it? I understand it that way. On the other hand, if you turn on the Disney specular mode, you can more accurately emphasize the depth, and more precisely adjust this ability of specularity, and thereby add new details. Is everything correct?
The only thing I haven't fully understood is how to create textures correctly so that Specular does not exceed 0.5 (for example for IOR 1.5), because Specular in Metalness workflow differs from Reflection in Specular Workflow, as a minimum by the values ​​are converted to IOR and should be fairly accurate. Not using Substance, is there an alternative to creating this exact texture for the Disney Specular mode in Corona Physical? and is it possible to create it from an existing texture for Reflection or Diffuse/Albedo, but in 3d Max itself, for example, in the process of work? Without using third-party programs?

2024-08-27, 19:40:40
Reply #5

James Vella

  • Active Users
  • **
  • Posts: 645
    • View Profile
But if the mirror image is too large, then you just need to numerically reduce the IOR and that's it?
Its difficult to understand what you mean with this terminology, for example what is "mirror image"? If I were to guess your intent and by mirror you mean refectance at f0 (which is typically 0.04 for dialetrics) then yes you are correct you adjust the IOR value to suit.

if you turn on the Disney specular mode, you can more accurately emphasize the depth, and more precisely adjust this ability of specularity, and thereby add new details. Is everything correct?
Again same issue in regards to terminology, what is "emphasize depth", "add new details"? If I were to guess what you mean I would say - yes you have more control over the values instead of a simple metal/non-metal switch, however you also need more technical knowledge and be careful not to break the energy conservation rule. Also if you read my article on "Down the Rabbit Hole" you would see what little difference this makes... unless that kind of thing keeps you up at night.

Not using Substance, is there an alternative to creating this exact texture for the Disney Specular mode in Corona Physical? and is it possible to create it from an existing texture for Reflection or Diffuse/Albedo, but in 3d Max itself, for example, in the process of work? Without using third-party programs?
Yes. If you understand the formulas and have a good reference chart then you can just use color nodes or expressions (to remap between a 0-1 if required). I've explained this in detail on my article I mentioned previously. Ive also included the formulas you need for your expressions if you dont want to use Python (3rd party stuff).

My question to you is, what are you specially trying to accomplish? What is your need for this workflow? Maybe then we could give you some better solutions.
« Last Edit: 2024-08-27, 20:59:14 by James Vella »

2024-08-27, 21:32:26
Reply #6

Sedrax

  • Active Users
  • **
  • Posts: 5
    • View Profile
Just a little unusual. After CoronaMtl where always used texture for Reflection. But here she is not. And in different situations, in different scenes, there are moments when the reflection or the strength of the reflection is too strong (many different factors can influence it), and you want to reduce it a little. I understand that in dielectrics the reflection power is practically the same, but visually there are moments when it is desired to reduce it. In CoronaMtl, there were no problems, I lowered Reflection a little - and everything is ready. Here, I solved it only by reducing the IOR. But it seems that if you use a texture, it could turn out better. Well, that's in theory. I understand that the difference may be very small, but it was interesting to learn the various points that are related to it.

And thank you very much for the material you have dropped. I confirmed some knowledge, but you always learn something new.
« Last Edit: 2024-08-27, 21:38:18 by Sedrax »

2024-08-27, 21:55:08
Reply #7

James Vella

  • Active Users
  • **
  • Posts: 645
    • View Profile
After CoronaMtl where always used texture for Reflection.

Then why not just use the Corona Legacy Mtl? If that has the functionality you require then you are good to go. Its not going anywhere in the near future.

The Corona Physical Mtl is just simply an adaption to PBR - its an option. You dont have to use it. But moving forward PBR is a 'standard' and the easiest way to move between different applications or DCCs. There is always pros and cons to each workflow, but the main pro in this case is portability.

Here, I solved it only by reducing the IOR. But it seems that if you use a texture, it could turn out better. Well, that's in theory. I understand that the difference may be very small, but it was interesting to learn the various points that are related to it.

You can use whatever method works best for your scenario. Often people in production tend to lean towards what is fastest and easiest to comprehend and implement. You can always go down the rabbit hole on all/every situation but the Corona Philosophy has always been "What is the easy option for the artist" (This is my own phrase, since I cannot remember theirs). You can take from that what you wish, if its correct or not, if there is a better way, but they are doing their best to at least try to make it simplified and also give you the option to use previous workarounds or workflows. Its always the devil you know or the one you dont, so choose wisely.

2024-09-01, 21:20:12
Reply #8

Sedrax

  • Active Users
  • **
  • Posts: 5
    • View Profile
Quote
Again same issue in regards to terminology, what is "emphasize depth", "add new details"? If I were to guess what you mean I would say - yes you have more control over the values instead of a simple metal/non-metal switch, however you also need more technical knowledge and be careful not to break the energy conservation rule. Also if you read my article on "Down the Rabbit Hole" you would see what little difference this makes... unless that kind of thing keeps you up at night

The Metal/Non-Metal switch is always there, regardless of whether we use IOR or Disney Specular mode.

If I understand correctly, the Specular/Glossiness method is a method that was implemented in CoronaMtl (with the difference that IOR and Reflection were separate parameters)? and in the new PhysicalMtl - the Metalness/Roughness method, but with the ability to control F0 for the dielectric through Specular (if you turn on the Disney Specular mode, or through IOR). And usually, when they talk about Specular/Glossiness, they mean the Reflection slot, that is, the CoronaMtl implementation, in which nothing is converted to IOR, and IOR and Reflection are different parameters, unlike Disney Specular. Is everything correct? In your article, you said that Specular is the result of IOR and Reflection together. In your example, you created both metal and dielectric with one material. But when you used the Specular texture it wasn't the Metalness/Roughness method. You set the IOR+Reflection values ​​for the metal and the dielectric with the same texture, and for the dielectric it was just a color that should be within a range, eg IOR 1.5. In Corona Physical, this can be done only by the Metalness/Roughness method, where it does not make any sense, since by default, the dielectrics already have this value, and you can simply manually decrease or increase the IOR and everything, and the Base Color parameter ( such an example you had ), we will define both the color/strength of the reflection for the metal and the diffuse reflection for the dielectric. Moreover, the IOR of the dielectric will not affect the Metal in any way. So in the Metalness/Roughness method, Specular is just a converted IOR that controls the F0 for the dielectric. But it is another matter if we want to make not just a single color, but some texture/heterogeneity, in order to give different degrees of reflection to different parts of the dielectric. That's what I asked about. That is, in advance, I have to make something like a procedural Mix map, where I specify in advance the exact Disney Specular color (calculated, for exact conversion to IOR) for this or that part of the dielectric. But the task can become more difficult if it is not just some Dirt texture, but for example a wood texture, where different fibers should have different reflection strength.

2024-09-02, 13:37:51
Reply #9

James Vella

  • Active Users
  • **
  • Posts: 645
    • View Profile
That's what I asked about. That is, in advance, I have to make something like a procedural Mix map, where I specify in advance the exact Disney Specular color (calculated, for exact conversion to IOR) for this or that part of the dielectric. But the task can become more difficult if it is not just some Dirt texture, but for example a wood texture, where different fibers should have different reflection strength.

You can do this many ways, you could use the Corona Legacy and adjust the reflection strength for fibers, or do the same thing using a roughness texture in the Physical material. You could use an IOR texture or a clear coat. You could use composite layers or layered materials with masks if you really want.

In regards to your other questions regarding Specular, Disney have some papers that explain it better than I can.

https://media.disneyanimation.com/uploads/production/publication_asset/48/asset/s2012_pbs_disney_brdf_notes_v3.pdf

https://sayan1an.github.io/pdfs/references/disneyBrdf.pdf (someones homework, but its interesting)

edit:
Also if you want a concise explanation of specular, metallic, ior etc you can read this. There are other interesting articles from the link @burnin posted.
https://marmoset.co/posts/physically-based-rendering-and-you-can-too/#energy

My advice is take the information from this article and test it yourself either in Toolbag or with a shader that has both specular/metal workflows (in 3dsmax you can use the Arnold material for example). This way you can compare apples with apples while you test your proposed workflow.
« Last Edit: 2024-09-02, 20:04:08 by James Vella »