{
  "units": "metres",
  "plane_z": -0.0008,
  "uv": "u=x/extent+0.5, v=y/extent+0.5; file top is +Y. Blender +Z up. three: (x,z,-y).",
  "leaf_mask": {
    "extent": [
      1.6,
      1.6
    ],
    "centre": [
      0,
      0
    ],
    "white": "full sunlight",
    "encoding": "linear visibility; NoColorSpace"
  },
  "streaks": {
    "extent": [
      1.6,
      1.6
    ],
    "centre": [
      0,
      0
    ],
    "encoding": "linear RGB multiplier; white is neutral; NoColorSpace"
  },
  "contact_ao": {
    "extent": [
      0.7,
      0.7
    ],
    "centre": [
      0,
      0
    ],
    "white": "unoccluded",
    "encoding": "linear hemispherical visibility; NoColorSpace"
  },
  "contact_ao_rec": {
    "extent": [
      0.7,
      0.7
    ],
    "centre": [
      0,
      0
    ],
    "pose": "record on, arm stowed"
  },
  "sun_to_light_blender": [
    -0.6202481389045715,
    0.48019206523895264,
    0.6202481389045715
  ],
  "sun_ray_direction_blender": [
    0.6202481389045715,
    -0.48019206523895264,
    -0.6202481389045715
  ],
  "sun_angle_degrees": 1.6,
  "plaster": {
    "source": "https://polyhaven.com/a/beige_wall_001",
    "license": "CC0",
    "normal": "OpenGL +Y",
    "tile_metres": 1.1428571428571428
  },
  "check_camera": {
    "fov_horizontal_degrees": 20,
    "elevation_degrees": 74,
    "distance": 2.05
  },
  "note": "Palm is original procedural geometry. Leaf mask excludes product shadow. AO from uniform white world, one diffuse bounce, unit invisible only to camera. Multiply masks in linear space. Ground shadow from realtime sun must not include a second leaf mask."
}