class ExrImage


Represents an EXR image in SceneCore.

EXR images are used by the SpatialEnvironment for drawing skyboxes.

Summary

Public companion functions

suspend ExrImage
@MainThread
createFromZip(session: Session, path: Path)

Public factory for an ExrImage, asynchronously loading a preprocessed skybox from a Path relative to the application's assets/ folder.

suspend ExrImage
@MainThread
createFromZip(session: Session, uri: Uri)

Public factory for an ExrImage, asynchronously loading a preprocessed skybox from a Uri.

suspend ExrImage
@MainThread
createFromZip(session: Session, assetData: ByteArray, assetKey: String)

Public factory function for a preprocessed EXRImage, where the preprocessed EXRImage is asynchronously loaded.

Public functions

open operator Boolean
equals(other: Any?)
CubeMapTexture

Returns the reflection texture from a preprocessed EXR image.

open Int

Public companion functions

createFromZip

@MainThread
suspend fun createFromZip(session: Session, path: Path): ExrImage

Public factory for an ExrImage, asynchronously loading a preprocessed skybox from a Path relative to the application's assets/ folder.

The input .zip file should contain the preprocessed image-based lighting (IBL) data, typically generated from an .exr or .hdr environment map using a tool like Filament's cmgen. See: https://github.com/google/filament/tree/main/tools/cmgen

Parameters
session: Session

The Session to use for loading the asset.

path: Path

The Path of the preprocessed .zip skybox file to be loaded, relative to the application's assets/ folder.

Returns
ExrImage

a ExrImage upon completion. @throws IllegalArgumentException if Path.isAbsolute is true, as this method requires a relative path, or if the path does not specify a .zip file.

createFromZip

@MainThread
suspend fun createFromZip(session: Session, uri: Uri): ExrImage

Public factory for an ExrImage, asynchronously loading a preprocessed skybox from a Uri.

The input .zip file should contain the preprocessed image-based lighting (IBL) data, typically generated from an .exr or .hdr environment map using a tool like Filament's cmgen. See: https://github.com/google/filament/tree/main/tools/cmgen

Parameters
session: Session

The Session to use for loading the asset.

uri: Uri

The Uri of the preprocessed .zip skybox file to be loaded.

Returns
ExrImage

a ExrImage upon completion. @throws IllegalArgumentException if the Uri does not specify a .zip file.

createFromZip

@MainThread
suspend fun createFromZip(session: Session, assetData: ByteArray, assetKey: String): ExrImage

Public factory function for a preprocessed EXRImage, where the preprocessed EXRImage is asynchronously loaded.

This method must be called from the main thread. https://developer.android.com/guide/components/processes-and-threads

Parameters
session: Session

The Session to use for loading the asset.

assetData: ByteArray

The byte array of the preprocessed EXR image to be loaded.

assetKey: String

The key of the preprocessed EXR image to be loaded. This is used to identify the asset in the SceneCore cache.

Returns
ExrImage

a ExrImage upon completion.

Public functions

equals

open operator fun equals(other: Any?): Boolean

getReflectionTexture

Added in 1.0.0-alpha05
@MainThread
fun getReflectionTexture(): CubeMapTexture

Returns the reflection texture from a preprocessed EXR image.

This method must be called from the main thread. https://developer.android.com/guide/components/processes-and-threads

Returns
CubeMapTexture

a CubeMapTexture.

Throws
kotlin.IllegalStateException

if the reflection texture couldn't be retrieved or if the EXR image was not preprocessed.

hashCode

open fun hashCode(): Int