element Material
diagram x3d-4.0_diagrams/x3d-4.0_p135.png
type extension of X3DOneSidedMaterialNode
properties
content complex
children IS MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString ImageTexture MovieTexture PixelTexture ProtoInstance
used by
element ShadedVolumeStyle
group AppearanceChildContentModelNoProtoInstance
attributes
Name  Type  Use  Default  Fixed  Annotation
DEF  xs:ID        
appinfo

                    DEF defines a unique ID name for each node, referenceable by other nodes.
               
USE  xs:IDREF        
appinfo

                    USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).
               
class  xs:NMTOKENS        
appinfo

                    The class attribute is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets.
                    This attribute is only functional if the X3D model is loaded within an HTML page.
               
id  xs:NMTOKEN        
appinfo

                    The id attribute is a unique identifier, reserved for use by HTML5/DOM pages, independent of DEF labeling and internal X3D node referencing.
                    This attribute is only functional if the X3D model is loaded within an HTML page.
               
style  SFString        
appinfo

                    The style attribute provides an inline block of CSS for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets.
                    This attribute is only functional if the X3D model is loaded within an HTML page.
               
emissiveTextureMapping  xs:NMTOKEN        
normalScale  derived by: SFFloat    1    
appinfo
<xs:attribute name="componentName" type="componentNameChoices" fixed="Shape"/>
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="2"/>
normalTextureMapping  xs:NMTOKEN        
ambientIntensity  unitIntervalType    0.2    
appinfo
<xs:attribute name="componentName" type="componentNameChoices" fixed="Shape"/>
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="2"/>
ambientTextureMapping  xs:NMTOKEN        
documentation
Special node correspondences
diffuseColor  SFColor    0.8 0.8 0.8    
diffuseTextureMapping  xs:NMTOKEN        
emissiveColor  SFColor    0 0 0    
appinfo

                                A Material with emissiveColor not equal to (0,0,0) and diffuseColor equal to (0,0,0) is an unlit material.
                           
occlusionStrength  unitIntervalType    1    
occlusionTextureMapping  xs:NMTOKEN        
shininess  unitIntervalType    0.2    
appinfo
<xs:attribute name="componentName" type="componentNameChoices" fixed="Shape"/>
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="2"/>
shininessTextureMapping  xs:NMTOKEN        
specularColor  SFColor    0 0 0    
appinfo
<xs:attribute name="componentName" type="componentNameChoices" fixed="Shape"/>
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="2"/>
specularTextureMapping  xs:NMTOKEN        
transparency  unitIntervalType    0    
appinfo
<xs:attribute name="componentName" type="componentNameChoices" fixed="Shape"/>
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="2"/>
                                One-bit transparency; transparency values &gt;= 0.5 are transparent.
                           
containerField  xs:NMTOKEN    material    
annotation
appinfo
<xs:element name="ambientTexture" type="SFNode" fixed="inputOutputField" default="X3DSingleTextureNode"/>
<xs:element name="diffuseTexture" type="SFNode" fixed="inputOutputField" default="X3DSingleTextureNode"/>
<xs:element name="emissiveTexture" type="SFNode" fixed="inputOutputField" default="X3DSingleTextureNode"/>
<xs:element name="normalTexture" type="SFNode" fixed="inputOutputField" default="X3DSingleTextureNode"/>
<xs:element name="occlusionTexture" type="SFNode" fixed="inputOutputField" default="X3DSingleTextureNode"/>
<xs:element name="shininessTexture" type="SFNode" fixed="inputOutputField" default="X3DSingleTextureNode"/>
<xs:element name="specularTexture" type="SFNode" fixed="inputOutputField" default="X3DSingleTextureNode"/>
<xs:attribute name="componentName" type="componentNameChoices" fixed="Shape"/>
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="1"/>
source <xs:element name="Material">
 
<xs:annotation>
   
<xs:appinfo>
     
<xs:element name="ambientTexture" type="SFNode" fixed="inputOutputField" default="X3DSingleTextureNode"/>
     
<xs:element name="diffuseTexture" type="SFNode" fixed="inputOutputField" default="X3DSingleTextureNode"/>
     
<xs:element name="emissiveTexture" type="SFNode" fixed="inputOutputField" default="X3DSingleTextureNode"/>
     
<xs:element name="normalTexture" type="SFNode" fixed="inputOutputField" default="X3DSingleTextureNode"/>
     
<xs:element name="occlusionTexture" type="SFNode" fixed="inputOutputField" default="X3DSingleTextureNode"/>
     
<xs:element name="shininessTexture" type="SFNode" fixed="inputOutputField" default="X3DSingleTextureNode"/>
     
