Looks like there is still one minor issue with the NME TBNBlock. After latest changes it produces shader error if
world input is connected to a vertex node block’s matrix output instead of the world
See a Playground example here, where world input comes from InstancesBlock: https://playground.babylonjs.com/#VL1FPT#8
The fix is very simple. Just also change the world input target to
NodeMaterialBlockTargets.Fragment on this line: Babylon.js/TBNBlock.ts at 3ae2b8e803b7a3bc967c99c31e912c8c11bd2dd8 · BabylonJS/Babylon.js · GitHub
You can confirm the fix by uncommenting line 41 in my Playground example.
Alternative would be to just switch the whole TBNBlock to
NodeMaterialBlockTargets.Fragment type, as it technically already is so. Then there would be no need to specify the input/output targets separately. But since this would likely also involve moving the source file from Dual folder to Fragment folder for consistency, I’ll leave it for the core developers to figure out which way to fix this.