Speckled grey granite
=====================

Material Studio export — contract gridsnap.material 0.1.0
Material mat_90rutr4xheq7wpe641ymaj revision 1 · family stone · created 2026-10-05T14:42:53.020Z
Bake engine 1.0.0 · app 0.1.0

PHYSICAL SIZE
  One repeat of these maps covers 1000 mm (U, image width) × 1000 mm (V, image height).
  Set your UV/texture scale so that one tile = 1.000 m × 1.000 m.
  The images are square; for a non-square repeat the pixels are not square on the surface.
  Grain/pattern direction: grain u, pattern none (U = image right, V = image up).

MAPS
  Base colour  maps/basecolor.png  — sRGB colour, 1024×1024, 8-bit
  Normal       maps/normal-gl.png  — Non-Color / linear data, 1024×1024, 8-bit, OpenGL convention (+Y / green = up)
  Roughness    maps/orm.png (channel G)  — Non-Color / linear data, 1024×1024, 8-bit
  Height       maps/height-16bit.png  — Non-Color / linear data, 1024×1024, 16-bit
               sample 0..1 → -0.012 … 0.012 mm (h = min + s × (max − min)); 0 mm is the nominal finished face; negative values are recessed (joints, pores).

  Constants (no image file): metalness = 0 (no map; constant); no occlusion map

  Base colour contains no baked lighting or occlusion; apply AO only as ambient occlusion.
  Channel origin: baseColor=authored, normal=authored, roughness=authored, metalness=constant, occlusion=constant, height=authored
  ("inferred" = artistic estimate from an image, not measured data.)

TILING QA
  Automated seam check: passed (worst boundary/interior ratio 0.945).
  Human seam review: not recorded.

SETUP — tested and untested targets
  Status of each target is listed in the project's compatibility report. Everything below
  is image-map setup guidance; no native material file for these applications is included.

  Blender (Principled BSDF):
    - Base colour → Image Texture, Color Space "sRGB" → Base Color.
    - Normal → Image Texture "Non-Color" → Normal Map node (Tangent Space) → Normal.
      Maps are OpenGL convention, so no green-channel flip is needed.
    - Roughness/metalness/AO → Image Texture "Non-Color" (use the stated channel).
    - Height (optional) → Image Texture "Non-Color" → Displacement node, Midlevel = 0.5000, Scale = 0.00002 (metres).
    - Mapping node Scale = (surface size in m) / (1.000, 1.000), or use Object/real-world UVs.

  Unreal Engine: import base colour with sRGB on; normal with "Flip Green Channel" ON
    (Unreal expects DirectX-style normals); roughness/metalness/AO with sRGB OFF and
    compression "Masks". UNVERIFIED in a real Unreal import.
  Twinmotion: assign colour, normal, roughness and metallic images in the PBR material; normal
    convention and scale must be checked in the application. UNVERIFIED.
  SketchUp + Enscape / V-Ray: set the texture size to 1000 × 1000 mm; add the normal/roughness
    maps in the renderer's material editor. UNVERIFIED.
  three.js / glTF: raster row 0 is the top (+V) edge. With glTF UVs (origin top-left) use
    texture.flipY = false; with three.js built-in geometries (v up) use flipY = true.
    roughnessMap reads G and metalnessMap reads B: route grayscale maps or use the ORM file.

GRIDSNAP PROFILE (gridsnap-web-v1 1.0.0)
  Structural profile checks: all passed.
    [x] Tiled profile requires tileable u and v
    [x] Longest side 1024 px (max 1024)
    [x] 3 sampled texture(s) (max 3)
    [x] Packed ORM: R = occlusion, G = roughness, B = metalness
    [x] All bound textures are KTX2/Basis
    [x] KTX2 derivatives carry full mip chains
    [x] Base colour sRGB; normal/ORM linear
    [x] Each KTX2 binding has a PNG fallback
  This is a profile-conformant package for the proposed contract. GridSnap integration is
  pending; it is NOT verified in the GridSnap editor.
  Encoded 1018753 B; decoded RGBA8 + mips ≈ 16777215 B; GPU (compressed, estimate) ≈ 3495253 B.

LICENCE
  gridsnap-texture-licence-1.0 — redistribution not-granted. Gridsnap Texture Licence: free to use in personal and commercial projects; do not resell or redistribute the files. https://gridsnap.app/textures/licence/

Recipe preset: speckled-granite
