babylon.customMaterial.min.js 9.3 KB

1
  1. var BABYLON;!(function(e){var i=(function(){function e(){}return e})();e.CustomShaderHelper=i;var s=(function(s){function t(e,i,t){var r=s.call(this,e,t)||this;return r._mainPart="void main(void) {",r._diffusePart="vec3 diffuseColor=vDiffuseColor.rgb;",r._vertexPositionPart="gl_Position=viewProjection*finalWorld*vec4(position,1.0);",r.builder=i,r}return __extends(t,s),t.prototype.isReady=function(s,t){if(this.isFrozen&&this._wasPreviouslyReady)return!0;var r=this.getScene(),a=r.getEngine(),n=!1,d=!1;if(this._defines.reset(),r.lightsEnabled&&!this.disableLighting&&(d=e.MaterialHelper.PrepareDefinesForLights(r,s,this._defines,this.maxSimultaneousLights)),!this.checkReadyOnEveryCall&&this._renderId===r.getRenderId()&&this._checkCache(r,s,t))return!0;if(r.texturesEnabled){if(this.diffuseTexture&&e.StandardMaterial.DiffuseTextureEnabled){if(!this.diffuseTexture.isReady())return!1;n=!0,this._defines.DIFFUSE=!0}if(this.ambientTexture&&e.StandardMaterial.AmbientTextureEnabled){if(!this.ambientTexture.isReady())return!1;n=!0,this._defines.AMBIENT=!0}if(this.opacityTexture&&e.StandardMaterial.OpacityTextureEnabled){if(!this.opacityTexture.isReady())return!1;n=!0,this._defines.OPACITY=!0,this.opacityTexture.getAlphaFromRGB&&(this._defines.OPACITYRGB=!0)}if(this.reflectionTexture&&e.StandardMaterial.ReflectionTextureEnabled){if(!this.reflectionTexture.isReady())return!1;switch(d=!0,this._defines.REFLECTION=!0,this.roughness>0&&(this._defines.ROUGHNESS=!0),this.useReflectionOverAlpha&&(this._defines.REFLECTIONOVERALPHA=!0),this.reflectionTexture.coordinatesMode===e.Texture.INVCUBIC_MODE&&(this._defines.INVERTCUBICMAP=!0),this._defines.REFLECTIONMAP_3D=this.reflectionTexture.isCube,this.reflectionTexture.coordinatesMode){case e.Texture.CUBIC_MODE:case e.Texture.INVCUBIC_MODE:this._defines.REFLECTIONMAP_CUBIC=!0;break;case e.Texture.EXPLICIT_MODE:this._defines.REFLECTIONMAP_EXPLICIT=!0;break;case e.Texture.PLANAR_MODE:this._defines.REFLECTIONMAP_PLANAR=!0;break;case e.Texture.PROJECTION_MODE:this._defines.REFLECTIONMAP_PROJECTION=!0;break;case e.Texture.SKYBOX_MODE:this._defines.REFLECTIONMAP_SKYBOX=!0;break;case e.Texture.SPHERICAL_MODE:this._defines.REFLECTIONMAP_SPHERICAL=!0;break;case e.Texture.EQUIRECTANGULAR_MODE:this._defines.REFLECTIONMAP_EQUIRECTANGULAR=!0;break;case e.Texture.FIXED_EQUIRECTANGULAR_MODE:this._defines.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!0}}if(this.emissiveTexture&&e.StandardMaterial.EmissiveTextureEnabled){if(!this.emissiveTexture.isReady())return!1;n=!0,this._defines.EMISSIVE=!0}if(this.lightmapTexture&&e.StandardMaterial.LightmapTextureEnabled){if(!this.lightmapTexture.isReady())return!1;n=!0,this._defines.LIGHTMAP=!0,this._defines.USELIGHTMAPASSHADOWMAP=this.useLightmapAsShadowmap}if(this.specularTexture&&e.StandardMaterial.SpecularTextureEnabled){if(!this.specularTexture.isReady())return!1;n=!0,this._defines.SPECULAR=!0,this._defines.GLOSSINESS=this.useGlossinessFromSpecularMapAlpha}if(r.getEngine().getCaps().standardDerivatives&&this.bumpTexture&&e.StandardMaterial.BumpTextureEnabled){if(!this.bumpTexture.isReady())return!1;n=!0,this._defines.BUMP=!0,this.useParallax&&(this._defines.PARALLAX=!0,this.useParallaxOcclusion&&(this._defines.PARALLAXOCCLUSION=!0)),this.invertNormalMapX&&(this._defines.INVERTNORMALMAPX=!0),this.invertNormalMapY&&(this._defines.INVERTNORMALMAPY=!0),r._mirroredCameraPosition&&(this._defines.INVERTNORMALMAPX=!this._defines.INVERTNORMALMAPX,this._defines.INVERTNORMALMAPY=!this._defines.INVERTNORMALMAPY)}if(this.refractionTexture&&e.StandardMaterial.RefractionTextureEnabled){if(!this.refractionTexture.isReady())return!1;n=!0,this._defines.REFRACTION=!0,this._defines.REFRACTIONMAP_3D=this.refractionTexture.isCube}if(this.cameraColorGradingTexture&&e.StandardMaterial.ColorGradingTextureEnabled){if(!this.cameraColorGradingTexture.isReady())return!1;this._defines.CAMERACOLORGRADING=!0}}if(r.clipPlane&&(this._defines.CLIPPLANE=!0),a.getAlphaTesting()&&(this._defines.ALPHATEST=!0),this._shouldUseAlphaFromDiffuseTexture()&&(this._defines.ALPHAFROMDIFFUSE=!0),this.useEmissiveAsIllumination&&(this._defines.EMISSIVEASILLUMINATION=!0),this.linkEmissiveWithDiffuse&&(this._defines.LINKEMISSIVEWITHDIFFUSE=!0),this.useLogarithmicDepth&&(this._defines.LOGARITHMICDEPTH=!0),this.cameraColorCurves&&(this._defines.CAMERACOLORCURVES=!0),(this.pointsCloud||r.forcePointsCloud)&&(this._defines.POINTSIZE=!0),r.fogEnabled&&s&&s.applyFog&&r.fogMode!==e.Scene.FOGMODE_NONE&&this.fogEnabled&&(this._defines.FOG=!0),e.StandardMaterial.FresnelEnabled&&(this.diffuseFresnelParameters&&this.diffuseFresnelParameters.isEnabled||this.opacityFresnelParameters&&this.opacityFresnelParameters.isEnabled||this.emissiveFresnelParameters&&this.emissiveFresnelParameters.isEnabled||this.refractionFresnelParameters&&this.refractionFresnelParameters.isEnabled||this.reflectionFresnelParameters&&this.reflectionFresnelParameters.isEnabled)&&(this.diffuseFresnelParameters&&this.diffuseFresnelParameters.isEnabled&&(this._defines.DIFFUSEFRESNEL=!0),this.opacityFresnelParameters&&this.opacityFresnelParameters.isEnabled&&(this._defines.OPACITYFRESNEL=!0),this.reflectionFresnelParameters&&this.reflectionFresnelParameters.isEnabled&&(this._defines.REFLECTIONFRESNEL=!0,this.useReflectionFresnelFromSpecular&&(this._defines.REFLECTIONFRESNELFROMSPECULAR=!0)),this.refractionFresnelParameters&&this.refractionFresnelParameters.isEnabled&&(this._defines.REFRACTIONFRESNEL=!0),this.emissiveFresnelParameters&&this.emissiveFresnelParameters.isEnabled&&(this._defines.EMISSIVEFRESNEL=!0),d=!0,this._defines.FRESNEL=!0),this._defines.SPECULARTERM&&this.useSpecularOverAlpha&&(this._defines.SPECULAROVERALPHA=!0),s&&(d&&s.isVerticesDataPresent(e.VertexBuffer.NormalKind)&&(this._defines.NORMAL=!0),n&&(s.isVerticesDataPresent(e.VertexBuffer.UVKind)&&(this._defines.UV1=!0),s.isVerticesDataPresent(e.VertexBuffer.UV2Kind)&&(this._defines.UV2=!0)),s.useVertexColors&&s.isVerticesDataPresent(e.VertexBuffer.ColorKind)&&(this._defines.VERTEXCOLOR=!0,s.hasVertexAlpha&&(this._defines.VERTEXALPHA=!0)),s.useBones&&s.computeBonesUsingShaders&&(this._defines.NUM_BONE_INFLUENCERS=s.numBoneInfluencers,this._defines.BonesPerMesh=s.skeleton.bones.length+1),t&&(this._defines.INSTANCES=!0)),!this._defines.isEqual(this._cachedDefines)){this._defines.cloneTo(this._cachedDefines),r.resetCachedMaterial();var f=new e.EffectFallbacks;this._defines.REFLECTION&&f.addFallback(0,"REFLECTION"),this._defines.SPECULAR&&f.addFallback(0,"SPECULAR"),this._defines.BUMP&&f.addFallback(0,"BUMP"),this._defines.PARALLAX&&f.addFallback(1,"PARALLAX"),this._defines.PARALLAXOCCLUSION&&f.addFallback(0,"PARALLAXOCCLUSION"),this._defines.SPECULAROVERALPHA&&f.addFallback(0,"SPECULAROVERALPHA"),this._defines.FOG&&f.addFallback(1,"FOG"),this._defines.POINTSIZE&&f.addFallback(0,"POINTSIZE"),this._defines.LOGARITHMICDEPTH&&f.addFallback(0,"LOGARITHMICDEPTH"),e.MaterialHelper.HandleFallbacksForShadows(this._defines,f,this.maxSimultaneousLights),this._defines.SPECULARTERM&&f.addFallback(0,"SPECULARTERM"),this._defines.DIFFUSEFRESNEL&&f.addFallback(1,"DIFFUSEFRESNEL"),this._defines.OPACITYFRESNEL&&f.addFallback(2,"OPACITYFRESNEL"),this._defines.REFLECTIONFRESNEL&&f.addFallback(3,"REFLECTIONFRESNEL"),this._defines.EMISSIVEFRESNEL&&f.addFallback(4,"EMISSIVEFRESNEL"),this._defines.FRESNEL&&f.addFallback(4,"FRESNEL");var l=[e.VertexBuffer.PositionKind];this._defines.NORMAL&&l.push(e.VertexBuffer.NormalKind),this._defines.UV1&&l.push(e.VertexBuffer.UVKind),this._defines.UV2&&l.push(e.VertexBuffer.UV2Kind),this._defines.VERTEXCOLOR&&l.push(e.VertexBuffer.ColorKind),e.MaterialHelper.PrepareAttributesForBones(l,s,this._defines,f),e.MaterialHelper.PrepareAttributesForInstances(l,this._defines);var h="default";this.builder&&(h=this.builder(new i,h,this._mainPart,this._diffusePart,this._vertexPositionPart));var E=this._defines.toString(),o=["world","view","viewProjection","vEyePosition","vLightsType","vAmbientColor","vDiffuseColor","vSpecularColor","vEmissiveColor","vFogInfos","vFogColor","pointSize","vDiffuseInfos","vAmbientInfos","vOpacityInfos","vReflectionInfos","vEmissiveInfos","vSpecularInfos","vBumpInfos","vLightmapInfos","vRefractionInfos","mBones","vClipPlane","diffuseMatrix","ambientMatrix","opacityMatrix","reflectionMatrix","emissiveMatrix","specularMatrix","bumpMatrix","lightmapMatrix","refractionMatrix","depthValues","diffuseLeftColor","diffuseRightColor","opacityParts","reflectionLeftColor","reflectionRightColor","emissiveLeftColor","emissiveRightColor","refractionLeftColor","refractionRightColor","logarithmicDepthConstant"],u=["diffuseSampler","ambientSampler","opacitySampler","reflectionCubeSampler","reflection2DSampler","emissiveSampler","specularSampler","bumpSampler","lightmapSampler","refractionCubeSampler","refraction2DSampler"];this._defines.CAMERACOLORCURVES&&e.ColorCurves.PrepareUniforms(o),this._defines.CAMERACOLORGRADING&&e.ColorGradingTexture.PrepareUniformsAndSamplers(o,u),e.MaterialHelper.PrepareUniformsAndSamplersList(o,u,this._defines,this.maxSimultaneousLights),this._effect=r.getEngine().createEffect(h,l,o,u,E,f,this.onCompiled,this.onError,{maxSimultaneousLights:this.maxSimultaneousLights-1})}return!!this._effect.isReady()&&(this._renderId=r.getRenderId(),this._wasPreviouslyReady=!0,s&&(s._materialDefines||(s._materialDefines=new e.StandardMaterialDefines),this._defines.cloneTo(s._materialDefines)),!0)},t})(e.StandardMaterial);e.CustomMaterial=s})(BABYLON||(BABYLON={}));