User Tools

Site Tools


gamedev:textureproperties:reflectivity

Summary

Texture Property Namereflectivity
DescriptionDefines the per-color reflectivity/reflectance
Excepted Data Source3 component image
Data Range0 to 1 for all image components
Default Value(0.2, 0.2, 0.2)
Affected ModulesGraphic
Linked Propertiesreflectivity.gamma

Description

The reflectivity texture property defines the per-color reflectivity or reflectance of a material at a zero viewing angle. This is more than the simple specular reflectivity parameter typically found in other game engines since the Drag[en]gine adepts a physically based rendering approach. The zero angle reflectivity is often specified as the F0 reflectance. This is the value required to be used for this texture property. Important to note is the fact that this texture property is gamma corrected using the value of the reflectivity.gamma texture property which is by default 2.2 . This is due to the fact that reflectivity can be an image. Using sRGB color space artists can work with shades of dark gray colors for the very low values of dielectric materials which is still well visible while editing the image. Hence if you use a static value or static color for this texture property the value has to be raised to the power of 1.0/2.2 first to obtain the correct reflectivity value during rendering unless the reflectivity.gamma is set to 1. For all values it is marked if they are in linear space or sRGB space. Use the sRGB values for this texture property if reflectivity.gamma is not set to 1.

Every material in the real world has an F0 reflectance larger than 0 with the reflectance approaching 100% reflectivity at grazing angles. The distintive feature of dielectric materials is a low reflectivity typically between 2% and 4% equal in all color components and a large sub-surface reflectance. Bright dielectric materials like crystals can go up to 17% reflectivity. Metallic materials on the other hand have a nearly no sub-surface reflectance and a high reflectivity value between 56% and 97%. Metals thus need something to reflect as otherwise they appear black. Furthermore metals can have variable reflectivity values for individual color components. Gold for example has different reflectance values for each color components while a metal like iron has mostly the same reflectance value in all color components. This simulates the fact that metals have a varying reflectance over the color spectrum. Using red, green and blue samples is enough. Most of the time you can sample a mid-gray reflection in an object to obtain a reasonable reflectivity value. This table gives you a selection of reflectivity values starting with lowest going to highest for typical materials you can use straight away.

MaterialReflectivity linearReflectivity sRGBReflectivity sRGB as RGB
Water(0.02, 0.02, 0.02)(0.169, 0.169, 0.169)(43, 43, 43) #2b2b2b
Plastic low(0.03, 0.03, 0.03)(0.203, 0.203, 0.203)(52, 52, 52) #333333
Glass low(0.04, 0.04, 0.04)(0.232, 0.232, 0.232)(59, 59, 59) #3b3b3b
Plastic high(0.05, 0.05, 0.05)(0.256, 0.256, 0.256)(65, 65, 65) #414141
Glass high(0.08, 0.08, 0.08)(0.317, 0.317, 0.317)(81, 81, 81) #505050
Ruby(0.08, 0.08, 0.08)(0.317, 0.317, 0.317)(81, 81, 81) #505050
Diamond(0.17, 0.17, 0.17)(0.447, 0.447, 0.447)(114, 114, 114) #717171
Iron(0.56, 0.57, 0.58)(0.768, 0.775, 0.781)(196, 198, 199) #c3c5c7
Copper(0.95, 0.64, 0.54)(0.977, 0.816, 0.756)(249, 208, 193) #f9d0c0
Gold(1.00, 0.71, 0.29)(1.000, 0.856, 0.570)(255, 218, 145) #ffda91
Aluminium(0.91, 0.92, 0.92)(0.958, 0.963, 0.963)(244, 246, 246) #f4f5f5
Silver(0.95, 0.93, 0.88)(0.977, 0.968, 0.944)(249, 247, 241) #f9f6f0

For most dielectric materials the reflectivity stays thus between 2% and 4%. The reflectivity image is thus not required to be of high resolution nor does it need that much of attention during authoring. If your material is not a metal use 3% (0.2 reflectivity in sRGB) and you are correct in most situations. If you have a metal pick the value from the table and you are all set too. Do not place material imperfections and variations in the reflectivity image as this is not going to help much. Use the roughness texture property instead. This one adds a lot more subtle varitions to a material. Hence most of the time using just a static value or static color for this texture property is more than enough. Spend your time on the roughness texture property instead.

You can calculate this value also from the index of refraction(ior) for transparent objects. In this case the formula goes like this: reflectivity = (ior - 1)^2 / (ior + 1)^2

The source is typically an 8 bit image with 3 color components with the color components inside the range from 0 to 1. Most of the time though a static value or static color is enough.

The default value for this texture property is (0.2, 0.2, 0.2) which is the reflectivity of a common dielectric solid surface expressed in the sRGB color space.

Examples

Paint reflection (dielectric)

Paint reflection (dielectric). The reflectivity here is set to 0.17 (F0 of 2%) as the paint is a dielectric material. One can see how the fresnel effect pulls the reflectivity towards 1 at grazing angles. This effect is automatic due to Physically Based Rendering. For most materials 0.17-0.23 as reflectivity is the correct choice.

Gold reflection (metallic)

Gold reflection (metallic). The reflectivity here is set to (1, 0.856, 0.570) and color set to black since gold is a metal. A black color and a high reflectivity is the distinguishing property of metals. In the case of gold the reflectivity also varies across the color components.

You could leave a comment if you were logged in.
gamedev/textureproperties/reflectivity.txt · Last modified: 2013/11/13 17:40 by dragonlord