MaterialReflectivity

public struct MaterialReflectivity : Hashable

Material reflectivity properties are used to enable per‑pixel lighting for supported map objects (e.g. LocationIndicator markers and their halo).

Lighting OFF vs ON

By default (when no MaterialReflectivity is assigned) objects are rendered “unlit” (emissive): their texture / color appears at a constant brightness, unaffected by scene lights. Assigning a MaterialReflectivity instance to an object that supports it (e.g. LocationIndicator.materialReflectivity) automatically enables lighting for this object and all its internal components. Clearing (setting the property to nil) disables lighting again and restores the unlit appearance.

Factors

Both factors are expected to be within [0.0, 1.0]. Values outside this range are allowed but may produce exaggerated results or be clamped by future implementations. Typical useful ranges:

  • ambientFactor: 0.0 – 0.4 (higher values flatten the shading and reduce directional contrast)
  • diffuseFactor: 0.5 – 1.0 (lower values dim the object under directional light)

Note: This is a beta release of this feature, so there could be a few bugs and unexpected behaviors. Related APIs may change for new releases without a deprecation process.

  • The ambient factor controls how much of the object’s base color is treated as constant ambient contribution (independent of light direction) when lighting is enabled. Default value is 0.0.

    Declaration

    Swift

    public var ambientFactor: Double
  • The diffuse factor controls how much of the object’s color contributes to the diffuse lighting component when lighting is enabled. Default value is 1.0.

    Declaration

    Swift

    public var diffuseFactor: Double
  • Creates a new instance.

    Declaration

    Swift

    public init(ambientFactor: Double = 0.0, diffuseFactor: Double = 1.0)