You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
earthquake_3d_viewer_front/three/manual/resources/threejs-material-table.js

267 lines
4.7 KiB
JavaScript

const materials = [
{
name: 'MeshBasicMaterial',
shortName: 'Basic',
properties: [
'alphaMap',
'aoMap',
'aoMapIntensity',
'color',
'combine',
'envMap',
'envMapRotation',
'fog',
'lightMap',
'lightMapIntensity',
'map',
'reflectivity',
'refractionRatio',
'specularMap',
'wireframe',
'wireframeLinecap',
'wireframeLinejoin',
'wireframeLinewidth'
],
},
{
name: 'MeshLambertMaterial',
shortName: 'Lambert',
properties: [
'alphaMap',
'aoMap',
'aoMapIntensity',
'bumpMap',
'bumpScale',
'color',
'combine',
'displacementBias',
'displacementMap',
'displacementScale',
'emissive',
'emissiveIntensity',
'emissiveMap',
'envMap',
'envMapRotation',
'flatShading',
'fog',
'lightMap',
'lightMapIntensity',
'map',
'normalMap',
'normalMapType',
'normalScale',
'reflectivity',
'refractionRatio',
'specularMap',
'wireframe',
'wireframeLinecap',
'wireframeLinejoin',
'wireframeLinewidth'
],
},
{
name: 'MeshPhongMaterial',
shortName: 'Phong',
properties: [
'alphaMap',
'aoMap',
'aoMapIntensity',
'bumpMap',
'bumpScale',
'color',
'combine',
'displacementBias',
'displacementMap',
'displacementScale',
'emissive',
'emissiveIntensity',
'emissiveMap',
'envMap',
'envMapRotation',
'flatShading',
'fog',
'lightMap',
'lightMapIntensity',
'map',
'normalMap',
'normalMapType',
'normalScale',
'reflectivity',
'refractionRatio',
'shininess',
'specular',
'specularMap',
'wireframe',
'wireframeLinecap',
'wireframeLinejoin',
'wireframeLinewidth'
],
},
{
name: 'MeshStandardMaterial',
shortName: 'Standard',
properties: [
'alphaMap',
'aoMap',
'aoMapIntensity',
'bumpMap',
'bumpScale',
'color',
'displacementBias',
'displacementMap',
'displacementScale',
'emissive',
'emissiveIntensity',
'emissiveMap',
'envMap',
'envMapIntensity',
'envMapRotation',
'flatShading',
'fog',
'lightMap',
'lightMapIntensity',
'map',
'metalness',
'metalnessMap',
'normalMap',
'normalMapType',
'normalScale',
'roughness',
'roughnessMap',
'wireframe',
'wireframeLinecap',
'wireframeLinejoin',
'wireframeLinewidth'
],
},
{
name: 'MeshPhysicalMaterial',
shortName: 'Physical',
properties: [
'alphaMap',
'aoMap',
'aoMapIntensity',
'anisotropy',
'anisotropyRotation',
'anisotropyMap',
'attenuationColor',
'attenuationDistance',
'bumpMap',
'bumpScale',
'clearcoat',
'clearcoatMap',
'clearcoatNormalMap',
'clearcoatNormalScale',
'clearcoatRoughness',
'clearcoatRoughnessMap',
'color',
'displacementBias',
'displacementMap',
'displacementScale',
'emissive',
'emissiveIntensity',
'emissiveMap',
'envMap',
'envMapIntensity',
'envMapRotation',
'flatShading',
'fog',
'ior',
'iridescence',
'iridescenceIOR',
'iridescenceMap',
'iridescenceThicknessMap',
'iridescenceThicknessRange',
'lightMap',
'lightMapIntensity',
'map',
'metalness',
'metalnessMap',
'normalMap',
'normalMapType',
'normalScale',
'reflectivity',
'roughness',
'roughnessMap',
'sheen',
'sheenColor',
'sheenColorMap',
'sheenRoughness',
'sheenRoughnessMap',
'specularColor',
'specularColorMap',
'specularIntensity',
'specularIntensityMap',
'thickness',
'thicknessMap',
'transmission',
'transmissionMap',
'wireframe',
'wireframeLinecap',
'wireframeLinejoin',
'wireframeLinewidth'
],
},
];
const allProperties = new Set();
materials.forEach( ( material ) => {
material.properties.forEach( ( property ) => {
allProperties.add( property );
} );
} );
function addElem( type, parent, content ) {
const elem = document.createElement( type );
if ( content ) {
elem.textContent = content;
}
if ( parent ) {
parent.appendChild( elem );
}
return elem;
}
const table = document.createElement( 'table' );
const thead = addElem( 'thead', table );
{
addElem( 'td', thead );
materials.forEach( ( material ) => {
const td = addElem( 'td', thead );
const a = addElem( 'a', td, material.shortName );
a.href = `https://threejs.org/docs/#api/materials/${material.name}`;
} );
}
Array.from( allProperties ).sort().forEach( ( property ) => {
const tr = addElem( 'tr', table );
addElem( 'td', tr, property );
materials.forEach( ( material ) => {
const hasProperty = material.properties.indexOf( property ) >= 0;
const td = addElem( 'td', tr );
const a = addElem( 'a', td, hasProperty ? '•' : '' );
a.href = `https://threejs.org/docs/#api/materials/${material.name}.${property}`;
} );
} );
document.querySelector( '#material-table' ).appendChild( table );