<xs:element name="specularTexture" type="SFNode" fixed="inputOutputField" default="X3DSingleTextureNode"/>
     
<xs:attribute name="componentName" type="componentNameChoices" fixed="Shape"/>
     
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="1"/>
   
</xs:appinfo>
   
<xs:documentation source="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#Material"/>
 
</xs:annotation>
 
<xs:complexType>
   
<xs:complexContent>
     
<xs:extension base="X3DOneSidedMaterialNode">
       
<xs:choice minOccurs="0" maxOccurs="7">
         
<xs:annotation>
           
<xs:documentation>ambientTexture, diffuseTexture, emissiveTexture, normalTexture, occlusionTexture, shininessTexture, specularTexture</xs:documentation>
         
</xs:annotation>
         
<!-- TODO strictly one of each field, any order -->
         
<xs:element ref="ImageTexture"/>
         
<xs:element ref="MovieTexture"/>
         
<xs:element ref="PixelTexture"/>
         
<xs:element ref="ProtoInstance">
           
<xs:annotation>
             
<xs:documentation>Appropriately typed substitution node</xs:documentation>
           
</xs:annotation>
         
</xs:element>
       
</xs:choice>
       
<xs:attribute name="ambientIntensity" type="unitIntervalType" default="0.2">
         
<xs:annotation>
           
<xs:appinfo>
             
<xs:attribute name="componentName" type="componentNameChoices" fixed="Shape"/>
             
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="2"/>
           
</xs:appinfo>
         
</xs:annotation>
       
</xs:attribute>
       
<xs:attribute name="ambientTextureMapping" type="xs:NMTOKEN">
         
<xs:annotation>
           
<xs:documentation>Special node correspondences</xs:documentation>
         
</xs:annotation>
       
</xs:attribute>
       
<xs:attribute name="diffuseColor" type="SFColor" default="0.8 0.8 0.8"/>
       
<xs:attribute name="diffuseTextureMapping" type="xs:NMTOKEN"/>
       
<xs:attribute name="emissiveColor" type="SFColor" default="0 0 0">
         
<xs:annotation>
           
<xs:appinfo>
                                A Material with emissiveColor not equal to (0,0,0) and diffuseColor equal to (0,0,0) is an unlit material.
                           
</xs:appinfo>
         
</xs:annotation>
       
</xs:attribute>
       
<xs:attribute name="occlusionStrength" type="unitIntervalType" default="1"/>
       
<xs:attribute name="occlusionTextureMapping" type="xs:NMTOKEN"/>
       
<xs:attribute name="shininess" type="unitIntervalType" default="0.2">
         
<xs:annotation>
           
<xs:appinfo>
             
<xs:attribute name="componentName" type="componentNameChoices" fixed="Shape"/>
             
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="2"/>
           
</xs:appinfo>
         
</xs:annotation>
       
</xs:attribute>
       
<xs:attribute name="shininessTextureMapping" type="xs:NMTOKEN"/>
       
<xs:attribute name="specularColor" type="SFColor" default="0 0 0">
         
<xs:annotation>
           
<xs:appinfo>
             
<xs:attribute name="componentName" type="componentNameChoices" fixed="Shape"/>
             
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="2"/>
           
</xs:appinfo>
         
</xs:annotation>
       
</xs:attribute>
       
<xs:attribute name="specularTextureMapping" type="xs:NMTOKEN"/>
       
<xs:attribute name="transparency" type="unitIntervalType" default="0">
         
<xs:annotation>
           
<xs:appinfo>
             
<xs:attribute name="componentName" type="componentNameChoices" fixed="Shape"/>
             
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="2"/>
                                One-bit transparency; transparency values &gt;= 0.5 are transparent.
                           
</xs:appinfo>
         
</xs:annotation>
       
</xs:attribute>
       
<xs:attribute name="containerField" type="xs:NMTOKEN" default="material"/>
     
</xs:extension>
   
</xs:complexContent>
 
</xs:complexType>
</xs:element>

