Drivers & Raycast Sensing ========================= The **Drivers & Raycast Sensing** panel manages proximity driver assignments, directional raycasting calculations, attenuation curves, and contact illumination intensity. .. image:: ../_static/images/ui_drivers_sensing.png :alt: Drivers & Raycast Sensing Panel in Sidebar :align: center :width: 70% Driver Source Assignment ------------------------ Proximity drivers are objects whose presence, motion, and materials trigger illumination and physical responses on the display target. The **Driver Source** dropdown specifies how drivers are assigned: 1. Child Objects (Default) ^^^^^^^^^^^^^^^^^^^^^^^^^^ * **Identifier**: ``CHILDREN`` * Any mesh object parented to the display target (:kbd:`Ctrl+P` > **Object**) automatically acts as a proximity driver. * **Best for**: Self-contained, modular assets (such as an LED panel with built-in moving elements) that can be easily duplicated or copy-pasted across scenes without breaking linkages. 2. Collection ^^^^^^^^^^^^^ * **Identifier**: ``COLLECTION`` * All mesh objects contained inside a designated Blender collection act as proximity drivers. * **Best for**: Dynamic multi-object setups, particle/rigid-body collision caches, falling sphere grids, or complex assemblies. 3. Object List ^^^^^^^^^^^^^^ * **Identifier**: ``OBJECT_LIST`` * Manually pick and manage specific individual objects from anywhere in the scene. * **Best for**: Granular control when you want only designated hand-picked objects to trigger reactions. Visibility & Render Toggles --------------------------- * **Include Hidden in Viewport**: When enabled (default), drivers continue illuminating the display target even when hidden in the 3D Viewport (using the eye icon, monitor icon, or :kbd:`H` shortcut). This allows invisible driver rigs to illuminate surfaces cleanly without cluttering your viewport view. * **Include Hidden in Render**: When enabled (default), drivers continue triggering illumination and transferring materials during final rendering, even if the driver objects themselves are hidden from the camera (camera icon disabled). Essential for invisible interaction probes, shadow casters, and unseen proximity triggers. Raycast Origins --------------- The **Raycast Origin** setting dictates which direction sensing rays travel: * **Target → Driver (Default)**: Each display face or vertex casts rays outward into the scene looking for driver objects. This is the recommended mode for displays, billboards, and reactive skins. * **Driver → Target (Projector Mode)**: The driver object projects rays down onto the display surface. Ideal for simulating overhead light projectors, optical scanners, flashlights, or laser styluses. Raycast Directions ------------------ The **Direction** dropdown controls the orientation vector used for proximity rays: .. list-table:: :header-rows: 1 :widths: 30 70 * - Direction Mode - Description & Best Use Case * - **Face Normal (+Normal)** - Rays project outward along each polygon's local surface normal. Ideal for planar screens, spheres, cylinders, and outward-facing hulls. * - **-Face Normal (Inverted)** - Rays project inward in the opposite direction of the surface normal. Ideal for interior hollows, tunnels, bowls, and back-face sensing. * - **Fixed Axis (+Z, -Z, etc.)** - Rays project in a fixed Cartesian direction. For example, **-Z (Down)** is optimal for objects falling vertically into curved half-pipes or undulating bowls. * - **Toward Driver Center** - Rays dynamically point directly toward the driver's origin point from every point on the display mesh. * - **Custom Vector / Empty** - Uses an explicit XYZ vector or tracks the orientation of an **Empty object**. By rotating the Empty in the viewport, you interactively steer the projection angle in real time. * - **Advanced / Custom Nodes** - Driven by custom procedural vector attributes created via Geometry Nodes. Proximity Radius ---------------- The **Proximity Radius** slider determines the maximum sensing distance (in meters) between driver geometry and the display surface. Any driver geometry further away than this radius will not trigger illumination or physical displacement. Falloff Curves & Attenuation ---------------------------- The **Falloff** dropdown dictates how sensing intensity transitions from direct contact (distance = 0) to the outer radius boundary: * **Smooth (Hermite)**: Uses a cubic Hermite smoothstep curve to create organic, feathered light pools with soft borders. * **Linear**: Linear dropoff from peak intensity at contact to zero at the radius boundary. * **Inverse Square (1/d²)**: Physically-based quadratic attenuation modeling real-world electromagnetic light falloff. * **Thickness / Depth Only**: Intensity is driven strictly by volume penetration depth. Ideal for fluid simulations, splashing liquid pools, and objects sinking into volumes. * **Sharp / Binary (Step)**: Strict on/off threshold with zero intermediate falloff. Faces within the proximity radius illuminate at 100%, while faces outside remain completely off. * **Custom Curve Editor**: Exposes an interactive Bezier curve mapping node. Drag control points to sculpt custom multi-stage ramps, pulsing ripples, or sharp concentric rings. Illumination & Emission Controls -------------------------------- At the bottom of the panel, illumination and color controls govern the optical output of activated faces: * **Lit Intensity** (``emission_strength``): Specifies the peak emission strength of illuminated faces when in direct contact with a driver. Setting this to ``0.0`` disables emissive glow while retaining pure diffuse color transfer. Typical cinematic values range from ``5.0`` to ``30.0`` depending on scene exposure and Bloom/Compositor settings. * **Unlit Intensity** (``unlit_intensity``): Defines the standby glow for dormant faces when no driver is nearby. Setting this to a subtle value (e.g. ``0.05`` – ``0.2``) creates realistic glowing subpixels found in OLED panels or vacuum-fluorescent displays. * **Color Source** (``lit_color_mode``): Choose where illumination color originates: * **Driver Material (Default)**: Extracts base color, emission, and PBR properties directly from whatever material is assigned to the approaching driver. If the driver is red, the display glows red; if the driver has a multi-colored texture, the display reflects those exact tones. * **Custom Material**: Assigns a dedicated custom material specifically to the illuminated contact area. Useful for applying complex glass, subsurface scattering, or iridescent shaders when activated. * **Target Material**: Preserves the display object's own existing material color, merely boosting its emission upon contact. * **Lit Color**: Direct RGBA color swatch fallback when no driver material exists.