 layout(constant_id = 1000) const bool enableUVTransform = true;
 layout(constant_id = 1001) const bool enableAlphaCutoff = false;
 layout(constant_id = 1002) const bool enableGlow = false;
-layout(constant_id = 1003) const bool useColorTexture = false;
-layout(constant_id = 1004) const bool useGlowTexture = false;
-layout(constant_id = 1005) const bool useMetalnessTexture = false;
-layout(constant_id = 1006) const bool useRoughnessTexture = false;
-layout(constant_id = 1007) const bool useOcclusionTexture = false;
-layout(constant_id = 1008) const bool useClearcoatTexture = false;
-layout(constant_id = 1009) const bool useNormalTexture = false;
+layout(constant_id = 1003) const bool enableNormalMap = false;
+layout(constant_id = 1004) const bool useVertexTangents = true;
+layout(constant_id = 1005) const bool useColorTexture = true;
+layout(constant_id = 1006) const bool useGlowTexture = false;
+layout(constant_id = 1007) const bool useMetalnessTexture = true;
+layout(constant_id = 1008) const bool useRoughnessTexture = true;
+layout(constant_id = 1009) const bool useOcclusionTexture = false;
+layout(constant_id = 1010) const bool useClearcoatTexture = false;
 
 // Resources
 #ifndef GL_COMPUTE_SHADER

  float alpha;
};

void initSurface(out Surface surface) {
  surface.position = PositionWorld;

  if (useNormalTexture) {
    //surface.normal = TangentMatrix * vec3(getPixel(NormalTexture, UV)) * Material.normalScale;
  } else {
    surface.normal = normalize(Normal);
  }

  surface.geometricNormal = normalize(Normal);
  surface.view = CameraPositionWorld - PositionWorld;
  surface.reflection = reflect(-surface.view, surface.normal);

  vec4 color = Color;

  Color = VertexColor * Material.color * PassColor;
  UV = VertexUV;

  if (enableNormalMap && useVertexTangents) {
    Tangent = NormalMatrix * VertexTangent;
  }

  PointSize = 1.f;
  Position = lovrmain();

