Material Export Guide 2016/03/22

The Hifi Material defines several channels of data used by the rendering engine. These channels can be configured in different ways from different fields as indicated by the following table:
Channel
Fields
Type
Configurations
Results
Opacity
 value & map
scalar in [0,1]
value
value



map
map.a



value & map
value * map.a
Albedo
value & map
sRGB color
value
value



map
map.rgb



value & map
value * map.rgb
Roughness
value & map
scalar in [0,1]
value
value



map
map.r
Metallic
value & map
scalar in [0,1]
value
value



map
map.r
Emissive
value & map
sRGB color
value
value



map
map.rgb
Normal
map
XYZ normal
map
map.xyz
Occlusion
map
scalar in [0,1]
map
map.r
Lightmap
map
sRGB Radiance
map
map.rgb

When importing a FBX model, every FBX material encountered is converted to an equivalent Hifi material created following the conversion rules as defined in the following table. The table also details how Modeling packages (Maya & Blender) generate the FBX material properties
HIFI Material Properties
FBX Fields
Software UI
Comment
Hifi Opacity Value & Map
Opacity Map must be the same texture as albedo Map.
Only if the albedo map is also bound to the opacity map channel then the opacity map is considered assigned.
If it is the case, the Albedo/Opacity Map is scanned and if there are meaningful alpha values then Opacity map is used.


Blender



Opacity = Opacity
Opacity = 1 - average(Blender.Transparency.Alpha)

Opacity = Opacity
OpacityMap = Tex.Mat.TransparencyFactor
(if the same as AlbedoMap)
Opacity = 1 - average(Blender.Transparency.Alpha)
Tex.Mat.TransparencyFactor= Blender.Texture.Diffuse.Alpha

Opacity = Opacity
OpacityMap = Tex.Mat.TransparencyFactor
Opacity = 1 - average(Blender.Transparency.Alpha)
Tex.Mat.TransparencyFactor= Blender.Texture.Diffuse.Alpha
Tex.Mat.DiffuseColor: Blender.Texture.Diffuse.Color
When AlbedoMap and Opacity Map are the same then check the 2 channels in the Influence ui.
Maya



Opacity = Opacity
Opacity = 1 - average(Maya.TransparencyColor)

Hifi doesn't support colored transparency. The Transparency color is just a gray value
Opacity = Opacity
OpacityMap = Tex.Mat.TransparentColor
(if the same as AlbedoMap)
Opacity = 1
Tex.Mat.TransparentColor= Maya.TransparencyColor.Texture





Hifi Albedo Color & Map



Blender



Albedo = DiffuseColor * DiffuseFactor
DiffuseColor= Blender.DiffuseColor
DiffuseFactor= Blender.DiffuseIntensity


AlbedoMap = Tex.Mat.DiffuseColor

DiffuseColor= Blender.DiffuseColor
DiffuseFactor= Blender.DiffuseIntensity
Tex.Mat.DiffuseColor: Blender.Texture.Diffuse.Color
Use the Diffuse.Color texture influence
Not the Diffuse.Intensity which overides extra fields
As indicated above, the Blender Diffuse color map can contains Opacity map, check the Alpha influence if needed
Maya



Albedo = DiffuseColor * DiffuseFactor
DiffuseColor = Maya.Color
DiffuseFactor = Maya.Diffuse
Diffuse = Maya.Color * Maya.Diffuse

Albedo = DiffuseColor
AlbedoMap = Tex.Mat.DiffuseFactor
DiffuseColor = Maya.Color
DiffuseFactor = 0.5
Tex.Mat.DiffuseFactor = Maya.Diffuse.Texture
Texture and Diffuse Color are blended
Albedo = DiffuseColor * DiffuseFactor
AlbedoMap = Tex.Mat.DiffuseColor
DiffuseColor = Vec3(1.0)
DiffuseFactor = Maya.Diffuse
Tex.Mat.DiffuseColor = Maya.Color.Texture
Albedo Color is always exactly the Texture map color




Hifi Emissive Color & Map



Blender



Emissive = EmissiveColor * EmissiveFactor
EmissiveColor = Blender.Diffuse.Color
EmissiveFactor = Blender.Shading.Emit
Emissive Color is always the Diffuse Color
Shading Emit controls the Emissive Factor so it MUST be assigned correctly
Emissive = NOT USED
EmissiveMap = Tex.Mat.EmissiveFactor
EmissiveColor = Blender.Diffuse.Color
EmissiveFactor = Blender.Shading.Emit
Tex.Mat.EmissiveFactor = Blender.Texture.Shading.Emit

Maya



Emissive = EmissiveColor
EmissiveColor = Maya.IncandescenceColor


Emissive = NOT USED
EmissiveMap = Tex.Mat.EmissiveColor
EmissiveColor = Vec3(0.5)
Tex.Mat.EmissiveColor = Maya.Incandescence.Texture





Hifi Roughness Value & Map



Blender



Roughness = 1 - Shininess / 100
Shininess = Hardness * 100 / 512

Roughness = NOT USED
RoughnessMap = monochrome(1 - Tex.Mat.ShininessExponent)
Shininess = Hardness * 100 / 512
Tex.Mat.ShininessExponent = Blender.Texture.Specular.Hardness

Maya



Roughness = 1 - Shininess / 100
Shininess = Maya.CosinePower

Roughness = NOT USED
RoughnessMap = monochrome(1 - Tex.Mat.ShininessExponent)
Shininess = 20
Tex.Mat.ShininessExponent = Maya.SpecularPower.Texture





Hifi Metallic Value & Map



Blender



Metallic = maxCoord(SpecularColor)
SpecularColor = Blender.Specular.Color
SpecularFactor = 0.5 * Blender.Specular.Intensity

Metallic= NOT USED
MetallicMap = monochrome(Tex.Mat.SpecularColor)
SpecularColor = Blender.Specular.Color
SpecularFactor = 0.5 * Blender.Specular.Intensity
Tex.Mat.SpecularColor = Blender.Texture.Specular.Color

Metallic= NOT USED
MetallicMap = monochrome(Tex.Mat.SpecularFactor)
SpecularColor = Blender.Specular.Color
SpecularFactor = 0.5 * Blender.Specular.Intensity
Tex.Mat.SpecularFactor = Blender.Texture.Specular.Intensity

Maya



Metallic = maxCoord(SpecularColor)
SpecularColor = Maya.SpecularColor

Metallic = NOT USED
MetallicMap = monochrome(Tex.Mat.SpecularColor)
SpecularColor = Vec3(0.5)
Tex.Mat.SpecularColor = Maya.SpecularColor.Texture





Hifi Normal Map



Blender



NormalMap = Tex.Mat.NormalMap
Tex.Mat.NormalMap = Blender.Texture.Geometry.Normal
Pick "TextureSpace" for normal map

No way to define Normal map from a bumpmap in Blender that can be detected in FBX so NO bumpmap support from blender



Maya



NormalMap = Tex.Mat.NormalMap
Tex.Mat.NormalMap = Maya.Bump_Mapping.Texture
NormalMap= convertToNormal(Tex.Mat.Bump)
Tex.Mat.Bump = Maya.Bump_Mapping.Texture




Hifi Occlusion Map



Blender



Not supported



Maya



Not supported with the Phong material in Maya







Hifi Lightmap Map
Lightmap is only used for material without emissive 


Blender



Not supported



Maya



LightmapMap = Tex.Mat.AmbientColor
Tex.Mat.AmbientColor = Maya.Ambient_Color.Texture