Skip to content

ZEngine — Texture Compression and Transcoding

Priority: Next-year plan Status: Design — the current importers do not provide a general cooked compressed texture/transcode pipeline. Depends on: import/cook artifacts, target GPU format policy, texture streaming, and material binding.

Scope

Texture compression is a platform-aware offline/cook and load-time transcode contract. It must preserve the semantic texture type, color-space intent, mip policy, alpha requirements, and normal-map conventions. A filename extension or a generic promise of a compression ratio is not a format contract.

Earlier codec choices, file extensions, quality settings, and asset APIs were proposals, not current engine behavior.

Required design

  • Define canonical source inputs and cooked container/metadata, including dimensions, mip chain, color space, alpha, normal/ORM/HDR semantics, hashes, versions, and bounds.
  • Define per-platform supported GPU formats and fallback/transcode policy; validate feature availability on the selected device rather than assuming a desktop format.
  • Decide encoder/tool licensing, reproducibility, rate-distortion settings, cache keys, build-farm compatibility, and source-artifact retention.
  • Integrate uploads, descriptor lifetime, streaming, memory accounting, visual fallback, and import error diagnostics with the actual RenderResourceManager path.
  • Preserve uncompressed/source-quality assets where a target cannot represent the semantic data without unacceptable loss.

Acceptance gates

  • Cooked metadata detects stale/corrupt/mismatched artifacts before upload.
  • Representative albedo, alpha, normal, ORM, UI, HDR, and environment assets meet documented quality and memory measurements on supported hardware.
  • Load, eviction, reload, and device-feature fallback paths are validation-layer clean and retain a defined placeholder on failure.