struct ObjectUniform { mat4 worldFromModelMatrix; // World matrix mat3 worldFromModelNormalMatrix; // This would be inverse transpose world matrix with only upper left 3x3 but Ogre doesn't provide one so we use the one above. #if defined(HAS_SKINNING_OR_MORPHING) vec4 morphWeights; // Parametric animation value int morphingEnabled; int skinningEnabled; #endif }; uniform ObjectUniform objectUniforms;