Class PhongMaterial

java.lang.Object
javafx.scene.paint.Material
javafx.scene.paint.PhongMaterial

public class PhongMaterial extends Material
The PhongMaterial class provides definitions of properties that represent a Phong shaded material. It describes the interaction of light with the surface of the Mesh it is applied to. The PhongMaterial reflects light in terms of a diffuse and specular component together with an ambient and a self illumination term. The color of a point on a geometric surface is mathematical function of these four components.

The color is computed by the following equation:


 for each ambient light source i {
     ambient += lightColor[i]
 }

 for each point light source i {
     diffuse += (L[i] . N) * lightColor[i]
     specular += ((R[i] . V) ^ (specularPower * intensity(specularMap))) * lightColor[i]
 }

 color = (ambient + diffuse) * diffuseColor * diffuseMap
             + specular * specularColor * specularMap
             + selfIlluminationMap
 
where lightColor[i] is the color of light source i,
L[i] is the vector from the surface to light source i,
N is the normal vector (taking into the account the bumpMap if present),
R[i] is the normalized reflection vector for L[i] about the surface normal,
and V is the normalized view vector.
Since:
JavaFX 8.0
See Also:
  • Property Details

  • Constructor Details

    • PhongMaterial

      public PhongMaterial()
      Creates a new instance of PhongMaterial class with a default Color.WHITE diffuseColor property.
    • PhongMaterial

      public PhongMaterial(Color diffuseColor)
      Creates a new instance of PhongMaterial class using the specified color for its diffuseColor property.
      Parameters:
      diffuseColor - the color of the diffuseColor property
    • PhongMaterial

      public PhongMaterial(Color diffuseColor, Image diffuseMap, Image specularMap, Image bumpMap, Image selfIlluminationMap)
      Creates a new instance of PhongMaterial class using the specified colors and images for its diffuseColor properties.
      Parameters:
      diffuseColor - the color of the diffuseColor property
      diffuseMap - the image of the diffuseMap property
      specularMap - the image of the specularMap property
      bumpMap - the image of the bumpMap property
      selfIlluminationMap - the image of the selfIlluminationMap property
  • Method Details

    • setDiffuseColor

      public final void setDiffuseColor(Color value)
      Sets the value of the diffuseColor property.
      Property description:
      The diffuse color of this PhongMaterial.
      Default value:
      Color.WHITE
      Parameters:
      value - the value for the diffuseColor property
      See Also:
    • getDiffuseColor

      public final Color getDiffuseColor()
      Gets the value of the diffuseColor property.
      Property description:
      The diffuse color of this PhongMaterial.
      Default value:
      Color.WHITE
      Returns:
      the value of the diffuseColor property
      See Also:
    • diffuseColorProperty

      public final ObjectProperty<Color> diffuseColorProperty()
      The diffuse color of this PhongMaterial.
      Default value:
      Color.WHITE
      Returns:
      the diffuseColor property
      See Also:
    • setSpecularColor

      public final void setSpecularColor(Color value)
      Sets the value of the specularColor property.
      Property description:
      The specular color of this PhongMaterial.
      Default value:
      null
      Parameters:
      value - the value for the specularColor property
      See Also:
    • getSpecularColor

      public final Color getSpecularColor()
      Gets the value of the specularColor property.
      Property description:
      The specular color of this PhongMaterial.
      Default value:
      null
      Returns:
      the value of the specularColor property
      See Also:
    • specularColorProperty

      public final ObjectProperty<Color> specularColorProperty()
      The specular color of this PhongMaterial.
      Default value:
      null
      Returns:
      the specularColor property
      See Also:
    • setSpecularPower

      public final void setSpecularPower(double value)
      Sets the value of the specularPower property.
      Property description:
      The specular power of this PhongMaterial.
      Default value:
      32.0
      Parameters:
      value - the value for the specularPower property
      See Also:
    • getSpecularPower

      public final double getSpecularPower()
      Gets the value of the specularPower property.
      Property description:
      The specular power of this PhongMaterial.
      Default value:
      32.0
      Returns:
      the value of the specularPower property
      See Also:
    • specularPowerProperty

      public final DoubleProperty specularPowerProperty()
      The specular power of this PhongMaterial.
      Default value:
      32.0
      Returns:
      the specularPower property
      See Also:
    • setDiffuseMap

      public final void setDiffuseMap(Image value)
      Sets the value of the diffuseMap property.
      Property description:
      The diffuse map of this PhongMaterial.
      Default value:
      null
      Parameters:
      value - the value for the diffuseMap property
      See Also:
    • getDiffuseMap

      public final Image getDiffuseMap()
      Gets the value of the diffuseMap property.
      Property description:
      The diffuse map of this PhongMaterial.
      Default value:
      null
      Returns:
      the value of the diffuseMap property
      See Also:
    • diffuseMapProperty

      public final ObjectProperty<Image> diffuseMapProperty()
      The diffuse map of this PhongMaterial.
      Default value:
      null
      Returns:
      the diffuseMap property
      See Also:
    • setSpecularMap

      public final void setSpecularMap(Image value)
      Sets the value of the specularMap property.
      Property description:
      The specular map of this PhongMaterial.
      Default value:
      null
      Parameters:
      value - the value for the specularMap property
      See Also:
    • getSpecularMap

      public final Image getSpecularMap()
      Gets the value of the specularMap property.
      Property description:
      The specular map of this PhongMaterial.
      Default value:
      null
      Returns:
      the value of the specularMap property
      See Also:
    • specularMapProperty

      public final ObjectProperty<Image> specularMapProperty()
      The specular map of this PhongMaterial.
      Default value:
      null
      Returns:
      the specularMap property
      See Also:
    • setBumpMap

      public final void setBumpMap(Image value)
      Sets the value of the bumpMap property.
      Property description:
      The bump map of this PhongMaterial, which is a normal map stored as a RGB Image.
      Default value:
      null
      Parameters:
      value - the value for the bumpMap property
      See Also:
    • getBumpMap

      public final Image getBumpMap()
      Gets the value of the bumpMap property.
      Property description:
      The bump map of this PhongMaterial, which is a normal map stored as a RGB Image.
      Default value:
      null
      Returns:
      the value of the bumpMap property
      See Also:
    • bumpMapProperty

      public final ObjectProperty<Image> bumpMapProperty()
      The bump map of this PhongMaterial, which is a normal map stored as a RGB Image.
      Default value:
      null
      Returns:
      the bumpMap property
      See Also:
    • setSelfIlluminationMap

      public final void setSelfIlluminationMap(Image value)
      Sets the value of the selfIlluminationMap property.
      Property description:
      The self illumination map of this PhongMaterial.
      Default value:
      null
      Parameters:
      value - the value for the selfIlluminationMap property
      See Also:
    • getSelfIlluminationMap

      public final Image getSelfIlluminationMap()
      Gets the value of the selfIlluminationMap property.
      Property description:
      The self illumination map of this PhongMaterial.
      Default value:
      null
      Returns:
      the value of the selfIlluminationMap property
      See Also:
    • selfIlluminationMapProperty

      public final ObjectProperty<Image> selfIlluminationMapProperty()
      The self illumination map of this PhongMaterial.
      Default value:
      null
      Returns:
      the selfIlluminationMap property
      See Also: