PhBRML Node Reference
PhBAppearance
PhBAppearance {
exposedField SFNode surface NULL
exposedField SFNode medium NULL
exposedField SFNode bumpMap NULL
exposedField SFNode displacementMap NULL
exposedField SFNode textureProjection NULL
exposedField SFNode textureTransform NULL
exposedField SFNode textureTransform3D NULL
}
Physics based appearance description. A replacement for the
VRML'97 Appearance node.
The new node may appear everywhere and only there where an Appearance node
can appear in a VRML scene graph.
The surface child node describes surface scattering. It should be
a physically based surface node.
If not specified, a neutral diffuse reflecting surface appearance with
reflectance 0.8 will be used.
The medium child node describes volume scattering properties in the interior of a object. It should be a
physically based medium node.
If not specified, the inside medium will be the same as the medium outside
the object. No volume scattering properties should be specified for
nonclosed objects. Specifying volume scattering properties for an object
that is not geometrically closed will lead to undefined rendering results.
The bumpMap child node describes local distortions to the object
normal. It should be a geometry distortion node.
If not specified, no bump mapping will be applied.
To be described in more detail.
The displacementMap child node describes local distortions to the
object geometry. It should be a
geometry distortion node.
If not specified, no displacement mapping will be applied.
To be described in more detail.
The textureProjection child node describes a mapping from local
object coordinates to texture coordinates. It should be a
texture projection node.
If not specified, the default texture projection transform for the object
will be used. The default texture projection transform is the one described
with each geometry node
in the VRML node reference.
The textureTransform child node describes a transformation
to be applied to 2D texture coordinates.
If specified, it shall be a
TextureTransform node. If not specified, this field has no effect.
The textureTransform3D child node describes a transformation
to be applied to local coordinates before used in 3D texturing.
If specified, it shall be a
PhB3DTextureTransform node.
If not specified, this field has no effect.
PhBHomogeneousSurface
PhBHomogeneousSurface {
exposedField MFNode edf [ ]
exposedField MFNode bsdf [ ]
}
Describes the spontaneous light emission and scattering properties of
a object. The optical properties are assumed constant over the object surface.
In order to specify optical properties that vary over the object surface,
a PhBTexturedSurface node should be used.
If specified, edf shall contain one or more
PhBEDF nodes expressing spontaneously
emitted radiation from the surface. The total emittance distribution
function (EDF) of the surface shall be the sum of the listed components.
If not specified, or if the list
is empty, the surface is assumed not to be a light source.
Similarly, bsdf shall contain a list of
PhBSDF nodes expressing surface light scattering.
If not specified, the surface is assumed to absorb all incident
radiation.
PhBEDF
PhBEDF {
exposedField SFFloat intensity 1. # (infty,infty)
exposedField SFNode spectrum NULL
exposedField SFNode emitter NULL
}
This node expresses a primitive surface Emittance Distribution
Function (EDF), describing the spectral and directional distribution
of selfemitted radiation from a light source.
The spectral dependence is expressed by spectrum. If
specified, spectrum shall be a
spectrum node.
If not specified, a neutral spectrum of unit luminance is assumed.
The directional distribution of selfemitted light is expressed by
emitter, which shall be a
emitter node. If not
specified, a diffuse light source is assumed.
PhBProceduralEmitter
PhBProceduralEmitter {
eventIn SFVec3f direction # [1,1]
eventIn SFVec2f sampleNum # [0,1]
eventIn SFInt32 glossinessRange # [0,7]
field MFString url [ ]
eventOut SFFloat value # [0,infty)
eventOut SFFloat pdf # [0,infty)
eventOut SFVec3f sampleDir # [1,1]
eventOut SFFloat emittance # [0,infty)
}
This node expresses the directional distribution of selfemitted
radiance as a set of three procedures in a script: a procedure for
evaluating the directional distribution, one for computing a sample direction
according to the directional distribution and a last one returning
integral of the directional distribution over the full hemisphere.
The field url contains a list of URLs with the implementation.
url will be handled identical as for the
Script node.
A first procedure will evaluate the directional distribution for
a given direction and return the result as value.
When multiplied with the corresponding spectrum and intensity in the
parent PhBEDF node, the
spectral selfemitted radiance [W/m^2sr/m] into the given direction
is obtained.
A second procedure computes a direction sampleDir as
a function of a set of two numbers sampleNum in the range
[0,1]. This procedure will be used to generate sample directions
whose distribution should be close to the directional distribution
of the selfemitted light times the cosine of the angle w.r.t the surface
normal. value shall contain the value of the distribution for
the generated direction. In addition, the sampling probability density
of the direction is returned in pdf.
Example: when the direction is generated according to a uniform
distribution, the probability density is 1/(2*PI).
The third procedure returns in emittance the integral over
the full hemisphere of the directional distribution times
cosine w.r.t. the surface normal. When multiplied
with the corresponding spectrum and intensity in the
PhBEDF parent node, this integral yields
the selfemitted spectral radiant exitance [W/m^2/m] of the light source.
Multiplying this with the light source surface area yields the spectral
power [W/m] of the light source.
Directions are specified as 3D vectors
in a coordinate system with Zaxis equal to the object surface normal.
The X axis is the axis in which the first texture coordinate varies most
at the point under consideration.
glossinessRange is the combination of three flags: 1 (diffuse),
2 (glossy) and 4 (specular). These flags correspond to a glossiness range for
which results are to be returned. The diffuse range corresponds to the
directionally constant part of selfemitted light. The glossy range and
specular range divide the directionallydependent part of selfemitted light.
The distinction should be such that it is feasible to explicitly compute
and store the glossy part in a worldspace global illumination algorithm
while the specular part is considered to be of too high frequency to
explicitly store in computer memory. The distinction serves as a hint for
multipass global illumination algorithms.
PhBDiffuseEmitter
PhBDiffuseEmitter {
exposedField SFFloat normalisation 1. # [0,infty)
}
This node expresses a directionally constant selfemitted light
distribution
normalised such that the integral of the distribution
times the cosine w.r.t. the surface normal equals normalisation.
PhBPhongEmitter
PhBPhongEmitter {
exposedField SFFloat sharpness 0. # [0,infty)
exposedField SFFloat normalisation 1. # [0,infty)
}
This node expresses a Phonglike directional distribution for
selfemitted light. sharpness expresses the specular power
of the Phong distribution.
The distribution is normalised such that the integral of the distribution
times the cosine w.r.t. the surface normal equals normalisation.
PhBSampledIsotropicEmitter
PhBSampledIsotropicEmitter {
exposedField MFFloat samples [ ] # [0,infty)
exposedField SFFloat minAngle 0. # [0,pi]
exposedField SFFloat maxAngle 3.141592 # [0,pi]
exposedField SFFloat normalisation 1. # [0,infty)
}
This node expresses the directional dependence of a isotropic light source
by a profile curve of the intensity as a function of angle w.r.t. the
surface normal. The curve is specified as a list of equidistant
samples in the range minAngle to maxAngle inclusive.
Linear interpolation is used between the samples. The first sample
value is used for angles smaller than minAngle. The last sample value
is used for angles larger than maxAngle.
The distribution is normalised such that the integral of the distribution
times the cosine w.r.t. the surface normal equals normalisation.
PhBTextureEmitter
PhBTextureEmitter {
exposedField SFNode texture NULL
exposedField SFInt32 channel 1 # [1,infty)
exposedField SFFloat normalisation 1. # [0,infty)
}
The directional distribution of emitted light is expressed as a channel
in a texture map. The first texture coordinate is proportional to the
angle between the XYprojected direction and the Xaxis of the local
object point coordinate system. The second texture coordinate is
proportional to the angle of the direction w.r.t. the surface normal
(Zaxis).
If specified, texture shall be a
texture node. channel
denotes the texture image channel to be used. If texture is not
specified, a nonemitting surface results.
The distribution is normalised such that the integral of the distribution
times the cosine w.r.t. the surface normal equals normalisation.
PhBSDF
PhBSDF {
exposedField SFFloat intensity 1. # (infty,infty)
exposedField SFNode spectrum NULL
exposedField SFNode scatterer NULL
}
This node expresses a Bidirectional Scattering Distribution Function
(BSDF) describing the spectral and directional characteristics
of surface light scattering. The semantics are the same as for the
PhBEDF node except that scatterer shall
contain a list of scatterer
nodes.
PhBProceduralScatterer
PhBProceduralScatterer {
eventIn SFVec3f inDir # [1,1]
eventIn SFVec3f outDir # [1,1]
eventIn SFVec2f sampleNum # [0,1]
eventIn SFInt32 glossinessRange # [0,7]
field MFString url [ ]
eventOut SFFloat value # [0,infty)
eventOut SFFloat pdf # [0,infty)
eventOut SFVec3f sampleDir # [1,1]
eventOut SFFloat reflectance # [0,infty)
eventOut SFFloat transmittance # [0,infty)
}
This node expresses the light scattering intensity as a function of
incoming and outgoing directions using
four procedures implemented in a script, much like the
PhBProceduralEmitter node.
The field url contains a list of URLs with the implementation.
url will be handled identical as for the
Script node.
A first procedure will evaluate the directional scattering distribution
for given incoming and outgoing directions inDir and
outDir. The result is returned in value. When
multiplied with the corresponding spectrum and intensity in the
parent PhBSDF node, the value of the
Bidirectional Scattering Distribution Function (BSDF) for the given
incoming and outgoing direction is obtained.
A second procedure will sample a outgoing direction sampleDir
for given incoming direction inDir,
using the sample number pair sampleNum. The sample direction
distribution should be close to the directional distribution times the cosine
w.r.t. the surface normal. In value, the value of the directional
distribution for given incoming and generated outgoing direction is returned.
In addition, pdf shall contain the probability density of the sampled
direction.
A third and fourth procedure compute the integral over the
hemisphere of reflected and refracted directions of the directional
scattering distribution times cosine w.r.t. the surface normal for the
given incoming direction inDir. Multiplication with the
corresponding spectrum and intensity in the
parent PhBSDF node yields the BSDF
reflectance and transmittance for the incoming direction.
The meaning and function of the glossinessRange
eventIn, as well as the specification of directions, is the same as
described for the PhBProceduralEmitter
node.
PhBDiffuseReflector
PhBDiffuseReflector {
exposedField SFFloat normalisation 1. # [0,infty)
}
This node expresses a directionally constant reflected light
distribution.
The distribution is normalised such that the integral
of the distribution
times the cosine w.r.t. the surface normal equals normalisation.
PhBPerfectSpecularReflector
PhBPerfectSpecularReflector {
exposedField SFFloat normalisation 1. # [0,infty)
}
This node expresses a perfect specular reflector: all incident light is
reflected into the ideal reflection direction.
The distribution is normalised such that the integral
of the distribution
times the cosine w.r.t. the surface normal equals normalisation.
PhBPhongReflector
PhBPhongReflector {
exposedField SFFloat sharpness 0. # [0,infty)
exposedField SFFloat normalisation 1. # [0,infty)
}
This node expresses a Phonglike directional distribution for
reflected light. sharpness expresses the specular power
of the Phong distribution.
The distribution is normalised such that
the integral of the distribution
times the cosine w.r.t. the surface normal apprimxately
equals normalisation.times cosine of incoming direction w.r.t.
surface normal.
PhBDiffuseRefractor
PhBDiffuseRefractor {
exposedField SFFloat normalisation 1. # [0,infty)
}
This node expresses a directionally constant refracted light
distribution. The distribution is normalised such that the integral
of the distribution
times the cosine w.r.t. the surface normal equals normalisation.
PhBPerfectSpecularRefractor
PhBPerfectSpecularRefractor {
exposedField SFFloat normalisation 1. # [0,infty)
}
This node expresses a perfect specular refractor: all incident light is
reflected into the ideal refraction direction.
The distribution is normalised such that the integral
of the distribution
times the cosine w.r.t. the surface normal equals normalisation.
This distribution is not reciprocal and may be omitted in the future.
PhBPhongRefractor
PhBPhongRefractor {
exposedField SFFloat sharpness 0. # [0,infty)
exposedField SFFloat normalisation 1. # [0,infty)
}
This node expresses a Phonglike directional distribution for
refracted light. sharpness expresses the specular power
of the Phong distribution.
The distribution is normalised such that
the integral of the distribution
times the cosine w.r.t. the surface normal equals normalisation.
This distribution is not reciprocal and may be omitted in the future.
PhBSampledScatterer
TO BE WORKED OUT.
Example measured BRDF data at Cornell need to be studied first.
PhBTexturedSurface
PhBTexturedSurface {
exposedField SFNode texture NULL
exposedField MFNode surfaces [ ]
exposedField SFNode textureTransform NULL
exposedField SFNode textureProjection NULL
}
This node expresses optical surface properties that can vary
as a function of position on the object surface. Position is
expressed by 2D texture coordinates, obtained by applying a
implicit or explicit texture projection
transform on local object coordinates
and possibly transformed by 2D texture transforms.
The resulting surface characteristics at a given point
are obtained by looking up the texture map values in the given
texture and using these values as weights in a linear
combination of the primitive surfaces in surfaces.
If specified, texture shall contain a
texture node.
If not specified, the texture is treated as a texture with 0 channels
(see below) and the first surface description in surface shall
be used.
surface shall contain a list of one or more
surface nodes.
The number of surfaces shall be equal to the number of texture channels,
or exceed it by one. In the latter case, the last surface weight at
a point is taken to be one minus the sum of the previous weights
at the point. Example: a onechannel texture to combine two surface
descriptions. If not specified, or if surface is an empty list,
a perfect absorbing nonselfemitting surface results.
If specified, textureTransform shall contain a
TextureTransform
node. If not specified, an identity texture transform is assumed.
Texture transforms can be specified at several levels in the scene
graph. They shall be maintained in a texture transform stack and
be combined in an identical manner as coordinate transform coordinates.
If specified, textureProjection shall contain a
texture projection
node that specifies a new texture projection which replaces
the one specified at a higher level. If not specified, this field has
no effect.
PhB3DTexturedSurface
PhB3DTexturedSurface {
exposedField SFNode texture NULL
exposedField MFNode surfaces [ ]
exposedField SFNode textureTransform3D NULL
}
This node expresses optical surface properties that can vary
as a function of position on the object surface. Position is
expressed by 3D texture coordinates, which are local object
coordinates transformed by 3D texture transforms specified
at this and/or higher levels.
The semantics of this node is identical to that of the
PhBTexturedSurface node
except that texture shall be a
3D texture node
instead of a 2D texture node. textureTransform3D shall
contain a
PhB3DTextureTransform node.
instead of a 2D TextureTransform.
PhBLayeredSurface
PhBLayeredSurface {
exposedField MFNode media [ ]
exposedField MFNode surfaces [ ]
exposedField MFFloat thicknesses [ ]
}
This node expresses a layered surface (ref: Hanrahan et al, SIGGRAPH'93),
such as lacquered wood, human skin and plant tissue. The surface consists of
a number of thin layers, specified by media and thicknesses
and separated by surfaces.
media shall contain a list of
medium nodes. thicknesses
shall be an array of floating point thicknesses, expressed in meters,
indicating the thickness of the corresponding layer. The number of
floating point values in thicknesses and the number of nodes
in media shall be equal. The first medium and thickness
apply to the most outside layer of the surface.
surfaces shall contain a list of
surface nodes. The number
of surface nodes shall be one more than the number of layers. The first
surface separates the first, outmost, layer from the outside medium
of the object. The last surface separates the last, innermost, layer from
the inside medium of the object as specified in the parent
PhBAppearance node.
If no surfaces are specified, a total absorbing, nonselfemitting
surface results. If the number of surfaces and media and thicknesses does not
match, excess elements are ignored. If only one surface remains, that
surface fully describes the surface optical characteristics of the object.
PhBInterpolatedSurface
PhBInterpolatedSurface {
exposedField SFFloat fraction 0.
exposedField MFFloat key [ ]
exposedField MFNode keySurfaces [ ]
}
This node describes a surface that is interpolated from two key surfaces
from keySurfaces
corresponding to two subsequent key values in key
forming an interval containing fraction. The interpolation
has the same semantics as in
interpolator nodes.
keySurfaces shall contain a list of
surface nodes.
PhBHomogeneousMedium
PhBHomogeneousMedium {
exposedField SFVec2f indexOfRefraction 1. 0.
exposedField SFFloat scatteringCrossSection 0. # [0,infty)
exposedField SFFloat absorptionCrossSection 0. # [0,infty)
exposedField MFNode phaseFunction [ ]
exposedField SFNode selfEmittedFluxDensity NULL
}
This node describes a homogeneous isotropic
participating medium with given
complex index of refraction indexOfRefraction and
scattering and absorption cross sections [1/m] scatteringCrossSection
and absorptionCrossSection. Isotropic means that scattering
intensity does not depend on the incident direction but rather only
on the angle between incident and scattered direction, and that
selfemitted radiance is not directionally dependent. Inhomogeneous
participating media shall be described with the
PhBTexturedMedium node.
The current proposal does not include a means to express anisotropic
media.
If specified, phaseFunction shall be a list of one or more
PhBPhF
nodes.
If not specified, an isotropic phase function with neutral colour and
unit intensity is assumed.
If specified, selfEmittedFluxDensity shall contain a
spectrum node expressing
the selfemitted spectral radiant flux density [W/m^3/m]. Emission is
always assumed to be isotropic. If not specified, the medium shall
not spontaneously emit light. An example of an emissive gas
is fire.
indexOfRefraction, scatteringCrossSection,
absorptionCrossSection are assumed to be independent of
wavelength.
PhBPhF
PhBPhF {
exposedField SFFloat intensity 1. # (infty,infty)
exposedField SFNode spectrum NULL
exposedField SFNode phaseFunction NULL
}
This node expresses the spectral and directional characteristics of
light scattering in a isotropic medium. The semantics are the same
as of the PhBEDF node, except that
phaseFunction shall contain a list of
phase function
nodes.
PhBIsotropicPhaseFunction
PhBIsotropicPhaseFunction {
exposedField SFFloat normalisation 1. # [0,infty)
}
This node describes a isotropic light scattering distribution
in a participating medium. The distribution is normalised such that
its integral over the full sphere of outgoing directions will equal
normalisation.
PhBProceduralPhaseFunction
PhBProceduralPhaseFunction {
eventIn SFFloat alpha
eventIn SFFloat sampleNum
field MFString url [ ]
eventOut SFFloat value
eventOut SFFloat pdf
eventOut SFFloat sampleAlpha
eventOut SFFloat normalisation
}
This node expresses a phase function implemented by three
procedures in a script.
url shall contain a list of URL's where the implementation can be
found. This field is handled identical as in the
Script node.
A first procedure evaluates the phase function for a given
angle between incident and scattered direction. The angle is specified
by its cosine alpha. The result shall be multiplied
with the corresponding spectral basis function and weight
specified in the parent PhBMedium node in order to
obtain the full spectral scattering intensity.
A second procedure generates a sample scattering angle using one
sample number sampleNum in the range [0,1]. The resulting
angle is returned by means of its cosine sampleAlpha. In addition,
the value of the phase function for the generated angle
and the probability density are returned in value and pdf.
A third procedure returns the integral of the phase function over
the full sphere of directions in normalisation.
PhBTexturedMedium
PhBTexturedMedium {
exposedField SFNode texture NULL
exposedField MFNode media [ ]
exposedField SFNode textureTransform3D NULL
}
This node describes a inhomogeneous
isotropic participating medium. The semantics
are identical to that of the
PhB3DTexturedSurface node except
that media shall be a list of
medium nodes to be
mixed instead of surface nodes.
PhBInterpolatedMedium
PhBInterpolatedMedium {
exposedField SFFloat fraction 0.
exposedField MFFloat key [ ]
exposedField MFNode keyMedia [ ]
}
This node describes a medium that is interpolated from two key media
from keyMedia
corresponding to two subsequent key values in key
forming an interval containing fraction. The interpolation
has the same semantics as in
interpolator nodes.
keyMedia shall contain a list of
medium nodes.
PhBSurfaceDistortion
PhBSurfaceDistortion {
exposedField SFNode texture NULL
exposedField SFNode transform NULL
}
This node describes a geometry distortion expressed by a
2D texture map, used to map 2D texture coordinates into 3D geometry
distortion vectors.
texture shall contain a
texture node with at least
three channels. The texture values are rescaled into the range
[1,1]. The channels correspond respectively to the X, Y and Z component
of the geometry distortion vector.
If specified, transform shall contain a
PhB3DTextureTransform node.
This optional transform will be applied to the geometry distortion
vectors obtained as above. If not specified, this field has no effect.
PhBVolumeDistortion
PhBVolumeDistortion {
exposedField SFNode texture NULL
exposedField SFNode transform NULL
}
This node describes a geometry distortion expressed by a
3D texture map, used to map 3D texture coordinates into 3D geometry
distortion vectors. Except that texture shall be a 3D texture
node, the semantics of this node are identical to that of the
PhBSurfaceDistortion node.
PhBProceduralTexture
PhBProceduralTexture {
eventIn SFVec2f textureCoordinate
field MFString url [ ]
eventOut MFFloat textureValues
}
This node describes a 2D texture, implemented as a procedure
in a script that can be found by following the list url of URL's.
The procedure computes an array of floating point values mapValues
as a response on a 2D texture coordinate pair textureCoordinate.
PhBProcedural3DTexture
PhBProcedural3DTexture {
eventIn SFVec3f textureCoordinate
field MFString url [ ]
eventOut MFFloat textureValues
}
This node describes a 3D texture. It is identical to the
PhBProceduralTexture node except
that the input consists of a 3D instead of a 2D texture coordinate.
PhBProceduralTextureProjection
PhBProceduralTextureProjection {
eventIn SFVec3f coordinate
field MFString url [ ]
eventOut SFVec2f textureCoordinate
}
This node describes a texture projection transform implemented as a
procedure in a script that can be found by following the given list
url of URL's. The procedure computes a 2D texture coordinate
textureCoordinate from a 3D local object coordinate coordinate.
It can be used to define other texture projections than the defaults
provided in the VRML'97 specifications.
PhB3DTextureTransform
PhB3DTextureTransform {
exposedField SFVec3f center 0 0 0 # (infty,infty)
exposedField SFRotation rotation 0 0 1 0 # [1,1],(infty,infty)
exposedField SFVec3f scale 1 1 1 # (0,infty)
exposedField SFRotation scaleOrientation 0 0 1 0 # [1,1],(infty,infty
exposedField SFVec3f translation 0 0 0 # (0,infty)
}
This node describes a 3D transform to be applied to 3D texture coordinates.
The semantics are the same as that of the
Transform node, except
that this node has no children nodes or bounding box. It is the 3D equivalent
of the
TextureTransform
node.
PhBTexturedBackground
PhBTexturedBackground {
exposedField SFNode texture NULL
exposedField MFNode spectralBasis [ ]
exposedField MFFloat spectralWeights [ ]
exposedField SFFloat minAngle 0
exposedField SFFloat maxAngle 1.570
}
Bindable node similar to
Background describing
background radiation as a function of direction. Examples: sky illumination,
environment radiance maps (for putting virtual objects in real environments).
Background radiance is assumed to originate at a very large distance and is
already includes atmospheric effects, meaning that background radiation is
not modified by the PhBAtmosphere node.
texture shall contain a
texture node. The first
texture coordinate is proportional to the angle of the direction w.r.t.
the global Yaxis. The second texture coordinate is proportional with
the angle between the direction, projected onto the global XZ plane,
and the global Z axis. minAngle and maxAngle, both
angles w.r.t. the global Y axis describe
the region of the sphere covered by the texture map. The remaining
region of the sphere, not covered by the texture map, is assumed not
to radiate any light towards the scene.
spectralBasis shall contain a list of
spectrum nodes. The number
of basis spectra shall be equal to the number of channels in the texture
map.
If specified, spectralWeights shall contain a list of
floating point weights to be associated with each basis spectrum
and texture channel. If not specified, or if the number of weights is
less than the number of spectra and texture channels, missing weights
are assumed to be 1.
The background spectral radiance [W/m^2sr/m] received from a given
global direction shall be obtained as a linear combination of the
basis spectra weighted by the texture map values and spectral weights.
By default, no background radiation is assumed in a scene.
PhBproceduralBackground
PhBproceduralBackground {
field MFString url [ ]
}
Procedural background radiation description.
PhBAtmosphere
PhBAtmosphere {
exposedField SFNode medium NULL
}
Bindable node similar to Fog
used to express the medium outside the objects in the scene. Examples:
mist, fog, ...
If specified, medium should be a
medium node. If not
specified, vacuum is assumed.
By default, a vacuum atmosphere is assumed in a scene.
PhBLxySpectrum
PhBLxySpectrum {
exposedField SFVec2f xy 0.3333333 0.3333333 # [0,1]
exposedField SFFloat luminance 1. # [0,infty)
}
Spectrum given as CIE xy chromaticity and luminance.
PhBXYZSpectrum
PhBXYZSpectrum {
exposedField SFVec3f xyz 1. 1. 1. # [0,infty)
}
Spectrum given as CIE XYZ triplet.
PhBMonochromaticSpectrum
PhBMonochromaticSpectrum {
exposedField SFFloat wavelength 550. # [0,infty)
exposedField SFFloat luminance 1. # [0,infty)
}
Monochromatic spectrum. Example: the typical yellow light emitted
by Sodium (Na) street lanterns.
PhBBlackBodySpectrum
PhBBlackBodySpectrum {
exposedField SFFloat temperature 0. # [0,infty)
exposedField SFFloat luminance 1. # [0,infty)
}
Black body spectrum at given temperature (in degrees Kelvin) and
luminance. Examples: the sun, incandescent light bulbs.
PhBSampledSpectrum
PhBSampledSpectrum {
exposedField MFFloat samples [ ]
exposedField SFFloat scale 1. # [0,infty)
exposedField SFFloat min 380. # [380.,770]
exposedField SFFloat max 770. # [380.,770]
}
Spectrum given as an array of equidistant spectral samples between
wavelengths min and max inclusive. The sample values shall be
multiplied by the factor scale.
PhBTabulatedSpectrum
PhBTabulatedSpectrum {
exposedField MFFloat wavelengths [ ] # [380.,770.]
exposedField MFFloat values [ ] # [0,infty)
exposedField SFFloat scale 1. # [0,infty)
}
Spectrum given as a table of wavelengths and corresponding spectral
values. The number of given wavelengths and values shall be equal.
The values will be scaled by the optional scale factor.
PhBProceduralSpectrum
PhBProceduralSpectrum {
eventIn SFFloat wavelength # [380.,770.]
field MFString url [ ]
eventOut SFFloat spectralValue # [0,infty)
}
Spectrum given in procedural form. url is a list of URL's with
implementation of the function which computes the spectral
value spectralValue as a function of wavelength.
PhBMixedSpectrum
PhBMixedSpectrum {
exposedField MFNode spectra [ ]
exposedField MFFloat weight [ ]
}
Linear combination of primitive spectra with given weights.
The nodes in the spectra node list shall be
spectrum nodes.
The number of weights shall match the number of specified spectra.
If spectra is not specified or is a empty list, a perfect
black spectrum results.
PhBInterpolatedSpectrum
PhBInterpolatedSpectrum {
exposedField SFFloat fraction 0.
exposedField MFFloat key [ ]
exposedField MFNode keySpectra [ ]
}
This node describes a spectrum that is interpolated from two key spectra
from keySpectra
corresponding to two subsequent key values in key
forming an interval containing fraction. The interpolation
has the same semantics as in
interpolator nodes.
keySpectra shall contain a list of
spectrum nodes.
This page is maintained by
Philippe Bekaert
