|
@@ -289,7 +289,7 @@ module BABYLON {
|
|
|
@expandToProperty("_markAllSubMeshesAsTexturesDirty")
|
|
|
public cameraColorCurves: ColorCurves;
|
|
|
|
|
|
- public customShaderNameResolve: (shaderName: string) => string;
|
|
|
+ public customShaderNameResolve: (shaderName: string, uniforms: string[], uniformBuffers: string[], samplers: string[], defines: StandardMaterialDefines) => string;
|
|
|
|
|
|
protected _renderTargets = new SmartArray<RenderTargetTexture>(16);
|
|
|
protected _worldViewProjectionMatrix = Matrix.Zero();
|
|
@@ -694,12 +694,7 @@ module BABYLON {
|
|
|
MaterialHelper.PrepareAttributesForMorphTargets(attribs, mesh, defines);
|
|
|
|
|
|
var shaderName = "default";
|
|
|
-
|
|
|
- if (this.customShaderNameResolve) {
|
|
|
- shaderName = this.customShaderNameResolve(shaderName);
|
|
|
- }
|
|
|
-
|
|
|
- var join = defines.toString();
|
|
|
+
|
|
|
var uniforms = ["world", "view", "viewProjection", "vEyePosition", "vLightsType", "vAmbientColor", "vDiffuseColor", "vSpecularColor", "vEmissiveColor",
|
|
|
"vFogInfos", "vFogColor", "pointSize",
|
|
|
"vDiffuseInfos", "vAmbientInfos", "vOpacityInfos", "vReflectionInfos", "vEmissiveInfos", "vSpecularInfos", "vBumpInfos", "vLightmapInfos", "vRefractionInfos",
|
|
@@ -711,6 +706,7 @@ module BABYLON {
|
|
|
];
|
|
|
|
|
|
var samplers = ["diffuseSampler", "ambientSampler", "opacitySampler", "reflectionCubeSampler", "reflection2DSampler", "emissiveSampler", "specularSampler", "bumpSampler", "lightmapSampler", "refractionCubeSampler", "refraction2DSampler"]
|
|
|
+
|
|
|
var uniformBuffers = ["Material", "Scene"];
|
|
|
|
|
|
if (defines.CAMERACOLORCURVES) {
|
|
@@ -727,6 +723,11 @@ module BABYLON {
|
|
|
maxSimultaneousLights: this._maxSimultaneousLights
|
|
|
});
|
|
|
|
|
|
+ if (this.customShaderNameResolve) {
|
|
|
+ shaderName = this.customShaderNameResolve(shaderName, uniforms, uniformBuffers, samplers, defines);
|
|
|
+ }
|
|
|
+
|
|
|
+ var join = defines.toString();
|
|
|
subMesh.setEffect(scene.getEngine().createEffect(shaderName, <EffectCreationOptions>{
|
|
|
attributes: attribs,
|
|
|
uniformsNames: uniforms,
|