   float roughness = texture(uniMaterial.roughnessMap, fragMeshInfo.vertTexcoords).r * uniMaterial.roughnessFactor;
   float ambOcc    = texture(uniMaterial.ambientOcclusionMap, fragMeshInfo.vertTexcoords).r;
 
-  vec3 normal  = texture(uniMaterial.normalMap, fragMeshInfo.vertTexcoords).rgb;
-  normal       = normalize(normal * 2.0 - 1.0);
-  normal       = normalize(fragMeshInfo.vertTBNMatrix * normal);
+  vec3 normal = texture(uniMaterial.normalMap, fragMeshInfo.vertTexcoords).rgb;
+  normal      = normalize(normal * 2.0 - 1.0);
+  normal      = normalize(fragMeshInfo.vertTBNMatrix * normal);
 
   vec3 viewDir = normalize(uniCameraPos - fragMeshInfo.vertPosition);
 

}

// Shlick-Beckmann for Geometry part
float computeShlickGGX(float viewAngle, float roughness) {
  float incrRough   = (roughness + 1.0);
  float roughFactor = (incrRough * incrRough) / 8.0;

  float denom = viewAngle * (1.0 - roughFactor) + roughFactor;

  return viewAngle / denom;
}

// Geometry: Smith's Shlick GGX

  float viewAngle  = max(dot(viewDir, normal), 0.0);
  float lightAngle = max(dot(lightDir, normal), 0.0);

  float viewGeom  = computeGeomShlickGGX(viewAngle, roughness);
  float lightGeom = computeGeomShlickGGX(lightAngle, roughness);

  return viewGeom * lightGeom;
}

void main() {
