java.lang.Object
de.grogra.graph.impl.Edge
de.grogra.graph.impl.Node
de.grogra.imp3d.objects.Null
de.grogra.imp3d.objects.SkyDome
de.grogra.gpuflux.imp3d.objects.SpectralSkyDome
- All Implemented Interfaces:
Transformation,Pickable,Renderable,Manageable,PersistenceCapable,Shareable,UserFields,XObject,Map,Serializable
A
SkyDome node with a user-defined spectral power distribution (SPD).
The same SPD is applied to all 72 sky-element DirectionalLights
by wrapping each in a SpectralLight. The totalPower field
inherited from SkyDome continues to control the total diffuse
horizontal irradiance [W m⁻²]; the SPD shape is given by the supplied
SpectralCurve.
The default SPD is CIE D65, the standard daylight illuminant representing average daylight as received at Earth's surface (CCT ≈ 6504 K).
Usage example in RGG:
SpectralSkyDome sky = new SpectralSkyDome(2000f, 15f, 0f); // default is already CIE D65; override if needed: sky.setSpectrum(new CIENormSpectralCurve(Attributes.CIE_NORM_D55));
- Author:
- MH at YNL 2026
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class de.grogra.imp3d.objects.SkyDome
SkyDome.LightEntryNested classes/interfaces inherited from class de.grogra.graph.impl.Node
Node.AccessorBridge, Node.FieldAttributeAccessor, Node.NType -
Field Summary
FieldsFields inherited from class de.grogra.imp3d.objects.SkyDome
colour, distance, distance$FIELD, jitter, jitter$FIELD, N_LIGHTS, totalPower, totalPower$FIELD, visualizeDome, visualizeDome$FIELDFields inherited from class de.grogra.imp3d.objects.Null
transform, transform$FIELD, TRANSFORMING_MASK, transforming$FIELD, USED_BITSFields inherited from class de.grogra.graph.impl.Node
ADDITIONAL_FIELDS, bits, DELETED, EXPLICIT_EXTENT_INDEX, explicitExtentIndex$FIELD, EXTENT_BIT, EXTENT_MASK, extentIndex$FIELD, extentTail$FIELD, HAS_OBSERVERS, IMPORT_NODE_EXTENT_INDEX, IS_INTERPRETIVE, isInterpretive$FIELD, LAST_EXTENT_INDEX, LAST_VISIBLE_EXTENT_INDEX, layer$FIELD, MARK, mark$FIELD, MAX_RESOLUTION, MIME_TYPE, MIN_RESOLUTION, MIN_UNUSED_SPECIAL_OF_SOURCE, MIN_UNUSED_SPECIAL_OF_TARGET, name$FIELD, RESOLUTION_BIT, RESOLUTION_MASK, resolution$FIELD, TYPE_EXTENT_INDEXFields inherited from interface de.grogra.util.Map
DEFAULT_VALUE, EMPTY_MAP -
Constructor Summary
ConstructorsConstructorDescriptionCreates a spectral sky dome with default parameters (CIE D65 SPD).SpectralSkyDome(float totalPower, float distance, float jitter) -
Method Summary
Modifier and TypeMethodDescriptionprotected Node.NTypeThis method returns theNode.NTypewhich describes the managed fields of the class of this node.protected NodeThis method returns a new instance of the class of this node.voidsetSpectrum(SpectralLightMap value) voidsetSpectrum(SPDIF spd) sets the spectral distributionvoidsetSpectrum(SpectralCurve curve) sets the spectral distributionprotected LightHook for subclasses to wrap eachDirectionalLightbefore it is stored in aSkyDome.LightEntry.Methods inherited from class de.grogra.imp3d.objects.SkyDome
buildLightEntries, calcDirection, draw, getColour, getDistance, getJitter, getTotalPower, isVisualizeDome, pick, setColour, setColour, setDistance, setJitter, setTotalPower, setVisualizeDome, update, updateMethods inherited from class de.grogra.imp3d.objects.Null
getLocalTransformation, getTransform, getTransformMatrix, getTranslation, isTransforming, postTransform, preTransform, setRotation, setScale, setTransform, setTransform, setTransform, setTransform, setTransform, setTransform, setTransform, setTransform, setTransforming, setTranslationMethods inherited from class de.grogra.graph.impl.Node
addEdgeBitsTo, addReference, appendBranchNode, appendBranchNode, appendReferencesTo, clone, clone, cloneGraph, dump, dumpTree, dup, dup, dupFrom, dupnew, dupUnmanagedFields, edgeChanged, fieldModified, findAdjacent, findRefinementType, get, getAccessor, getAccessor, getAttributes, getAxisParent, getBoolean, getBranch, getBranchLength, getBranchNode, getBranchTail, getByte, getChar, getCommonAncestor, getCurrentGraphState, getDirectChildCount, getDouble, getEdgeAttributeAccessor, getEdgeAttributes, getEdgeBitsTo, getEdgeTo, getExtentIndex, getFirst, getFirstEdge, getFloat, getGraph, getId, getIgnored, getIndex, getInstantiator, getInt, getLayer, getLong, getManageableType, getName, getNeighbor, getNext, getNType, getObject, getOrCreateEdgeTo, getOrNull, getPersistenceManager, getPredecessor, getProvider, getResolution, getShort, getSource, getStamp, getSuccessor, getSymbol, getSymbolColor, getTarget, getTransaction, getUserField, getUserFieldCount, getXClass, getXData, hasName, initProvider, initXClass, insertBranchNode, insertBranchNode, instantiateGraph, isAncestorOf, isDirection, isEncoarseOf, isExplicitExtentIndex, isManagingInstance, isMarked, isRoot, isSource, isTarget, manageableReadResolve, manageableWriteReplace, paramString, removeAll, removeEdgeBitsTo, removeFromChain, removeFromChain, removeReference, setBranch, setBranch, setExplicitExtentIndex, setExtentIndex, setGraphForDeserialization, setIgnored, setLayer, setMark, setName, setResolution, setSuccessor, setSuccessor, specialEdgeAdded, specialEdgeRefModified, specialEdgeRemoved, toString, writeReplaceMethods inherited from class de.grogra.graph.impl.Edge
addEdgeBits, getBitMark, getEdgeBits, getEdgeKeys, getObjectMark, getSpecialEdgeDescriptor, parseEdgeKeys, remove, removeEdgeBits, setBitMark, setEdgeBits, setObjectMark, testEdgeBitsMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface de.grogra.persistence.PersistenceCapable
getBitMark, getObjectMark, setBitMark, setObjectMark
-
Field Details
-
$TYPE
-
spectrum$FIELD
-
-
Constructor Details
-
SpectralSkyDome
public SpectralSkyDome()Creates a spectral sky dome with default parameters (CIE D65 SPD). -
SpectralSkyDome
public SpectralSkyDome(float totalPower, float distance, float jitter) - Parameters:
totalPower- total diffuse sky irradiance [W m⁻²]distance- hemisphere radius [m]jitter- azimuth jitter [degrees, 0–15]
-
-
Method Details
-
wrapLight
Description copied from class:SkyDomeHook for subclasses to wrap eachDirectionalLightbefore it is stored in aSkyDome.LightEntry. The default returnsdlunchanged; override in e.g.SpectralSkyDome(GPUFlux module) to return aSpectralLightcarrying a custom SPD. -
setSpectrum
sets the spectral distribution- Parameters:
curve- is the spectral distribution
-
setSpectrum
sets the spectral distribution- Parameters:
curve- is the spectral distribution
-
getNTypeImpl
Description copied from class:NodeThis method returns theNode.NTypewhich describes the managed fields of the class of this node. This method has to be implemented in every concrete subclass.- Overrides:
getNTypeImplin classSkyDome- Returns:
- type describing the managed fields of the class of this node
-
newInstance
Description copied from class:NodeThis method returns a new instance of the class of this node. This method has to be implemented in every concrete subclass.- Overrides:
newInstancein classSkyDome- Returns:
- new instance of class of this node
-
getSpectrum
-
setSpectrum
-