Skip to content

[Feature] Add HDRI cooking and source-radiance environment maps #804

Description

@JeanPhilippeKernel

Type

  • Bug
  • Feature
  • Refactor / cleanup
  • Task / chore

Overview

Import HDRI source assets into versioned cooked environment maps and publish them as SkyEnvironment source radiance.

Context

Runtime sky rendering must not decode arbitrary source HDR files on the render thread. Environment identity is a stable scene asset reference; cooked artifacts are implementation data.

What needs to be done

  • Implement EnvironmentMapImporter validation and cooked artifact creation.
  • Support equirectangular HDR or EXR conversion to canonical cubemap orientation and mip policy.
  • Define format, exposure, color-space, face orientation, and asset-version metadata.
  • Queue revision-tagged async loading and publish only the still-requested completed result.
  • Report unsupported formats and capability failures while retaining fallback resources.

Resources

  • ZEngine/docs/future-plan/sky-rendering.md sections 4, 7, and 10

Testing

Test valid and corrupt source assets, orientation reference images, asset hot reload, cancellation, stale load results, and cooked artifact cache invalidation.

Acceptance criteria

  • Scene data stores a stable asset reference, never a cooked path.
  • Runtime rendering does no source HDR decoding on the render thread.
  • Cooked cubemaps use documented linear color and canonical orientation.
  • Load failure leaves the fallback presentation and IBL valid.
  • Builds without warnings in Debug and Release.
  • All relevant unit tests pass.
  • No regression in existing functionality.

Estimated effort

4-6 days.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions