Returns entity emissive intensity/glow strength (0.0+ double). Takes entity (mesh entity handle, positive integer). Returns double intensity (0.0=no emission/glow to higher values=brighter glow, -1.0 on error). Queries emissive light intensity from entity material, checks material override first then base material.
Emissive intensity meaning: 0.0=no self-illumination (surface does not glow), 1.0=standard glow (moderate self-lighting), 2.0-10.
Returns entity emissive intensity/glow strength (0.0+ double). Takes entity (mesh entity handle, positive integer). Returns double intensity (0.0=no emission/glow to higher values=brighter glow, -1.0 on error). Queries emissive light intensity from entity material, checks material override first then base material.
Emissive intensity meaning: 0.0=no self-illumination (surface does not glow), 1.0=standard glow (moderate self-lighting), 2.0-10.0=bright glow (strong self-illumination for lights/effects), values not clamped (can exceed 1.0 for HDR bloom effects).
Material source: checks entity.materialOverrideIndex first (if >= 0 uses per-entity override material), falls back to entity.mesh->materialIndex (shared mesh material), reads material.emissiveIntensity field.
Emissive vs lighting: emissive makes surface glow (self-illuminated appearance), not affected by scene lights (always visible), does not cast light on other objects (visual effect only, not light source), combines with emissive color (b3dSetEntityEmissiveColorFX) for tinted glow.
Use cases: (1) Query glow state (read intensity for UI or logic: If b3dGetEntityEmissiveIntensityFX(lamp)>0.0 Then lamp is on), (2) Intensity restoration (save intensity before modification, restore later), (3) Dynamic lights (animate intensity for pulsing/flickering effects), (4) Material validation (check if entity has emissive properties), (5) Visual effects (query intensity for particle system brightness matching).
Common patterns: save intensity = oldIntensity#=b3dGetEntityEmissiveIntensityFX(entity%); check glowing = If b3dGetEntityEmissiveIntensityFX(entity%)>0.0 Then object glows; pulse effect = intensity#=b3dGetEntityEmissiveIntensityFX(lamp%): newIntensity#=1.0+mathSin(time#)*0.5: b3dSetEntityEmissiveIntensityFX(lamp%, newIntensity#); brightness sync = particleBrightness=b3dGetEntityEmissiveIntensityFX(lightSource%)*255.0.
Return values: -1.0 on error (invalid entity handle, non-mesh entity, prints error to stderr), 0.0 if mesh has no material (no emission default), 0.0+ actual intensity value (from material.emissiveIntensity field).
Performance: very fast O(1) lookup (simple material field access, ~0.0001ms), no calculation or GPU access required, suitable for per-frame queries.
HDR and bloom: high intensity values (>1.0) trigger bloom effects (if enabled), creates halo/glow around bright emissive surfaces, requires HDR rendering pipeline.
Material override awareness: reads from correct material layer (override if exists, else base material), consistent with b3dSetEntityEmissiveIntensityFX behavior (set and get use same material source).
PBR material: emissiveIntensity multiplies emissiveFactor RGB color (final emission = emissiveFactor * emissiveIntensity), appears in unlit areas (even in darkness), renders in forward+ pass.