LightFieldAsset#

class gs_nyx.nyx_py_sdk.LightFieldAsset#

Bases: object

A captured radiance field placed in the scene.

Constructors

LightFieldAsset()

Construct a default-initialized light field asset.

Attributes

position

World-space position of the light field.

rotation

World-space rotation of the light field.

scale

World-space scale of the light field.

tint

RGB tint multiplied with the light field radiance.

type

Underlying representation of the light field.

uri

Path to the light field data file.

uuid

Unique identifier of the light field asset.

Example

A Gaussian-splat capture (a .ply exported from a 3DGS trainer) is rendered by declaring a GaussianField asset and passing it to a camera through light_fields:

import gs_nyx.nyx_py_sdk as nps

capture            = nps.LightFieldAsset()
capture.type       = nps.ELightFieldType.GaussianField
capture.uri        = "path/to/capture.ply"
capture.position   = nps.float3(0.0, 0.0, 0.0)
# 90° rotation about the world up axis to stand the capture upright in
# Genesis' Z-up frame. See :func:`quaternion_conjugate` for the
# (x, y, z, w) unit-quaternion convention.
capture.rotation   = nps.quaternion(0.0, 0.0, -0.70710678, 0.70710678)
capture.scale      = nps.float3(1.0, 1.0, 1.0)

# The asset is then consumed by a NyxCameraOptions instance:
#
#     NyxCameraOptions(..., light_fields=(capture,))

Note

type selects the underlying representation: GaussianField for .ply Gaussian splats and SparseGrid for volumetric sparse-grid radiance fields. The renderer dispatches to a different code path for each, so the uri must point to a file matching the declared type.