Details
This document outlines the final component structure for the AliceLG Blender Add-on, focusing on modularity, adherence to Blender's add-on patterns, extensibility, and testability. The add-on integrates external hardware for real-time lightfield display within Blender's 3D viewport.
Add-on Entry Point
The primary entry point for the Blender add-on, responsible for registering and unregistering all necessary modules, classes, and operators with Blender's API. It orchestrates the add-on's lifecycle.
User Interface (UI) & Operators
Manages all user-facing elements within Blender, including panels, menus, and custom operators. It provides the means for users to interact with the add-on's features, such as initiating the viewport display.
Viewport Display/Renderer
The core component for managing the real-time display and interactive representation of lightfield content directly within Blender's 3D viewport. It overrides Blender's rendering context and handles rendering blocks to provide a live preview.
RPC Communication Client
Handles all inter-process communication (RPC) with external services, such as the Looking Glass Bridge or HoloPlay Service. It facilitates sending lightfield data and receiving device status updates.
Device Abstraction Layer
Provides a standardized, abstract interface for interacting with various Looking Glass holographic displays. It encapsulates device-specific protocols and ensures the core logic remains independent of hardware variations.
Core Lightfield Processing
Contains the fundamental algorithms and logic for processing, manipulating, and preparing lightfield data for display. This includes tasks like data serialization, format conversion, and optimization.
Configuration Manager
Manages all add-on settings, user preferences, and persistent data. It provides an interface for other components to store and retrieve configuration values, ensuring customizable behavior.
Utility Functions
A collection of general-purpose helper functions and common utilities used across various components of the add-on. This promotes code reusability and reduces redundancy.