Interface PhysicalMaterial

All Superinterfaces:
X3DAppearanceChildNode, X3DMaterialNode, X3DNode, X3DOneSidedMaterialNode
All Known Implementing Classes:
PhysicalMaterial

public interface PhysicalMaterial extends X3DOneSidedMaterialNode
PhysicalMaterial specifies surface rendering properties for associated geometry nodes.

X3D node tooltip: (X3D version 4.0 draft) [X3DOneSidedMaterialNode] PhysicalMaterial specifies surface rendering properties for associated geometry nodes. Material attributes are used by the X3D lighting equations during rendering.
Package hint: This interface is defined by the X3D Java Language Binding Specification for the Scene Authoring Interface (SAI).
See Also:
SAI Java Specification, X3D Abstract Specification: PhysicalMaterial, X3D Tooltips: PhysicalMaterial, X3D Scene Authoring Hints
  • Method Details

    • getBaseColor

      float[] getBaseColor()
      Provide array of 3-tuple float results using RGB values [0..1] using RGB values [0..1] from inputOutput SFColor field named baseColor.

      Tooltip: [0,1] similar to diffuseColor, TODO define more precisely. *
      Returns:
      value of baseColor field
    • setBaseColor

      PhysicalMaterial setBaseColor(float[] newValue)
      Accessor method to assign 3-tuple float array using RGB values [0..1] to inputOutput SFColor field named baseColor.

      Tooltip: [0,1] similar to diffuseColor, TODO define more precisely. *
      Parameters:
      newValue - is new value for the baseColor field.
      Returns:
      PhysicalMaterial - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getBaseTexture

      X3DSingleTextureNode getBaseTexture()
      Provide org.web3d.x3d.sai.Texturing.X3DSingleTextureNode instance (using a properly typed node) from inputOutput SFNode field baseTexture.

      Tooltip: [X3DSingleTextureNode] When applying baseColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.
      • Hint: if texture node is NULL or unspecified, no effect is applied to material values.
      • Hint: contained texture node must include containerField='baseTexture'.
      Returns:
      value of baseTexture field
    • setBaseTexture

      PhysicalMaterial setBaseTexture(X3DSingleTextureNode newValue)
      Accessor method to assign org.web3d.x3d.sai.Texturing.X3DSingleTextureNode instance (using a properly typed node) to inputOutput SFNode field baseTexture.

      Tooltip: [X3DSingleTextureNode] When applying baseColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.
      • Hint: if texture node is NULL or unspecified, no effect is applied to material values.
      • Hint: contained texture node must include containerField='baseTexture'.
      Parameters:
      newValue - is new value for the baseTexture field.
      Returns:
      PhysicalMaterial - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getBaseTextureMapping

      String getBaseTextureMapping()
      Provide String value from inputOutput SFString field named baseTextureMapping.

      Tooltip: The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.
      Returns:
      value of baseTextureMapping field
    • setBaseTextureMapping

      PhysicalMaterial setBaseTextureMapping(String newValue)
      Accessor method to assign String value to inputOutput SFString field named baseTextureMapping.

      Tooltip: The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.
      Parameters:
      newValue - is new value for the baseTextureMapping field.
      Returns:
      PhysicalMaterial - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getEmissiveColor

      float[] getEmissiveColor()
      Provide array of 3-tuple float results using RGB values [0..1] using RGB values [0..1] from inputOutput SFColor field named emissiveColor.

      Tooltip: [0,1] how much glowing light is emitted from this object.
      • Hint: emissiveColors glow even when all lights are off.
      • Hint: reset diffuseColor from default (.8 .8 .8) to (0 0 0) to avoid washout.
      • Hint: only emissiveColor affects IndexedLineSet, LineSet and PointSet.
      • Warning: bright emissiveColor values can wash out other colors and some textures.
      Specified by:
      getEmissiveColor in interface X3DOneSidedMaterialNode
      Returns:
      value of emissiveColor field
    • setEmissiveColor

      PhysicalMaterial setEmissiveColor(float[] newValue)
      Accessor method to assign 3-tuple float array using RGB values [0..1] to inputOutput SFColor field named emissiveColor.

      Tooltip: [0,1] how much glowing light is emitted from this object.
      • Hint: emissiveColors glow even when all lights are off.
      • Hint: reset diffuseColor from default (.8 .8 .8) to (0 0 0) to avoid washout.
      • Hint: only emissiveColor affects IndexedLineSet, LineSet and PointSet.
      • Warning: bright emissiveColor values can wash out other colors and some textures.
      Specified by:
      setEmissiveColor in interface X3DOneSidedMaterialNode
      Parameters:
      newValue - is new value for the emissiveColor field.
      Returns:
      PhysicalMaterial - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getEmissiveTexture

      X3DSingleTextureNode getEmissiveTexture()
      Provide org.web3d.x3d.sai.Texturing.X3DSingleTextureNode instance (using a properly typed node) from inputOutput SFNode field emissiveTexture.

      Tooltip: [X3DSingleTextureNode] When applying emissiveColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.
      • Hint: if texture node is NULL or unspecified, no effect is applied to material values.
      • Hint: contained texture node must include containerField='emissiveTexture'.
      Returns:
      value of emissiveTexture field
    • setEmissiveTexture

      PhysicalMaterial setEmissiveTexture(X3DSingleTextureNode newValue)
      Accessor method to assign org.web3d.x3d.sai.Texturing.X3DSingleTextureNode instance (using a properly typed node) to inputOutput SFNode field emissiveTexture.

      Tooltip: [X3DSingleTextureNode] When applying emissiveColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.
      • Hint: if texture node is NULL or unspecified, no effect is applied to material values.
      • Hint: contained texture node must include containerField='emissiveTexture'.
      Parameters:
      newValue - is new value for the emissiveTexture field.
      Returns:
      PhysicalMaterial - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getEmissiveTextureMapping

      String getEmissiveTextureMapping()
      Provide String value from inputOutput SFString field named emissiveTextureMapping.

      Tooltip: The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.
      Specified by:
      getEmissiveTextureMapping in interface X3DOneSidedMaterialNode
      Returns:
      value of emissiveTextureMapping field
    • setEmissiveTextureMapping

      PhysicalMaterial setEmissiveTextureMapping(String newValue)
      Accessor method to assign String value to inputOutput SFString field named emissiveTextureMapping.

      Tooltip: The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.
      Specified by:
      setEmissiveTextureMapping in interface X3DOneSidedMaterialNode
      Parameters:
      newValue - is new value for the emissiveTextureMapping field.
      Returns:
      PhysicalMaterial - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getMetadata

      X3DMetadataObject getMetadata()
      Provide org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) from inputOutput SFNode field metadata.

      Tooltip: [X3DMetadataObject] Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.
      Specified by:
      getMetadata in interface X3DAppearanceChildNode
      Specified by:
      getMetadata in interface X3DMaterialNode
      Specified by:
      getMetadata in interface X3DNode
      Specified by:
      getMetadata in interface X3DOneSidedMaterialNode
      Returns:
      value of metadata field
      See Also:
      X3D Scene Authoring Hints: Metadata Nodes
    • setMetadata

      PhysicalMaterial setMetadata(X3DMetadataObject newValue)
      Accessor method to assign org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) to inputOutput SFNode field metadata.

      Tooltip: [X3DMetadataObject] Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.
      Specified by:
      setMetadata in interface X3DAppearanceChildNode
      Specified by:
      setMetadata in interface X3DMaterialNode
      Specified by:
      setMetadata in interface X3DNode
      Specified by:
      setMetadata in interface X3DOneSidedMaterialNode
      Parameters:
      newValue - is new value for the metadata field.
      Returns:
      PhysicalMaterial - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
      See Also:
      X3D Scene Authoring Hints: Metadata Nodes
    • getMetallic

      float getMetallic()
      Provide float value within allowed range of [0,1] from inputOutput SFFloat field named metallic.

      Tooltip: [0,1] metallic is a PBR parameter (TODO elaborate). *
      Returns:
      value of metallic field
    • setMetallic

      PhysicalMaterial setMetallic(float newValue)
      Accessor method to assign float value to inputOutput SFFloat field named metallic.

      Tooltip: [0,1] metallic is a PBR parameter (TODO elaborate). *
      Parameters:
      newValue - is new value for the metallic field.
      Returns:
      PhysicalMaterial - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getMetallicRoughnessTexture

      X3DSingleTextureNode getMetallicRoughnessTexture()
      Provide org.web3d.x3d.sai.Texturing.X3DSingleTextureNode instance (using a properly typed node) from inputOutput SFNode field metallicRoughnessTexture.
      Returns:
      value of metallicRoughnessTexture field
    • setMetallicRoughnessTexture

      PhysicalMaterial setMetallicRoughnessTexture(X3DSingleTextureNode newValue)
      Accessor method to assign org.web3d.x3d.sai.Texturing.X3DSingleTextureNode instance (using a properly typed node) to inputOutput SFNode field metallicRoughnessTexture.
      Parameters:
      newValue - is new value for the metallicRoughnessTexture field.
      Returns:
      PhysicalMaterial - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getMetallicRoughnessTextureMapping

      String getMetallicRoughnessTextureMapping()
      Provide String value from inputOutput SFString field named metallicRoughnessTextureMapping.
      Returns:
      value of metallicRoughnessTextureMapping field
    • setMetallicRoughnessTextureMapping

      PhysicalMaterial setMetallicRoughnessTextureMapping(String newValue)
      Accessor method to assign String value to inputOutput SFString field named metallicRoughnessTextureMapping.
      Parameters:
      newValue - is new value for the metallicRoughnessTextureMapping field.
      Returns:
      PhysicalMaterial - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getNormalScale

      float getNormalScale()
      Provide float value within allowed range of [0,infinity) from inputOutput SFFloat field named normalScale.

      Tooltip: [0,infinity] normalScale controls the degree to which normalTexture RGB values apply XYZ-normal bump mapping to pixels in the parent material.
      • Hint: normalScale only affects computation of normalTexture modulations that affect lighting of characteristics of the parent Material and has no relation to normal vectors defined by corresponding geometry.
      • Hint: normalTexture techniques apply Bump mapping https://en.wikipedia.org/wiki/Bump_mapping
      Specified by:
      getNormalScale in interface X3DOneSidedMaterialNode
      Returns:
      value of normalScale field
    • setNormalScale

      PhysicalMaterial setNormalScale(float newValue)
      Accessor method to assign float value to inputOutput SFFloat field named normalScale.

      Tooltip: [0,infinity] normalScale controls the degree to which normalTexture RGB values apply XYZ-normal bump mapping to pixels in the parent material.
      • Hint: normalScale only affects computation of normalTexture modulations that affect lighting of characteristics of the parent Material and has no relation to normal vectors defined by corresponding geometry.
      • Hint: normalTexture techniques apply Bump mapping https://en.wikipedia.org/wiki/Bump_mapping
      Specified by:
      setNormalScale in interface X3DOneSidedMaterialNode
      Parameters:
      newValue - is new value for the normalScale field.
      Returns:
      PhysicalMaterial - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getNormalTexture

      X3DSingleTextureNode getNormalTexture()
      Provide org.web3d.x3d.sai.Texturing.X3DSingleTextureNode instance (using a properly typed node) from inputOutput SFNode field normalTexture.

      Tooltip: [X3DSingleTextureNode] When applying normalScale for this material node, the contained texture modulates the texture across the surface.
      • Hint: normalTexture techniques apply Bump mapping https://en.wikipedia.org/wiki/Bump_mapping
      • Hint: if texture node is NULL or unspecified, no effect is applied to material values.
      • Hint: contained texture node must include containerField='normalTexture'
      Returns:
      value of normalTexture field
    • setNormalTexture

      PhysicalMaterial setNormalTexture(X3DSingleTextureNode newValue)
      Accessor method to assign org.web3d.x3d.sai.Texturing.X3DSingleTextureNode instance (using a properly typed node) to inputOutput SFNode field normalTexture.

      Tooltip: [X3DSingleTextureNode] When applying normalScale for this material node, the contained texture modulates the texture across the surface.
      • Hint: normalTexture techniques apply Bump mapping https://en.wikipedia.org/wiki/Bump_mapping
      • Hint: if texture node is NULL or unspecified, no effect is applied to material values.
      • Hint: contained texture node must include containerField='normalTexture'
      Parameters:
      newValue - is new value for the normalTexture field.
      Returns:
      PhysicalMaterial - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getNormalTextureMapping

      String getNormalTextureMapping()
      Provide String value from inputOutput SFString field named normalTextureMapping.

      Tooltip: The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.
      Specified by:
      getNormalTextureMapping in interface X3DOneSidedMaterialNode
      Returns:
      value of normalTextureMapping field
    • setNormalTextureMapping

      PhysicalMaterial setNormalTextureMapping(String newValue)
      Accessor method to assign String value to inputOutput SFString field named normalTextureMapping.

      Tooltip: The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.
      Specified by:
      setNormalTextureMapping in interface X3DOneSidedMaterialNode
      Parameters:
      newValue - is new value for the normalTextureMapping field.
      Returns:
      PhysicalMaterial - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getOcclusionStrength

      float getOcclusionStrength()
      Provide float value within allowed range of [0,1] from inputOutput SFFloat field named occlusionStrength.

      Tooltip: [0,1] occlusionStrength indicates areas of indirect lighting, typically called ambient occlusion. Higher values indicate areas that should receive full indirect lighting and lower values indicate no indirect lighting.
      Returns:
      value of occlusionStrength field
    • setOcclusionStrength

      PhysicalMaterial setOcclusionStrength(float newValue)
      Accessor method to assign float value to inputOutput SFFloat field named occlusionStrength.

      Tooltip: [0,1] occlusionStrength indicates areas of indirect lighting, typically called ambient occlusion. Higher values indicate areas that should receive full indirect lighting and lower values indicate no indirect lighting.
      Parameters:
      newValue - is new value for the occlusionStrength field.
      Returns:
      PhysicalMaterial - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getOcclusionTexture

      X3DSingleTextureNode getOcclusionTexture()
      Provide org.web3d.x3d.sai.Texturing.X3DSingleTextureNode instance (using a properly typed node) from inputOutput SFNode field occlusionTexture.

      Tooltip: [X3DSingleTextureNode] When applying occlusionStrength for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.
      • Hint: if texture node is NULL or unspecified, no effect is applied to material values.
      • Hint: contained texture node must include containerField='occlusionTexture'.
      Returns:
      value of occlusionTexture field
    • setOcclusionTexture

      PhysicalMaterial setOcclusionTexture(X3DSingleTextureNode newValue)
      Accessor method to assign org.web3d.x3d.sai.Texturing.X3DSingleTextureNode instance (using a properly typed node) to inputOutput SFNode field occlusionTexture.

      Tooltip: [X3DSingleTextureNode] When applying occlusionStrength for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.
      • Hint: if texture node is NULL or unspecified, no effect is applied to material values.
      • Hint: contained texture node must include containerField='occlusionTexture'.
      Parameters:
      newValue - is new value for the occlusionTexture field.
      Returns:
      PhysicalMaterial - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getOcclusionTextureMapping

      String getOcclusionTextureMapping()
      Provide String value from inputOutput SFString field named occlusionTextureMapping.

      Tooltip: The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.
      Returns:
      value of occlusionTextureMapping field
    • setOcclusionTextureMapping

      PhysicalMaterial setOcclusionTextureMapping(String newValue)
      Accessor method to assign String value to inputOutput SFString field named occlusionTextureMapping.

      Tooltip: The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.
      Parameters:
      newValue - is new value for the occlusionTextureMapping field.
      Returns:
      PhysicalMaterial - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getRoughness

      float getRoughness()
      Provide float value within allowed range of [0,1] from inputOutput SFFloat field named roughness.

      Tooltip: [0,1] roughness is a PBR parameter (TODO elaborate). *
      Returns:
      value of roughness field
    • setRoughness

      PhysicalMaterial setRoughness(float newValue)
      Accessor method to assign float value to inputOutput SFFloat field named roughness.

      Tooltip: [0,1] roughness is a PBR parameter (TODO elaborate). *
      Parameters:
      newValue - is new value for the roughness field.
      Returns:
      PhysicalMaterial - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getTransparency

      float getTransparency()
      Provide float value within allowed range of [0,1] from inputOutput SFFloat field named transparency.

      Tooltip: [0,1] how "clear" an object is: 1.0 is completely transparent, 0.0 is completely opaque. Interchange profile hint: transparency < .5 opaque, transparency > .5 transparent. *
      Returns:
      value of transparency field
    • setTransparency

      PhysicalMaterial setTransparency(float newValue)
      Accessor method to assign float value to inputOutput SFFloat field named transparency.

      Tooltip: [0,1] how "clear" an object is: 1.0 is completely transparent, 0.0 is completely opaque. Interchange profile hint: transparency < .5 opaque, transparency > .5 transparent. *
      Parameters:
      newValue - is new value for the transparency field.
      Returns:
      PhysicalMaterial - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).