pub struct EmissiveMaterial {
pub emissive_color: LinearRgba,
pub intensity: f32,
pub alpha_mode: AlphaMode,
}Expand description
A material that emits light without being affected by scene lighting.
Emissive materials are perfect for objects that should glow or appear self-illuminated, such as neon signs, magical effects, UI elements, LED displays, or light sources. They render at full brightness regardless of lighting conditions.
§HDR Support
The intensity parameter allows values greater than 1.0, enabling High Dynamic Range
(HDR) emissive effects. This is particularly useful for bloom post-processing effects
where bright emissive surfaces can “bleed” light into surrounding areas.
§Examples
use khora_core::asset::EmissiveMaterial;
use khora_core::math::LinearRgba;
// Create a bright red glowing sign
let neon_sign = EmissiveMaterial {
emissive_color: LinearRgba::new(1.0, 0.0, 0.0, 1.0),
intensity: 2.0, // HDR intensity for bloom
..Default::default()
};
// Create a subtle blue glow
let subtle_glow = EmissiveMaterial {
emissive_color: LinearRgba::new(0.3, 0.5, 1.0, 1.0),
intensity: 0.5,
..Default::default()
};Fields§
§emissive_color: LinearRgbaThe emissive color of the material.
This color is directly output to the framebuffer without any lighting calculations. The RGB values represent the color of the emitted light.
intensity: f32Optional texture for emissive color.
If present, the texture’s RGB values are multiplied with emissive_color.
The alpha channel can be used for transparency when combined with appropriate alpha_mode.
Future work: Texture asset system integration pending. Intensity multiplier for the emissive color.
Values greater than 1.0 enable HDR effects and are particularly useful for bloom post-processing. A value of 1.0 produces standard emissive output.
Recommended ranges:
- 0.0-1.0: Subtle emission
- 1.0-3.0: Strong emission with bloom
- 3.0+: Very bright, suitable for light sources
alpha_mode: AlphaModeThe alpha blending mode for this material.
Determines how transparency is handled. See AlphaMode for details.
Trait Implementations§
Source§impl Clone for EmissiveMaterial
impl Clone for EmissiveMaterial
Source§fn clone(&self) -> EmissiveMaterial
fn clone(&self) -> EmissiveMaterial
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more