2018-04-09 09:35:04 +02:00
|
|
|
/**
|
|
|
|
* R3.D3.API.Material.Standard
|
|
|
|
* @param apiMaterial
|
|
|
|
* @param alphaMap
|
|
|
|
* @param aoMap
|
|
|
|
* @param aoMapIntensity
|
|
|
|
* @param bumpMap
|
|
|
|
* @param bumpScale
|
|
|
|
* @param color
|
|
|
|
* @param displacementMap
|
|
|
|
* @param displacementScale
|
|
|
|
* @param displacementBias
|
|
|
|
* @param emissive
|
|
|
|
* @param emissiveMap
|
|
|
|
* @param emissiveIntensity
|
|
|
|
* @param envMap
|
|
|
|
* @param envMapIntensity
|
|
|
|
* @param lightMap
|
|
|
|
* @param lightMapIntensity
|
|
|
|
* @param diffuseMap
|
|
|
|
* @param metalness
|
|
|
|
* @param metalnessMap
|
|
|
|
* @param morphNormals
|
|
|
|
* @param morphTargets
|
|
|
|
* @param normalMap
|
|
|
|
* @param normalScale
|
|
|
|
* @param refractionRatio
|
|
|
|
* @param roughness
|
|
|
|
* @param roughnessMap
|
|
|
|
* @param skinning
|
|
|
|
* @param wireframe
|
|
|
|
* @param wireframeLinecap
|
|
|
|
* @param wireframeLinejoin
|
|
|
|
* @param wireframeLinewidth
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
R3.D3.API.Material.Standard = function(
|
|
|
|
apiMaterial,
|
|
|
|
alphaMap,
|
|
|
|
aoMap,
|
|
|
|
aoMapIntensity,
|
|
|
|
bumpMap,
|
|
|
|
bumpScale,
|
|
|
|
color,
|
|
|
|
displacementMap,
|
|
|
|
displacementScale,
|
|
|
|
displacementBias,
|
|
|
|
emissive,
|
|
|
|
emissiveMap,
|
|
|
|
emissiveIntensity,
|
|
|
|
envMap,
|
|
|
|
envMapIntensity,
|
|
|
|
lightMap,
|
|
|
|
lightMapIntensity,
|
|
|
|
diffuseMap,
|
|
|
|
metalness,
|
|
|
|
metalnessMap,
|
|
|
|
morphNormals,
|
|
|
|
morphTargets,
|
|
|
|
normalMap,
|
|
|
|
normalScale,
|
|
|
|
refractionRatio,
|
|
|
|
roughness,
|
|
|
|
roughnessMap,
|
|
|
|
skinning,
|
|
|
|
wireframe,
|
|
|
|
wireframeLinecap,
|
|
|
|
wireframeLinejoin,
|
|
|
|
wireframeLinewidth
|
|
|
|
) {
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(apiMaterial)) {
|
|
|
|
apiMaterial = {
|
|
|
|
materialType: R3.D3.API.Material.MATERIAL_TYPE_STANDARD
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(apiMaterial.materialType)) {
|
|
|
|
apiMaterial.materialType = R3.D3.API.Material.MATERIAL_TYPE_STANDARD;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(alphaMap)) {
|
|
|
|
alphaMap = null;
|
|
|
|
}
|
|
|
|
this.alphaMap = alphaMap;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(aoMap)) {
|
|
|
|
aoMap = null;
|
|
|
|
}
|
|
|
|
this.aoMap = aoMap;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(aoMapIntensity)) {
|
|
|
|
aoMapIntensity = 1;
|
|
|
|
}
|
|
|
|
this.aoMapIntensity = aoMapIntensity;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(bumpMap)) {
|
|
|
|
bumpMap = null;
|
|
|
|
}
|
|
|
|
this.bumpMap = bumpMap;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(bumpScale)) {
|
|
|
|
bumpScale = 1;
|
|
|
|
}
|
|
|
|
this.bumpScale = bumpScale;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(color)) {
|
2019-07-24 08:08:02 +02:00
|
|
|
color = new R3.API.Color(this, 1, 1, 1, 1)
|
2018-04-09 09:35:04 +02:00
|
|
|
}
|
|
|
|
this.color = color;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(displacementMap)) {
|
|
|
|
displacementMap = null;
|
|
|
|
}
|
|
|
|
this.displacementMap = displacementMap;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(displacementBias)) {
|
|
|
|
displacementBias = 0;
|
|
|
|
}
|
|
|
|
this.displacementBias = displacementBias;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(displacementScale)) {
|
|
|
|
displacementScale = 1;
|
|
|
|
}
|
|
|
|
this.displacementScale = displacementScale;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(emissive)) {
|
2019-07-24 08:08:02 +02:00
|
|
|
emissive = new R3.API.Color(this, 0, 0, 0, 0);
|
2018-04-09 09:35:04 +02:00
|
|
|
}
|
|
|
|
this.emissive = emissive;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(emissiveMap)) {
|
|
|
|
emissiveMap = null;
|
|
|
|
}
|
|
|
|
this.emissiveMap = emissiveMap;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(emissiveIntensity)) {
|
|
|
|
emissiveIntensity = 1;
|
|
|
|
}
|
|
|
|
this.emissiveIntensity = emissiveIntensity;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(envMap)) {
|
|
|
|
envMap = null;
|
|
|
|
}
|
|
|
|
this.envMap = envMap;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(envMapIntensity)) {
|
|
|
|
envMapIntensity = 1;
|
|
|
|
}
|
|
|
|
this.envMapIntensity = envMapIntensity;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(lightMap)) {
|
|
|
|
lightMap = null;
|
|
|
|
}
|
|
|
|
this.lightMap = lightMap;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(lightMapIntensity)) {
|
|
|
|
lightMapIntensity = 1;
|
|
|
|
}
|
|
|
|
this.lightMapIntensity = lightMapIntensity;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(diffuseMap)) {
|
|
|
|
diffuseMap = null;
|
|
|
|
}
|
|
|
|
this.diffuseMap = diffuseMap;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(metalness)) {
|
|
|
|
metalness = 0.5;
|
|
|
|
}
|
|
|
|
this.metalness = metalness;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(metalnessMap)) {
|
|
|
|
metalnessMap = null;
|
|
|
|
}
|
|
|
|
this.metalnessMap = metalnessMap;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(morphNormals)) {
|
|
|
|
morphNormals = false;
|
|
|
|
}
|
|
|
|
this.morphNormals = morphNormals;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(morphTargets)) {
|
|
|
|
morphTargets = false;
|
|
|
|
}
|
|
|
|
this.morphTargets = morphTargets;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(normalMap)) {
|
|
|
|
normalMap = null;
|
|
|
|
}
|
|
|
|
this.normalMap = normalMap;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(normalScale)) {
|
|
|
|
normalScale = 1;
|
|
|
|
}
|
|
|
|
this.normalScale = normalScale;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(refractionRatio)) {
|
|
|
|
refractionRatio = 0.98;
|
|
|
|
}
|
|
|
|
this.refractionRatio = refractionRatio;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(roughness)) {
|
|
|
|
roughness = 0.5;
|
|
|
|
}
|
|
|
|
this.roughness = roughness;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(roughnessMap)) {
|
|
|
|
roughnessMap = null;
|
|
|
|
}
|
|
|
|
this.roughnessMap = roughnessMap;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(skinning)) {
|
|
|
|
skinning = false;
|
|
|
|
}
|
|
|
|
this.skinning = skinning;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(wireframe)) {
|
|
|
|
wireframe = false;
|
|
|
|
}
|
|
|
|
this.wireframe = wireframe;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(wireframeLinecap)) {
|
|
|
|
wireframeLinecap = 'round';
|
|
|
|
}
|
|
|
|
this.wireframeLinecap = wireframeLinecap;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(wireframeLinejoin)) {
|
|
|
|
wireframeLinejoin = 'round';
|
|
|
|
}
|
|
|
|
this.wireframeLinejoin = wireframeLinejoin;
|
|
|
|
|
|
|
|
if (R3.Utils.UndefinedOrNull(wireframeLinewidth)) {
|
|
|
|
wireframeLinewidth = 1;
|
|
|
|
}
|
|
|
|
this.wireframeLinewidth = wireframeLinewidth;
|
|
|
|
|
|
|
|
R3.D3.API.Material.call(
|
|
|
|
this,
|
|
|
|
apiMaterial.id,
|
|
|
|
apiMaterial.name,
|
|
|
|
apiMaterial.materialType,
|
2019-07-24 08:08:02 +02:00
|
|
|
apiMaterial.parent,
|
2018-04-09 09:35:04 +02:00
|
|
|
apiMaterial.parentMeshes,
|
|
|
|
apiMaterial.alphaTest,
|
|
|
|
apiMaterial.blendDst,
|
|
|
|
apiMaterial.blendDstAlpha,
|
|
|
|
apiMaterial.blendEquation,
|
|
|
|
apiMaterial.blendEquationAlpha,
|
|
|
|
apiMaterial.blending,
|
|
|
|
apiMaterial.blendSrc,
|
|
|
|
apiMaterial.blendSrcAlpha,
|
|
|
|
apiMaterial.clipIntersection,
|
|
|
|
apiMaterial.clippingPlanes,
|
|
|
|
apiMaterial.clipShadows,
|
|
|
|
apiMaterial.colorWrite,
|
|
|
|
apiMaterial.customDepthMaterial,
|
|
|
|
apiMaterial.customDistanceMaterial,
|
|
|
|
apiMaterial.defines,
|
|
|
|
apiMaterial.depthFunc,
|
|
|
|
apiMaterial.depthTest,
|
|
|
|
apiMaterial.depthWrite,
|
|
|
|
apiMaterial.fog,
|
|
|
|
apiMaterial.lights,
|
|
|
|
apiMaterial.opacity,
|
|
|
|
apiMaterial.overdraw,
|
|
|
|
apiMaterial.polygonOffset,
|
|
|
|
apiMaterial.polygonOffsetFactor,
|
|
|
|
apiMaterial.polygonOffsetUnits,
|
|
|
|
apiMaterial.precision,
|
|
|
|
apiMaterial.premultipliedAlpha,
|
|
|
|
apiMaterial.dithering,
|
|
|
|
apiMaterial.flatShading,
|
|
|
|
apiMaterial.side,
|
|
|
|
apiMaterial.transparent,
|
|
|
|
apiMaterial.vertexColors,
|
|
|
|
apiMaterial.visible
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
R3.D3.API.Material.Standard.prototype = Object.create(R3.D3.API.Material.prototype);
|
|
|
|
R3.D3.API.Material.Standard.prototype.constructor = R3.D3.API.Material.Standard;
|