Hey guys… i got a weird shader error all of the sudden when there is EITHER No light at all (Using just baked lighting from lightmapTexture) or if the light.lightmapMode === 0 (DEFAULT)… it gets a shader error: lightmapColor is undeclared indentifier
Its so hard to RE-CREATE my EXACT scene in the playground. That will take sooo long to do… that is a project in itself.
I was hoping WHOEVER has been working on the shader code lately might have some insight as to why using material.lightmapTexture and you dont have a light with its light.lightmapMode === SPECULAR or SHADOW is now causes a shader error.
I dont know if its just my projects or what… Because how could NO ONE ELSE notice that using lightmapTextures with DEFAULT lightmapMode is causing shader errors 
Which Babylon version are you using?
Looking at the source code in the current 4.1 beta, I can’t see why this error would pop up.
That’s strange, because I looked for all occurrences of lightmapColor and they are always enclosed inside some #if defined(LIGHTMAP) and the very first #ifdef LIGHTMAP does declare the lightmapColor variable.
https://playground.babylonjs.com/#RN7HN3
There’s no light, the PBR material has an albedo + lightmap texture and it does work.
If you set noLight = false, a directional light is created with .lightmapMode = 0 and it still works.
It would help if you could copy the fragment shader with the error:
- locate the
_processCompilationErrors function (in the Effect class)
- add
console.log(this._fragmentSourceCode) at the start
You will need to use the “.max.js” bundle to be able to perform this change.
1 Like