Changed

Changed

184k Downloads

PBR latex looks too much like plastic

XiaoTDM opened this issue ยท 7 comments

commented

Enabled "Changed_PBR" resource pack and used ComplementaryReimagined Shader:
It's not goo but plastic. Is there any way to implement latex material?
image

commented

Please refrain from "stuttering" in the issue title. Give it a proper title such as "PBR latex looks too much like plastic."

I used BSL when designing the specular textures, and I think the materials look good with BSL. Normal maps you take a longer time to develop per entity than specular, and such wasn't a goal for 0.14.

If you have any advice on how you would improve the material, please post so.

commented

Is it possible for Iris/Oculus shaders to set roughness of material surface? Or reduce surface reflective strength in some other way, perhaps better.

commented

I found a very important problem:
The blue channel in the PBR material does not control the reflectivity, but the luminosity.
As a result, the previously drawn materials were all incorrect, using them would cause the latex to glow eerily at night.
In addition, the red channel controls roughness, and after testing, the higher the value, the stronger the reflection, and the lower the value, the weaker the reflection.
After my testing, the red tones of 154 (body), 136 (hair) (terrestrial), 222 (body), 162 (hair) (aquatic) are more appropriate.

commented

Excerpt from LabPBR Material Standard:

Specular Texture (_s)

Note that your shader pack is only required to correctly read the smoothness (red) and F0 (green) data to be LabPBR-ready. The other specified datasets are optional components. More details about that can be found in the LabPBR Implementation Requirements.

Red Channel

  • Represents "perceptual" smoothness.
    • Convert perceptual smoothness to linear roughness with roughness = pow(1.0 - perceptualSmoothness, 2.0).
    • Convert linear roughness to perceptual smoothness with perceptualSmoothness = 1.0 - sqrt(roughness).


For Texture Artists
A value of 255 (100%) results in a very smooth material (e.g. polished granite). A value of 0 (0%) creates a rough material (e.g. rocks).

Green Channel

  • Values from 0 to 229 represent F0, also known as reflectance.
    • This attribute is stored linearly. Please note that a value of 229 represents exactly 229 divided by 255, or approximately 90%, instead of 100%.
  • Values from 230 to 255 represent various different metals.
    • Details about this range is provided below.


For Texture Artists
This can be described as the minimal reflection strength of the material. So a low F0 value results in a less intense reflection when looking directly at the material while a higher F0 value causes a stronger and more visible reflection. Unlike traditional specularity however this is not a multiplier for the reflection strength, meaning that reflections at flat angles will always be stronger (called "Fresnel", more information about that here: Principle of the Fresnel Effect).

Blue Channel

  • On dielectrics:
    • Values from 0 to 64 represent porosity. Examples of the porosity effect can be found here.
    • Values from 65 to 255 represent subsurface scattering.
    • Both porosity and subsurface scattering are stored linearly.
  • On metals/conductors:
    • Reserved for future use.


For Texture Artists
The porosity value describes how much water a material can absorb. This manifests in the color of the material getting darker and less reflective when wet. This allows for a much more accurate behavior with shader packs supporting both porosity and weather based wetness (e.g. puddles). Below are some example values.

Material Porosity Value
Sand 64
Wool 38
Wood 12
Metals and other impermeable materials 0

Examples of the porosity effect in action can be found here.

Alpha Channel

  • It can have values ranging from 0 to 254; 0 being 0% emissiveness and 254 being 100%.
  • This is stored linearly.


For Texture Artists
The lower the value the less light it will emit, the higher the more luminescent it'll be, but never use a value of 255 since this will cause it to be ignored.

commented

In practice this boils down to:

Red - Roughness (how blurry reflected light is)
Green - F0/Reflectance (at what angle is the material reflective
Blue - Subsurface scattering (how much light penetrates through the material)
Alpha - Emissive (how much light does the material emit)

And in your testing, please confirm your shaders are configured to use LabPBR

commented

It's built for LabPBR?
Sorry I was negligent.