attribute Material/@ambientIntensity
type unitIntervalType
properties
default 0.2
facets
Kind Value Annotation
minInclusive 0
maxInclusive 1
pattern \s*([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*
annotation
appinfo
<xs:attribute name="componentName" type="componentNameChoices" fixed="Shape"/>
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="2"/>
source <xs:attribute name="ambientIntensity" type="unitIntervalType" default="0.2">
 
<xs:annotation>
   
<xs:appinfo>
     
<xs:attribute name="componentName" type="componentNameChoices" fixed="Shape"/>
     
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="2"/>
   
</xs:appinfo>
 
</xs:annotation>
</xs:attribute>

attribute Material/@ambientTextureMapping
type xs:NMTOKEN
annotation
documentation
Special node correspondences
source <xs:attribute name="ambientTextureMapping" type="xs:NMTOKEN">
 
<xs:annotation>
   
<xs:documentation>Special node correspondences</xs:documentation>
 
</xs:annotation>
</xs:attribute>

attribute Material/@diffuseColor
type SFColor
properties
default 0.8 0.8 0.8
facets
Kind Value Annotation
whiteSpace collapse
pattern \s*(([+]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s+){2}([+]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s*
source <xs:attribute name="diffuseColor" type="SFColor" default="0.8 0.8 0.8"/>

attribute Material/@diffuseTextureMapping
type xs:NMTOKEN
source <xs:attribute name="diffuseTextureMapping" type="xs:NMTOKEN"/>

attribute Material/@emissiveColor
type SFColor
properties
default 0 0 0
facets
Kind Value Annotation
whiteSpace collapse
pattern \s*(([+]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s+){2}([+]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s*
annotation
appinfo

                                A Material with emissiveColor not equal to (0,0,0) and diffuseColor equal to (0,0,0) is an unlit material.
                           
source <xs:attribute name="emissiveColor" type="SFColor" default="0 0 0">
 
<xs:annotation>
   
<xs:appinfo>
                                A Material with emissiveColor not equal to (0,0,0) and diffuseColor equal to (0,0,0) is an unlit material.
                           
</xs:appinfo>
 
</xs:annotation>
</xs:attribute>

attribute Material/@occlusionStrength
type unitIntervalType
properties
default 1
facets
Kind Value Annotation
minInclusive 0
maxInclusive 1
pattern \s*([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*
source <xs:attribute name="occlusionStrength" type="unitIntervalType" default="1"/>

attribute Material/@occlusionTextureMapping
type xs:NMTOKEN
source <xs:attribute name="occlusionTextureMapping" type="xs:NMTOKEN"/>

attribute Material/@shininess
type unitIntervalType
properties
default 0.2
facets
Kind Value Annotation
minInclusive 0
maxInclusive 1
pattern \s*([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*
annotation
appinfo
<xs:attribute name="componentName" type="componentNameChoices" fixed="Shape"/>
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="2"/>
source <xs:attribute name="shininess" type="unitIntervalType" default="0.2">
 
<xs:annotation>
   
<xs:appinfo>
     
<xs:attribute name="componentName" type="componentNameChoices" fixed="Shape"/>
     
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="2"/>
   
</xs:appinfo>
 
</xs:annotation>
</xs:attribute>

attribute Material/@shininessTextureMapping
type xs:NMTOKEN
source <xs:attribute name="shininessTextureMapping" type="xs:NMTOKEN"/>

attribute Material/@specularColor
type SFColor
properties
default 0 0 0
facets
Kind Value Annotation
whiteSpace collapse
pattern \s*(([+]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s+){2}([+]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s*
annotation
appinfo
<xs:attribute name="componentName" type="componentNameChoices" fixed="Shape"/>
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="2"/>
source <xs:attribute name="specularColor" type="SFColor" default="0 0 0">
 
<xs:annotation>
   
<xs:appinfo>
     
<xs:attribute name="componentName" type="componentNameChoices" fixed="Shape"/>
     
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="2"/>
   
</xs:appinfo>
 
</xs:annotation>
</xs:attribute>

attribute Material/@specularTextureMapping
type xs:NMTOKEN
source <xs:attribute name="specularTextureMapping" type="xs:NMTOKEN"/>

attribute Material/@transparency
type unitIntervalType
properties
default 0
facets
Kind Value Annotation
minInclusive 0
maxInclusive 1
pattern \s*([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*
annotation
appinfo
<xs:attribute name="componentName" type="componentNameChoices" fixed="Shape"/>
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="2"/>
                                One-bit transparency; transparency values &gt;= 0.5 are transparent.
                           
source <xs:attribute name="transparency" type="unitIntervalType" default="0">
 
<xs:annotation>
   
<xs:appinfo>
     
<xs:attribute name="componentName" type="componentNameChoices" fixed="Shape"/>
     
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="2"/>
                                One-bit transparency; transparency values &gt;= 0.5 are transparent.
                           
</xs:appinfo>
 
</xs:annotation>
</xs:attribute>

attribute Material/@containerField
type xs:NMTOKEN
properties
default material
source <xs:attribute name="containerField" type="xs:NMTOKEN" default="material"/>


XML Schema documentation generated by XMLSpy Schema Editor http://www.altova.com/xmlspy