# Rengi Forge: Texture Tools – Grayscale Map Packer

> Rengi Forge: Texture Tools – Grayscale Map Packer is a paid API for AI agents from rengi.dev, paid per call via x402, $0.05/call, status unknown (last checked 2026-10-22).

Packs multiple grayscale PBR maps (AO, roughness, metallic, detail) into a single packed texture optimized for a specific engine preset (Unreal ORM, Unity URP metallic/smoothness, or Unity HDRP mask map).

## Facts

- Endpoint: POST https://rengi.dev/v1/texture-tools/pack?utm_source=zero.xyz
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-22
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/rengi-forge-texture-tools-grayscale-map-packer-a9e0b1eb
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_BPxNbQ3WvHGfxnwkL7lb7

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability rengi-forge-texture-tools-grayscale-map-packer-a9e0b1eb -d '<json body>'
```

Example prompt: Pack my roughness map (https://example.com/rough.png) and metallic map (https://example.com/metal.png) and AO map (https://example.com/ao.png) into a single Unreal ORM texture at 2048px using Rengi Forge.

## When to prefer this

Choose this endpoint when you need to pack multiple PBR grayscale texture maps into a single engine-ready packed texture for Unreal Engine or Unity (URP or HDRP). It handles the channel-assignment conventions automatically per preset and fills missing maps with sensible defaults, saving manual Photoshop or Substance channel-packing work. Prefer it over generic image tools when the target engine preset and correct channel layout matter.

## Known failure modes

- Image URL unreachable or returns non-image content
- Input image dimensions mismatch causing resize artifacts
- Unsupported image format provided
- Requested output size exceeds 4096px maximum or below 16px minimum
- Both roughness and smoothness provided simultaneously causing conflict
- Payment authorization failure for x402 protocol

## How this service works

Texture tools: Pack grayscale maps into one texture for an engine preset: Unreal ORM, Unity URP metallic/smoothness, Unity HDRP mask map. Missing maps get sensible constants. Full schema: https://rengi.dev/v1/texture-tools/schema

## Output

Returns a single packed texture image with grayscale source maps packed into the correct RGBA channels for the chosen engine preset (e.g. R=Occlusion, G=Roughness, B=Metallic for Unreal ORM). Missing input maps are filled with sensible constant values.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "ao": {
   "type": "object",
   "properties": {
    "image": {
     "type": "string"
    },
    "imageUrl": {
     "type": "string",
     "format": "uri"
    }
   },
   "additionalProperties": false
  },
  "size": {
   "type": "integer",
   "maximum": 4096,
   "minimum": 16,
   "description": "Output side; default is the largest input."
  },
  "detail": {
   "type": "object",
   "properties": {
    "image": {
     "type": "string"
    },
    "imageUrl": {
     "type": "string",
     "format": "uri"
    }
   },
   "additionalProperties": false
  },
  "preset": {
   "enum": [
    "unreal-orm",
    "unity-urp-metallic",
    "unity-hdrp-mask"
   ],
   "type": "string"
  },
  "metallic": {
   "type": "object",
   "properties": {
    "image": {
     "type": "string"
    },
    "imageUrl": {
     "type": "string",
     "format": "uri"
    }
   },
   "additionalProperties": false
  },
  "roughness": {
   "type": "object",
   "properties": {
    "image": {
     "type": "string"
    },
    "imageUrl": {
     "type": "string",
     "format": "uri"
    }
   },
   "additionalProperties": false
  },
  "smoothness": {
   "type": "object",
   "properties": {
    "image": {
     "type": "string"
    },
    "imageUrl": {
     "type": "string",
     "format": "uri"
    }
   },
   "description": "Give roughness or smoothness; the other is derived (smoothness = 1 - roughness).",
   "additionalProperties": false
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/rengi-forge-texture-tools-grayscale-map-packer-a9e0b1eb/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from rengi.dev](https://www.zero.xyz/host/rengi.dev/llms.txt)
