Skip to content

Add HDR OpenEXR cube face export - #4

Closed
andy83 wants to merge 1 commit into
BinaryConstruct:mainfrom
andy83:feature/cubemap-face-exr-export
Closed

Add HDR OpenEXR cube face export#4
andy83 wants to merge 1 commit into
BinaryConstruct:mainfrom
andy83:feature/cubemap-face-exr-export

Conversation

@andy83

@andy83 andy83 commented Sep 1, 2026

Copy link
Copy Markdown

Summary

  • export the existing HDR cube render target directly as six OpenEXR files
  • add a Cube faces EXR (.zip) option to normal, batch, per-layer, and composite exports
  • preserve all existing PNG and equirectangular HDR/EXR export paths and canonical face naming

Implementation

BinaryConstruct already bakes its cubemap into a HalfFloatType render target. The new path reads each face into a Uint16Array, wraps that half-float data in a Three.js DataTexture, and encodes it with Three.js' EXRExporter. No 8-bit PNG or other LDR intermediate is involved.

Faces are read and encoded sequentially so the 4096×4096 export does not retain six additional uncompressed conversion buffers at once.

Verification

  • npm test: 17 files, 135 tests passed
  • npm run build: passed
  • npm run lint: passed with the repository's existing react(only-export-components) warning in src/ui/SpritesTab.tsx
  • browser verification with real presets and HDR multipliers above 1.0
  • all six 4096×4096 EXRs verified as half-float with HDR values above 1.0
  • PNG/EXR face orientation compared pixel-for-pixel across all six faces
  • repeated EXR exports verified byte-identical per archive entry
  • batch and per-layer/composite EXR packaging verified

@andy83 andy83 closed this Sep 1, 2026
@andy83
andy83 deleted the feature/cubemap-face-exr-export branch September 1, 2026 13:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants