Monitoring information visualization method and server applied to smart building
Patent Information
- Application Number
- CN202611043599.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-07-14
- Publication Date
- 2026-09-29
AI Technical Summary
然而,固定视角的切换方式使得观察路径被人为割裂,管理人员在视角跳转后容易丧失空间方向感,难以连贯地理解事件设备在建筑整体空间中的位置关系及其对周边区域的波及影响;同时,当报警事件发生在构件密集或空间结构复杂的区域时,静态标记与标签极易被前景构件遮挡,导致关键信息无法被有效辨识,影响事件响应效率
本发明通过构建与事件位置和紧急程度空间衰减关联的三维视觉关注代价分布信息,并将该代价分布信息作为虚拟相机路径搜索的约束条件,使得路径求解过程能够在三维空间内自动朝向视觉关注优先程度高的区域引导相机运动,同时兼顾视野暴露程度和空间认知连贯性,避免相机穿越不可通行的空间实体构件,从而在复杂建筑空间中生成既能完整呈现目标设备及其影响辐射区域、又能维持观察者空间方向感的平滑观察路径。在此基础上,通过在相机沿路径移动过程中动态调节非关注区域构件的视觉透明度属性,并对目标设备叠加与事件紧急程度实时联动的脉动光晕视觉表现,使得与报警事件直接相关的设备在视觉上被自然凸显,而无关背景信息被有效弱化,观察者的注意力被自动引导至事件核心区域。在路径终点,通过对三维视图画面进行无模型空白区域检测并在该空白区域锚定应急信息呈现面板,同时根据目标设备与视点之间的实时视线遮挡状态动态调整面板的视觉显示层级与引导线呈现形态,使得事件关联信息在画面中始终以不被遮挡且空间指向明确的方式呈现,从而将事件定位、设备状态和应急指引信息在单一连贯的视觉叙事过程中有序传递。
Smart Images

Figure CN122845761A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of data processing, and in particular to a method and server for visualizing monitoring information in smart buildings. Background Technology
[0002] The building monitoring information visualization in this invention refers to presenting monitoring information such as equipment alarms and environmental status within a building in a graphical manner within a three-dimensional building scene, assisting managers in quickly locating event positions and understanding the on-site situation. In existing technologies, several fixed viewing angles are typically preset in a three-dimensional building model. When an alarm event is detected, the virtual camera is directly switched to the preset angle closest to the event location, and the alarm equipment is marked with static color markers or text labels on the screen. However, this fixed-angle switching method artificially fragments the observation path. Managers are prone to losing their spatial orientation after the viewpoint jumps, making it difficult to understand the positional relationship of the event equipment within the overall building space and its impact on the surrounding area. Furthermore, when alarm events occur in areas with dense components or complex spatial structures, static markers and labels are easily obscured by foreground components, making it impossible to effectively identify key information and affecting event response efficiency. Summary of the Invention
[0003] This invention provides a method and server for visualizing monitoring information in smart buildings.
[0004] In a first aspect, embodiments of the present invention provide a method for visualizing monitoring information applied to smart buildings, including: Obtain building monitoring event alarm information, which includes spatial coordinates of the event location, device type information that triggered the alarm, and quantitative information on the urgency of the event associated with the device type information; Based on the spatial adjacency data of the building information model, combined with the description information of the spread range of the event's impact determined by the spatial coordinate information of the event's location and the quantitative information of the event's urgency, and the attenuation mapping relationship of urgency with spatial distance, visual attention cost distribution information in three-dimensional space is generated. Using the pose state information of the current virtual camera in the 3D scene as the starting point for path planning, and the visual attention cost distribution information as the cost constraint for path search, a path solving process is performed to obtain an optimized smooth observation path. The virtual camera is moved along the optimized smooth observation path. During the movement of the virtual camera along the path, the visual transparency properties of non-interested area components within a preset range around the target device are dynamically adjusted by executing shader scripts. At the same time, a pulsating halo visual representation with a real-time mapping relationship to the event urgency quantification information is superimposed and rendered on the target device. After the virtual camera moves to the end position of the optimized smooth observation path, the current 3D view screen is processed to detect blank areas without models to obtain blank area position information. The emergency information presentation panel associated with the building monitoring event alarm information is anchored and rendered within the screen area indicated by the blank area position information. Based on the real-time determination of the line of sight obstruction between the target device's presentation area in the screen and the virtual camera's viewpoint, the visual display level of the emergency information presentation panel and the presentation form of the guide line connecting the emergency information presentation panel and the target device are dynamically adjusted.
[0005] Secondly, embodiments of the present invention provide a server, including: a memory for storing computer-executable instructions or computer programs; and a processor for executing the computer-executable instructions or computer programs stored in the memory to implement the above-described method for visualizing monitoring information applied to smart buildings.
[0006] The embodiments of the present invention have the following beneficial effects: This invention constructs a 3D visual attention cost distribution information correlated with the spatial attenuation of event location and urgency, and uses this cost distribution information as a constraint for virtual camera path search. This allows the path-solving process to automatically guide the camera movement towards areas of high visual attention priority in 3D space, while simultaneously considering field of view exposure and spatial coherence, avoiding the camera traversing impassable spatial structures. This generates a smooth observation path in complex architectural spaces that fully presents the target equipment and its affected area while maintaining the observer's spatial orientation. Furthermore, by dynamically adjusting the visual transparency attributes of non-interested area components as the camera moves along the path, and superimposing a pulsating halo visual representation on the target equipment in real-time, linked to the event's urgency, equipment directly related to the alarm event is naturally highlighted visually, while irrelevant background information is effectively weakened, automatically guiding the observer's attention to the core area of the event. At the end of the path, by detecting blank areas without models in the 3D view and anchoring the emergency information display panel in the blank area, and dynamically adjusting the visual display level and guide line presentation of the panel according to the real-time line-of-sight occlusion between the target device and the viewpoint, the event-related information is always presented in the picture in an unobstructed and spatially directional manner, thereby orderly conveying event location, equipment status and emergency guidance information in a single and coherent visual narrative. Attached Figure Description
[0007] Figure 1 This is a schematic diagram of the architecture of an application scenario provided in an embodiment of the present invention; Figure 2 This is a schematic diagram of the server structure provided in an embodiment of the present invention; Figure 3 This is a logical schematic diagram of the monitoring information visualization method for smart buildings provided in the embodiments of the present invention.
[0008] Figure 4 This is a flowchart illustrating the steps of a monitoring information visualization method for smart buildings provided in an embodiment of the present invention. Detailed Implementation
[0009] See Figure 1 This is a schematic diagram of the application scenario provided in this embodiment of the invention. The monitoring device 400 is connected to the server 200 via a network 300, which can be a wide area network (WAN), a local area network (LAN), or a combination of both, using wireless or wired links to achieve data transmission. The monitoring device 400 generates digital information records reporting anomalies or events of concern occurring within the building and sends them to the server 200; the server 200 executes the method provided in this embodiment of the invention.
[0010] In some embodiments, server 200 can be a standalone physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, content delivery networks (CDNs), and big data and artificial intelligence platforms. Monitoring device 400 can be various sensors, monitoring equipment, or automation systems, but is not limited to these. The monitoring device and server can be directly or indirectly connected via wired or wireless communication, and this is not limited in these embodiments.
[0011] The server used to implement the monitoring information visualization method for smart buildings provided in this embodiment of the invention will be described next. See [link to documentation]. Figure 2 , Figure 2 This is a schematic diagram of the server structure provided in an embodiment of the present invention. Figure 2 The server shown includes at least one processor 210, memory 250, at least one network interface 220, and an external interface 230. The various components in server 200 are coupled together via a bus system 240. It is understood that the bus system 240 is used to implement communication between these components. In addition to a data bus, the bus system 240 also includes a power bus, a control bus, and a status signal bus. However, for clarity, ... Figure 2 The general labeled all buses as Bus System 240.
[0012] Processor 210 can be an integrated circuit chip with signal processing capabilities, such as a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. Among them, the general-purpose processor can be a microprocessor or any conventional processor, etc.
[0013] External interface 230 may include, for example, one or more speakers and / or one or more visual displays. External interface 230 may also include one or more input devices 232, such as a keyboard, mouse, microphone, touch screen display, camera, etc.
[0014] The memory 250 may be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state storage, hard disk drives, optical disk drives, etc. The memory 250 may optionally include one or more storage devices physically located away from the processor 210.
[0015] The memory 250 may include volatile memory or non-volatile memory, or both. The non-volatile memory may be read-only memory (ROM), and the volatile memory may be random access memory (RAM). The memory 250 described in this embodiment is intended to include any suitable type of memory.
[0016] In some embodiments, memory 250 is capable of storing data to support various operations, examples of which include programs, modules, and data structures or subsets or supersets thereof, as illustrated below.
[0017] Operating system 251 includes system programs for handling various basic system services and performing hardware-related tasks, such as the framework layer, core library layer, driver layer, etc., for implementing various basic business functions and handling hardware-based tasks; The network communication module 252 is used to reach the monitoring device via one or more (wired or wireless) network interfaces 220, exemplary network interfaces 220 include: Bluetooth, WiFi, and Universal Serial Bus (USB), etc. Presentation module 253 is configured to enable the display of information (e.g., external interface for operating peripheral devices and displaying content and information) via one or more output devices 231 (e.g., display screen, speaker, etc.) associated with external interface 230; The input processing module 254 is used to detect and translate one or more user inputs or interactions from one or more input devices 232.
[0018] Based on the above description of the application scenarios and servers provided in the embodiments of the present invention, the following describes the method for visualizing monitoring information in smart buildings provided by the embodiments of the present invention. In actual implementation, the method for visualizing monitoring information in smart buildings provided by the embodiments of the present invention can be implemented by a server.
[0019] See Figure 3 and Figure 4 These are, respectively, a logical diagram and a flowchart of the monitoring information visualization method for smart buildings provided in the embodiments of the present invention.
[0020] Step S100: Obtain building monitoring event alarm information. The building monitoring event alarm information includes the spatial coordinates of the location where the event occurred, the type of device that triggered the alarm, and the quantitative information of the urgency of the event associated with the device type information.
[0021] Building monitoring event alarm information is a digital record of information generated by various sensors, monitoring equipment, or automation systems within a smart building management system. It is used to report anomalies or events requiring attention within the building. The spatial coordinates of the event location describe the specific location of the alarm event in three-dimensional space, typically represented by a set of values in a three-dimensional Cartesian coordinate system, such as the X, Y, and Z axis coordinates defined in the world coordinate system of a building information model. The device type information that triggered the alarm is a code or string identifying the functional category of the IoT device or sensor that generated the alarm event, such as a smoke detector, temperature sensor, power monitoring module, or water pressure transmitter. This information is usually present in the alarm data packet as a device classification code or device family name.
[0022] The event urgency quantification information associated with the device type information is generated based on the device type and preset alarm judgment rules. It is a numerical indicator used to measure the severity and handling priority of the alarm event. For example, for fire alarm devices, the event urgency quantification information can be set to a higher value, while for lighting system failure devices, it is set to a relatively lower value.
[0023] For example, during step S100, a real-time alarm message stream is subscribed to from an IoT middleware platform deployed on each floor of the building via a message queue telemetry transmission protocol or a hypertext transfer protocol. Each alarm message follows a preset data exchange format and is encapsulated using a JSON or XML structure. The message body is parsed to extract the spatial coordinate information field of the event location. This field may be provided directly in the form of longitude, latitude, and floor elevation offset. In this case, it is necessary to combine the reference benchmark coordinates and floor height mapping table stored in the building information model to convert it into a unified three-dimensional spatial coordinate within the building information model. At the same time, the device type information field that triggered the alarm is read from the message body. This field can be presented in the form of a hierarchical device classification path string. Based on the device classification path, a key-value lookup is performed in a preset device type and urgency mapping table to obtain the quantitative information of the event urgency associated with the device type information.
[0024] Step S200: Based on the spatial adjacency relationship data of the building information model, combined with the description information of the spread range of the event impact determined by the spatial coordinate information of the event occurrence location and the event urgency quantification information, and the attenuation mapping relationship of urgency with spatial distance, visual attention cost distribution information in three-dimensional space is generated. The visual attention cost distribution information represents the visual attention priority that should be assigned to each spatial coordinate point in three-dimensional space.
[0025] Optionally, step S200 may include the following steps S210 to S260: Step S210: Perform spatial unit division processing on the building information model, divide the interior space of the building into a set of spatial units with adjacency relationships, and extract the geometric boundary information of each spatial unit and the connectivity interface information between adjacent spatial units.
[0026] Spatial unit partitioning is a process that uses the geometric information of building components and the functional information of space usage contained in the Building Information Model (BIM) to discretize a continuous building interior space, decomposing the originally continuous three-dimensional space into a series of discrete, independently indexable basic spatial blocks. A spatial unit set is the whole composed of all the spatial units obtained through partitioning. Each element in this set represents an independent functional spatial area, such as a room, a corridor, an elevator car, or a central atrium. Geometric boundary information is data used to accurately describe the volume range occupied by each spatial unit in three-dimensional space. It is usually expressed through a closed polygonal mesh or a boundary representation solid model. This geometric information defines the surface geometry of the enclosing structure of the spatial unit, such as walls, floors, and ceilings. Connectivity interface information records the connection points between adjacent spatial units that allow for spatial transition and personnel passage. This information can specifically include the opening geometry, location coordinates, and identifiers of the two spatial units connected by the connectivity interface. Common connectivity interfaces include door openings, the connection sections between corridors and rooms, and the upper and lower openings of stairwells.
[0027] For example, when executing step S210, the IFC or custom format data file of the Building Information Model is first loaded, and the building floor objects and spatial structure tree are traversed to extract all entity objects marked as spatial function types such as rooms, corridors, and halls. For each spatial entity object, its enclosing geometry is obtained. This geometry may be implicitly defined by multiple intersecting or contacting wall entities and floor slab entities. At this time, a spatial enclosure analysis algorithm is used to reconstruct the closed boundary representation entity model of each room based on the geometric position and orientation of the walls, using planar sweeping and Boolean operations. This model serves as the geometric boundary information of the spatial unit. Subsequently, for any two adjacent spatial units, it is detected whether there is a shared opening component between their geometric boundaries, or whether there is an adjacent and non-overlapping gap of doorway size in a certain area. If so, the area is determined to be a connection interface. The center position coordinates, opening outline polygon, and identifiers of the corresponding spatial units on both sides of the interface are extracted to form the connection interface information. In actual buildings, the location of the doorway between office space units and corridor space units is a connection interface. Its geometric information includes the coordinates of the vertices of the rectangular outline of the doorway in three-dimensional space, and its connection interface information records the identification of the office space unit and the corridor space unit that the interface connects.
[0028] Step S220: Using the spatial coordinate information of the location where the event occurred as the positioning reference, determine the starting spatial unit in the spatial unit set that contains the positioning reference, and set the path distance parameter of the starting spatial unit to the initial distance value.
[0029] The positioning reference is a reference point used to determine the affiliation of the query point within the spatial unit set. Here, the spatial coordinates of the event location obtained in step S100 are used as the positioning reference point. The starting spatial unit is the spatial unit within the spatial unit set whose internal space or surface, defined by its geometric boundary information, contains the positioning reference point; that is, the spatial area unit where the alarm event source is located. The path distance parameter is a scalar value assigned to each spatial unit, representing the spatial distance or topological steps required to reach the unit from the starting spatial unit along a traversable path. This parameter is the basis for subsequent distance attenuation calculations. The initial distance value is the path distance parameter value assigned to the starting spatial unit itself. Since the starting spatial unit is the location of the event source, its distance to itself is zero, so the initial distance value is usually set to zero. For example, when executing step S220, a spatial index structure for spatial units is constructed, such as an octree or an axis-aligned bounding box tree. The spatial coordinates of the event location are input into this index structure as the query point, and a point-to-volume inclusion test is performed. The testing process employs a ray casting method. A ray is emitted from the query point in any direction, and the number of intersections between the ray and the polygonal mesh of the geometric boundary information of each spatial unit is counted. If the number of intersections is odd, the point is determined to be inside this spatial unit, and this spatial unit is the determined starting spatial unit. After determining the starting spatial unit, a distance parameter field is created in its spatial unit data structure, and the field is assigned the initial distance value of zero. At the same time, an assigned status flag is set in the access status flag field of the data structure, indicating that the path distance parameter of this unit has been successfully calculated and written.
[0030] Step S230: Starting from the initial spatial unit, propagate layer by layer along the inter-unit connection relationship indicated by the connectivity interface information. Assign the path distance parameter accumulated from the initial spatial unit along the connectivity path to the spatial units visited during the propagation process, until all spatial units with connectivity paths to the initial spatial unit are traversed, and obtain the spatial unit path distance distribution.
[0031] Optionally, step S230 may specifically include the following steps S231 to S236: Step S231: Create a sequence of open spatial units in a pending state, add the starting spatial unit to the open spatial unit sequence, and mark the path distance parameter of the starting spatial unit as the assigned initial distance value.
[0032] An open spatial cell sequence is a dynamic data structure used to manage spatial cells discovered but not yet processed for outward diffusion during graph traversal. It is typically implemented using a first-in, first-out (FIFO) queue or a priority queue based on cost ordering. The assigned initial distance value records the state of the starting spatial cell, indicating that its distance parameter has been explicitly assigned a zero value, preventing it from being processed repeatedly. For example, during step S231, an empty queue data structure is initialized in memory as the open spatial cell sequence. This queue supports enqueue operations at the tail to append elements and dequeue operations at the head to retrieve elements. The unique identifier or object reference of the starting spatial cell determined in step S220 is enqueued and added to the tail of the open spatial cell sequence. Simultaneously, in the data record corresponding to the starting spatial cell, the value of its path distance parameter field is written to the initial distance value of zero, and a Boolean access status flag field of the data record is set to true, indicating that the path distance parameter of the spatial cell has been assigned a value.
[0033] Step S232: Take a spatial unit from the open spatial unit sequence as the current processing unit, and determine the set of adjacent spatial units directly connected to the current processing unit based on the connectivity interface information.
[0034] The current processing unit is the spatial unit selected as the diffusion source point in the current iteration of the algorithm loop. The adjacent spatial unit set is a set of all spatial units that have a direct and traversable connection with the current processing unit through the connectivity interface. For example, when executing step S232, if the open spatial unit sequence is not empty, a dequeue operation is performed from the head of the sequence, and the dequeued spatial unit object is used as the current processing unit for this loop. Subsequently, the pre-extracted and stored connectivity interface information list is traversed, and the correlation determination is performed on each connectivity interface information record: check whether the source spatial unit identifier of the record is equal to the identifier of the current processing unit, or check whether the target spatial unit identifier of the record is equal to the identifier of the current processing unit. If they match, the spatial unit identifier at the other end of the connectivity interface information record is extracted, and the corresponding spatial unit object is queried in the hash mapping table of the spatial unit set by the identifier, and added to a temporarily created adjacent spatial unit set container, thus completing the collection of all directly adjacent units of the current processing unit.
[0035] Step S233: Check whether each adjacent spatial cell in the adjacent spatial cell set has been assigned a path distance parameter, and mark the adjacent spatial cells that have not yet been assigned a path distance parameter as unvisited cells.
[0036] The assignment of a path distance parameter to a spatial unit indicates whether its path distance parameter field has been written with a valid distance value and its access status flag field has been set to true, indicating that the unit has been processed in the previous diffusion step. Unvisited units are those spatial units in the adjacent spatial unit set whose path distance parameter field is still a default null value or whose access status flag is false, indicating that these units have not yet been included in the spatial unit path distance distribution. For example, when executing step S233, each adjacent spatial unit object in the adjacent spatial unit set is traversed, and its access status flag field is read from its data record. If the value of this field is false, or the path distance parameter field is the default non-numeric placeholder at initialization, it is determined that this adjacent spatial unit has not yet been assigned a path distance parameter, and the adjacent spatial unit object is added to a list marked as unvisited units for temporary storage.
[0037] Step S234: Based on the path distance parameters assigned to the current processing unit and the spatial distance measurement value from the current processing unit to the unvisited unit, perform a path distance accumulation operation to obtain the path distance parameters of the unvisited unit, and add the unvisited unit to the open space unit sequence.
[0038] The spatial distance measurement is a quantitative measure of the length of the connected path between the current processing unit and the unvisited unit. This measurement can be obtained by calculating the Euclidean distance between the geometric centers of the two spatial units, or by calculating the distance from the center point of the connected interface to the geometric center of the unvisited unit. The path distance accumulation operation is a process of summing the path distance parameter of the current processing unit with the spatial distance measurement, thereby accumulating the path distance along the connected path. For example, when executing step S234, for each unvisited unit in the list marked as unvisited units in step S233, the path distance parameter value assigned to it is read from the data record of the current processing unit. Then, the spatial distance measurement from the current processing unit to the unvisited unit is calculated. For example, first, the coordinates of the bounding box center point of the geometric boundary information of the current processing unit and the coordinates of the bounding box center point of the geometric boundary information of the unvisited unit are obtained, and then the three-dimensional spatial Euclidean distance between these two points is calculated. Optionally, the distance from the center position of the connected interface to the centers of the two units can be accumulated in segments to obtain a more accurate distance measurement value along the actual walking path. When performing the path distance accumulation operation, the read path distance parameter value and the calculated spatial distance measurement value are arithmetically added together. The sum is the path distance parameter of the unvisited cell. This sum is written to the path distance parameter field of the unvisited cell data record, and its access status flag field is set to true. Finally, the spatial cell identifier or object reference of the unvisited cell is enqueued and appended to the tail of the open spatial cell sequence.
[0039] Step S235: Continue to process the next spatial unit from the open spatial unit sequence, repeat the operation of determining the set of adjacent spatial units based on the connectivity interface information and assigning path distance parameters, until the open spatial unit sequence becomes empty.
[0040] An empty state is when the open spatial unit sequence no longer contains any elements, indicating that all spatial units reachable from the starting spatial unit have been processed, and the diffusion process ends. For example, during step S235, the process from steps S232 to S234 is executed cyclically: at the beginning of each iteration, the number of elements in the open spatial unit sequence is checked. If the number is greater than zero, the dequeue operation continues, and the newly retrieved spatial unit is used as the current processing unit for the next iteration. The process of determining adjacent units, filtering unvisited units, and accumulating path distances is repeated, and the newly assigned spatial unit is added to the tail of the open spatial unit sequence. This cycle continues until, before the start of an iteration, it is detected that the queue length of the open spatial unit sequence is zero, reaching an empty state, and the loop automatically exits.
[0041] Step S236: After the open spatial unit sequence is transformed into an empty state, all spatial units that have been assigned path distance parameters and their respective path distance parameters are aggregated into a spatial unit path distance distribution.
[0042] Aggregation is the operation of centrally collecting and organizing the path distance parameters and their associated spatial unit identifiers scattered in the data records of various spatial units. The spatial unit path distance distribution can ultimately be represented as an association mapping table, where the key is the unique identifier of the spatial unit and the value is the corresponding path distance parameter value. For example, when executing step S236, all spatial unit objects in the spatial unit set are traversed, and the access status flag field in their data records is checked one by one. For each spatial unit whose access status flag field is true, the current values of its spatial unit unique identifier field and path distance parameter field are extracted, and this key-value pair is inserted into a newly created hash mapping table or dictionary structure. After the traversal is completed, this hash mapping table constitutes the final spatial unit path distance distribution, which covers all spatial units that can be reached from the starting spatial unit through connected paths and their corresponding cumulative path distance values.
[0043] Step S240: Obtain the first mapping relationship between the event urgency quantification information and the visual attention intensity, and the second mapping relationship between the path distance parameter and the attenuation ratio. Adjust the first mapping relationship with distance attenuation through the second mapping relationship to obtain the distance-related urgency attenuation mapping relationship.
[0044] The first mapping relationship between event urgency quantification information and visual attention intensity is a function or lookup table that converts the event urgency quantification information obtained in step S100 into a baseline visual attention intensity value. This baseline intensity value defines the maximum visual attention cost that should be obtained at the event source. The second mapping relationship between path distance parameters and attenuation ratios is a mathematical rule that maps path distance parameters in the spatial unit path distance distribution to attenuation ratio coefficients. This coefficient typically takes values between 0 and 1, indicating that the farther away from the source, the lower the proportion of visual attention intensity retained. The distance-dependent attenuation adjustment process combines the baseline visual attention intensity obtained from the first mapping relationship with the attenuation ratio coefficient obtained from the second mapping relationship, usually through multiplication, to obtain the actual visual attention intensity at a specific path distance. The distance-related urgency attenuation mapping relationship is the final composite function or two-dimensional lookup table that takes both event urgency quantification information and path distance parameters as input and outputs a distance-attenuated visual attention priority value.
[0045] For example, when executing step S240, the definition of the first mapping relationship is first read from the configuration parameter library. This definition can be a piecewise linear mapping function, with the input being the numerical value of the event urgency quantification information and the output being a dimensionless visual attention intensity benchmark value. For example, this function can be configured such that when the event urgency quantification information is in the high urgency range, the visual attention intensity benchmark value is mapped to a higher priority attention value; when it is in the low range, it is mapped to a lower benchmark value. Simultaneously, the definition of the second mapping relationship is read. This definition can be an exponential decay function, with the input being the path distance parameter and the decay ratio coefficient equal to the negative power of the natural constant e, i.e., an exponential decay model is used. When performing distance-dependent decay adjustment processing, for any given path distance parameter, the decay ratio coefficient is first calculated using the second mapping relationship, and then this coefficient is multiplied by the visual attention intensity benchmark value obtained from the event source urgency through the first mapping relationship, thereby establishing a distance-related urgency decay mapping relationship. The final mapping relationship can be pre-computed as a two-dimensional lookup table, with row indexes representing discretized event urgency quantification information, column indexes representing discretized path distance parameters, and table cells storing attenuated visual attention priority values.
[0046] Step S250: For each spatial cell in the spatial cell path distance distribution, generate local visual attention priority description information for that spatial cell by using the urgency attenuation mapping relationship of distance association and the path distance parameter of that spatial cell.
[0047] The local visual attention priority description information is generated for a single spatial unit and is used to describe the numerical or numerical distribution information of the visual attention priority that the spatial region within that spatial unit should receive. For example, during step S250, each pair of entries in the spatial unit path distance distribution mapping table obtained in step S236 is traversed to obtain the spatial unit identifier and its corresponding path distance parameter. This path distance parameter is used as a query condition, combined with the event urgency quantification information of the event source, and input into the distance-related urgency attenuation mapping relationship generated in step S240. If this mapping relationship exists in the form of a two-dimensional lookup table, the system determines the row index based on the urgency quantification information, performs a search or interpolation calculation in the column index based on the path distance parameter, and reads the attenuated visual attention priority value stored in the table cell. This value is then determined as the local visual attention priority description information for that spatial unit and is associated with and stored with the spatial unit identifier. For example, for an office space unit that is three connected interfaces away from the source of an event, its path distance parameter is the total length accumulated from the starting unit along the corridor and doorway. By looking up the table through the distance-related urgency attenuation mapping relationship, a visual attention priority value that has been attenuated relative to the source of the event can be obtained. This value serves as the local visual attention priority description information for this office space unit.
[0048] Step S260: The local visual attention priority description information is processed by spatial filling and continuity extension according to the geometric boundary information of the corresponding spatial unit to obtain the visual attention cost distribution information covering the accessible space inside the building.
[0049] Optionally, step S260 may specifically include the following steps S261 to S266: Step S261: Convert the geometric boundary information of each spatial unit in the spatial unit path distance distribution into a description of the entity-occupied region of the spatial unit in three-dimensional space, and initialize a three-dimensional sampling point array corresponding to the spatial unit within the entity-occupied region description.
[0050] The entity-occupied region description converts the closed polygonal mesh defined by the geometric boundary information of a spatial unit into an explicit 3D entity voxel representation or a bounding box plus an internal voxel mesh, used to clearly define the volume area occupied by the spatial unit in 3D space. The 3D sampling point array is a series of regular grid points arranged within the entity-occupied region according to a preset spatial resolution. Each grid point serves as a spatial sampling location, carrying the visual attention attribute value of that location. For example, during step S261, for each spatial unit in the spatial unit path distance distribution, the closed boundary representation entity model in its geometric boundary information is obtained. A voxelization operation is performed on this boundary representation entity model: first, the axis-aligned bounding box of the boundary representation entity model in the world coordinate system is calculated; then, with a preset voxel side length, such as a unit length in the building information model, the space within the bounding box is uniformly meshed to generate a 3D regular grid point array covering the bounding box. For each grid point in the array, an inclusion test is performed within the polyhedron. This is done by emitting rays from the point in any direction and counting the number of intersections with the triangular faces of the boundary representation solid model. Grid points located inside the closed boundary representation solid model are retained, while those outside are discarded. These retained points collectively constitute a 3D sampling point array within the spatial unit. At this point, each sampling point in this 3D sampling point array does not yet possess a valid visual attention attribute value.
[0051] Step S262: Directly assign the local visual attention priority description information to each sampling point in the three-dimensional sampling point array to obtain a discrete visual attention field that is only independent and effective within each spatial unit and has attribute abrupt changes at the unit boundaries.
[0052] Direct assignment assigns the scalar value of the local visual attention priority description information corresponding to the spatial unit to each sampling point in the three-dimensional sampling point array within the spatial unit as its visual attention attribute value. Discrete visual attention field is the overall spatial sampling field formed after all spatial units are independently assigned values. The attribute values of each point in this field are consistent within a single spatial unit, but at the boundary intersection of adjacent spatial units, because different units may have different visual attention priority values, the attribute values become discontinuous when crossing the boundary, resulting in a step jump.
[0053] For example, during step S262, the local visual attention priority description information and the three-dimensional sampling point array of each spatial unit are traversed, and the value of the description information is written into the visual attention attribute value data field of each sampling point in the corresponding sampling point array. For example, if the local visual attention priority description information of an office spatial unit is value A, then the visual attention attribute value of all sampling points within it is set to A; if the local visual attention priority description information of the adjacent corridor spatial unit is value B, then the value of all sampling points within it is set to B. At the boundary doorway between the office spatial unit and the corridor spatial unit, there will be a sudden change in attribute value from A to B between the sampling points belonging to the two adjacent units. This overall sampling field is discontinuous at the boundary, which is a discrete visual attention field.
[0054] Step S263: Perform neighborhood search on the sampling points at the boundary of adjacent spatial units, extract the pairs of sampling points on both sides of the boundary that belong to different spatial units, and perform cross-unit mixing processing on the visual attention attribute values carried by each pair of sampling points to generate the visual attention attribute values of the sampling points in the transition region, so as to eliminate the attribute mutation of the discrete visual attention field at the boundary of spatial units.
[0055] Neighborhood search is the operation of finding neighboring sampling points belonging to other spatial units within a certain radius around each sampling point located near the interface of adjacent spatial units. Paired sampling points are two sampling points that are spatially adjacent on both sides of the interface but belong to different spatial units. Cross-unit blending is the process of weighted averaging or interpolating and fusing the visual attention attribute values of paired sampling points to generate new visual attention attribute values, replacing the original step values with smooth transition values. Transition region sampling points are sampling points in the spatial unit interface area that have obtained new visual attention attribute values after blending; the attribute values of these sampling points are between the original attribute values of the two adjacent units.
[0056] In step S263, firstly, the connected interface regions in the geometric boundary information of all spatial units are identified, and the polygonal geometric patches of these interfaces are extracted. For each interface patch, a transition zone of a preset thickness is extended on both sides. Within this transition zone, three-dimensional sampling points from both spatial units on either side of the interface are included. For each sampling point within the transition zone, a neighborhood search is performed, using a KD tree or octree spatial acceleration structure to find all sampling points from the other side's spatial unit within its radius as neighborhood points. For each pair of adjacent sampling points, cross-unit blending is performed: the blending weight is determined according to the vertical distance from the sampling point to the interface patch; the closer the distance, the greater the weight contributed by the attribute value from the opposite unit. For example, for a sampling point located on one side of an office spatial unit, its new visual attention attribute value is obtained by linearly weighting its original value A and the value B of a neighboring sampling point from a corridor spatial unit, with the weight coefficient calculated based on the proportion of the distance from the point to the center plane of the doorway in the total thickness of the transition zone. The calculated new attribute values replace the original visual attention attribute values of all sampling points within the transition zone, forming new attribute values for the sampling points in the transition area. This replaces the original attribute abrupt changes with continuous gradation at the boundary.
[0057] Step S264: Spatial aggregation is performed on all sampling points that have completed cross-unit hybrid processing, and the attribute values are extrapolated along the extension direction of the accessible space inside the building. The visual attention attribute values are extended from the existing sampling point positions along the spatial connection path to the unassigned accessible gap area, so that the spatial points in the accessible gap area obtain visual attention attribute values that are smoothly connected with the adjacent assigned areas.
[0058] Spatial aggregation integrates all the scattered sampling points with pre-assigned visual attention attribute values after the mixing process in step S263 into a unified sampling field. Trend extrapolation starts from the attribute values of known sampling points and extends attribute assignment along the continuous direction of spatial accessibility to accessible gap areas not included in any spatial unit sampling array, ensuring full coverage of the visual attention field within the accessible space. Accessible gap areas are continuous spaces accessible to people in the building information model, but not covered by any three-dimensional sampling point array of spatial units, such as the clear area inside a doorway, gathering spaces at the end of a corridor, or transitional lobbies.
[0059] In step S264, a union operation is performed on all transition area sampling points processed in step S263 and unaffected internal sampling points to obtain a total set of assigned sampling points covering the interior of all spatial units and transition areas. Then, for the boundary representation entity model of the accessible spaces inside the building, accessible gap areas without sampling points are identified. Based on the location coordinates of these gap areas, sparse filling points are added inside them. For each new filling point, multiple assigned sampling points are searched along the direction connecting its spatial location to the nearest set of assigned sampling points. Based on the visual attention attribute values of these assigned sampling points, trend extrapolation is performed using radial basis function-based interpolation or least squares surface fitting algorithms to calculate the visual attention attribute value of the new filling point. Specifically, a thin plate spline interpolation function can be constructed to fit a spatial continuous surface using the position and attribute values of the known sampling point set as control points. Then, the function value of the newly added filling point position can be queried on the surface as its attribute value, thereby ensuring a smooth connection of visual attention attribute values between the passable gap area and the adjacent already assigned area.
[0060] Step S265: Perform boundary clipping on the continuous field of visual attention attributes formed after trend extrapolation. Use the boundary surface of the accessible space inside the building to cut off the part that exceeds the range of the accessible space, and retain the continuous field of visual attention attributes that is consistent with the geometry of the actual accessible space inside the building.
[0061] The visual attention attribute continuous field is a spatially continuous scalar field of visual attention priority, formed after trend extrapolation in step S264. This field now covers the accessible space and its external portion. Boundary clipping uses the precise geometric boundaries of the accessible spaces within the building to cut this continuous field, removing portions located outside the accessible spaces. The boundary surface of the accessible spaces within the building is a closed or semi-closed surface formed by the enclosing surfaces of all non-accessible solid components such as walls, floors, columns, and fixed facilities within the building. Specifically, a pre-built boundary representation solid model of the accessible spaces within the building is loaded. This model merges all accessible spaces, such as corridors, rooms, doorways, and elevator lobbies, into a connected geometry through Boolean union operations. The outer surface polygon mesh of this connected geometry is obtained as the clipping surface. Subsequently, a clipping operation is performed on the visual attention attribute continuum. This can be done in one of two ways: when the visual attention attribute continuum is stored as an explicit voxel mesh, an inclusion test is performed on the center point of each voxel unit within the mesh, retaining only voxel units located inside the clipping surface; when the visual attention attribute continuum is stored as an implicit function or triangular mesh vertex attribute, the clipping surface is directly used to cut the triangular mesh, splitting the triangular facets along the intersection of the clipping surface and the mesh, discarding the portions outside the clipping surface, and re-interpolating attribute values for the vertices at the clipping boundaries. The retained portion is the visual attention attribute continuum that strictly conforms to the geometry of the actual passable space inside the building.
[0062] Step S266: Convert the clipped visual attention attribute continuous field into a query data structure indexed by three-dimensional spatial coordinates, as visual attention cost distribution information covering accessible spaces inside the building.
[0063] A query data structure indexed by three-dimensional spatial coordinates is a data organization form that supports efficient querying at any three-dimensional spatial coordinate point and returns the visual attention cost attribute value corresponding to that coordinate location. Examples include three-dimensional texture volume data structures, octree-accelerated voxel fields, or point set data with spatial indexes. For instance, during step S266, the visual attention attribute continuous field data retained after pruning in step S265 is encapsulated into a three-dimensional query texture object. Specifically, the entire bounding box range of the traversable space is divided into a three-dimensional regular grid. For each grid cell, if its center point is located inside the traversable space and has been assigned an attribute value, the attribute value is quantized into a texture element color value and written to the corresponding texture element of the three-dimensional texture; if the grid cell is located outside the traversable space or the attribute value is invalid, a specific null value marker is written. Simultaneously, a multi-level asymptotic texture hierarchy is established for this three-dimensional texture to support fast queries at different distances. Finally, this 3D texture object, along with its spatial reference coordinate system origin, grid cell size, and other metadata, is encapsulated into visual attention cost distribution information covering the accessible space inside the building, which can then be directly sampled and queried by coordinates in subsequent path planning steps.
[0064] Step S300: Using the pose state information of the current virtual camera in the 3D scene as the starting point for path planning, and the visual attention cost distribution information as the cost constraint for path search, the path solving process is executed to obtain an optimized smooth observation path. The process of solving the optimized smooth observation path takes into account both the degree of field exposure and the spatial coherence. The degree of field exposure represents the sufficiency of visibility of the target device and its influence radiation area pointed to by the device type information within the field of view of the virtual camera. The spatial coherence represents the path continuity of the virtual camera when moving along the path without crossing inaccessible spatial entities.
[0065] Optionally, step S300 may specifically include the following steps S310 to S350: Step S310: Obtain the pose state information of the current virtual camera in the 3D scene. The pose state information includes the spatial position coordinates of the virtual camera and the view orientation vector.
[0066] The spatial position coordinates of the virtual camera are the three-dimensional coordinates of its installation position in the world coordinate system of the 3D rendering engine. The view orientation vector is a unit direction vector originating from the optical center of the virtual camera and pointing forward of its viewpoint. For example, during step S310, the transformation matrix component of the virtual camera object corresponding to the current rendering frame is queried by calling the application programming interface provided by the 3D rendering engine. The translation component, i.e., the three-dimensional coordinates of the camera's local coordinate system origin in the world coordinate system, is extracted from this transformation matrix as the spatial position coordinates of the virtual camera; simultaneously, the third row or forward vector in the rotation matrix is extracted and normalized to obtain the view orientation vector. These two values are encapsulated into a pose data structure and passed to the path planning module as the starting position and initial direction reference for path planning.
[0067] Step S320: Within the spatial range covered by the visual attention cost distribution information, based on the three-dimensional bounding box information of the target device and the range definition of its surrounding influence area, calculate a set of candidate observation viewpoint positions that can obtain the complete field of view of the target device.
[0068] Optionally, step S320 may specifically include the following steps S321 to S326: Step S321: Extract the geometric center position and the dimensional extension range along the main axis from the 3D bounding box information of the target device, and generate a coaxial multi-layer bounding surface around the target device. The distance between each bounding surface and the geometric center position increases sequentially according to the preset layer interval.
[0069] The geometric center is the coordinate of the intersection of the diagonals of the target device's 3D bounding box. The dimensional extension along the principal axes is the distance from the geometric center to the bounding box face along the three principal axes. Coaxial multi-layer bounding surfaces are multiple similar enlarged bounding surfaces that share the same geometric center and are aligned with the principal axes of the target device's bounding box; for example, a series of concentric ellipsoids or coaxial cuboid bounding surfaces. The layer spacing is the radial distance difference between two adjacent bounding surfaces.
[0070] Specifically, the vertex array of the target device's 3D bounding box information is read, its geometric center coordinates are calculated, and the half-size extension range of the bounding box in the three principal axes of length, width, and height is calculated. Based on this geometric center and half-size, a family of coaxial ellipsoidal bounding surfaces is constructed: with a preset layer interval of a constant distance, the axial radius of the innermost ellipsoid is the half-size extension range plus one layer interval, and the outer layers are successively increased. These ellipsoids are stored in the form of parametric surface equations, forming a set of coaxial multi-layer bounding surfaces, on which sampling points are placed.
[0071] Step S322: On each enclosing plane, with the geometric center position as the reference origin, perform joint discrete sampling of the azimuth and pitch angle ranges to generate an initial viewpoint sampling point set. Each initial viewpoint sampling point carries its spatial position coordinates and the direction vector from the spatial position coordinates to the geometric center position.
[0072] The azimuth range is the sampling range of horizontal rotation angles around the geometric center, such as 0° to 360°. The pitch range is the sampling range of vertical angles measured from the geometric center. Joint discrete sampling is a sampling strategy that discretizes the azimuth and pitch dimensions according to a preset step size interval and combines all discrete values to generate a point for each combination. The initial viewpoint sampling point set is the set of all viewpoint coordinates generated in the above sampling process that have not yet undergone visibility and quality screening. For example, the azimuth step size and the pitch step size are set to preset angle values. For each layer of the bounding surface family, a nested loop is performed: the outer loop increments the azimuth range by the step size, and the inner loop increments the pitch range by the step size. For each pair of angle values, the three-dimensional spatial coordinates on the bounding surface are calculated according to the parametric equation of that layer of bounding surface, and these coordinates are used as the spatial coordinates of the initial viewpoint sampling point. Simultaneously, the normalized direction vector from this point to the geometric center is calculated, and the coordinates of this position and the direction vector are written into a new viewpoint sampling point data record and added to the initial viewpoint sampling point set.
[0073] Step S323: For each initial viewpoint sampling point, using the spatial coordinates of the initial viewpoint sampling point as the ray origin, project a line-of-sight test ray onto the set of facet center points on the 3D bounding box of the target device. Record the number of line-of-sight test rays that are truncated by non-target entity components in the scene. The proportion of the number of line-of-sight test rays that are not truncated and successfully reach the corresponding facet center point to the total number of projections is taken as the target visibility integrity of the initial viewpoint sampling point.
[0074] The set of facet center points is the set of points formed by the geometric center points of each mesh facet after dividing each surface of the target device's 3D bounding box into subdivided meshes. A line segment for tracing a viewpoint is a line segment pointing from the viewpoint to a point on the target bounding box, used to simulate a line of sight. Non-target entity components are all other 3D model entities in the scene besides the target device itself, such as walls, pipes, and other equipment. Target visibility completeness is a proportional indicator measuring the degree of completeness of the observed surfaces of the target device in each orientation at a given viewpoint. For example, each rectangular surface of the target device's 3D bounding box is divided into subdivided meshes using preset uniform subdivision parameters, and the 3D coordinates of the center points of each mesh facet are calculated to form the set of facet center points. For each sampling point in the initial viewpoint sampling point set, the spatial coordinates of the sampling point are used as the ray origin. For each facet center point in the bounding box facet center point set, a line of sight ray is generated from the ray origin to the facet center point. Using the raycasting interface or physics collision detection library of the 3D rendering engine, intersection tests are performed between rays and triangular facets within the accelerated collision geometry of the scene, ignoring intersections with the target device's own geometry. Each ray is tested as either truncated or successful. The statistical result is the number of successful rays divided by the total number of projection facet center points; the resulting ratio represents the target visibility integrity value at that initial viewpoint sampling point.
[0075] Step S324: For each initial viewpoint sampling point, query the visual attention cost distribution information to determine the visual attention priority at the spatial coordinates of that initial viewpoint sampling point. Combine the visual attention priority with the target visibility completeness for a joint quality assessment. The visual attention priority and viewpoint quality are inversely related, while the target visibility completeness and viewpoint quality are positively related, thus obtaining the viewpoint quality assessment result.
[0076] The viewpoint quality assessment result is a numerical value derived from a comprehensive evaluation of the viewpoint's suitability as an observation location. This value reflects both the visibility of the observed target and the cost of visual attention at that location. Visual attention priority and viewpoint quality are inversely related: areas with higher visual attention priority require greater attention and are less suitable as long-term, hidden observation points, thus resulting in lower viewpoint quality; conversely, locations with lower attention costs are more suitable as observation points. Target visibility completeness and viewpoint quality are positively related: viewpoints with higher target visibility completeness have better observation conditions and higher viewpoint quality. For each initial viewpoint sampling point, its spatial coordinates are used in a trilinear interpolation sampling process within the query data structure of visual attention cost distribution information to obtain the visual attention priority value at that point. Subsequently, the visual attention priority value and target visibility completeness are jointly assessed to construct a quality assessment function. The calculation logic of this function is as follows: First, the visual attention priority value is inversely mapped through a monotonically decreasing function to obtain a cost score. This decreasing function can be in the form of subtracting the value, inverting it, and then normalizing it. Then, the target visibility completeness is directly used as a benefit score. The two scores are linearly weighted and summed according to preset weights to obtain the final viewpoint quality assessment result. The larger the quality assessment result value, the more ideal the overall observation conditions of the initial viewpoint sampling point.
[0077] Step S325: Based on the viewpoint quality assessment results, perform local nonmaximum suppression operation on the initial viewpoint sampling point set. In the group of viewpoint sampling points that are spatially close, retain only the viewpoint sampling point with the best viewpoint quality assessment result and remove the other viewpoint sampling points in the group.
[0078] Local nonmaximum suppression (LOPS) is a filtering algorithm that suppresses all non-maximum sampling points within a local spatial neighborhood, retaining only the locally optimal point. Spatial proximity is defined as the Euclidean distance between two sampling points being less than a preset suppression radius threshold. Viewpoint sampling point grouping involves clustering the initial viewpoint sampling points into several subsets based on spatial proximity. For example, a preset suppression radius threshold is set. Each sampling point in the initial viewpoint sampling point set is traversed. For sampling points not marked as suppressed, their spatial coordinates are used as the query center, and other sampling points within the radius threshold are searched, grouping these sampling points into the same group. The viewpoint quality assessment results of all sampling points within this group are compared, and the sampling point with the highest value is selected as the retention point. The remaining sampling points in the group are marked as pending removal. After all sampling points have been traversed and grouped, all sampling points in the pending removal state are removed in batches from the initial viewpoint sampling point set, retaining only the optimal viewpoint within each local region.
[0079] Step S326: The viewpoint sampling points retained after the local nonmaximum suppression operation are clustered according to the spatial proximity and the closeness of the angle between the direction vectors to obtain several viewpoint clusters. The spatial geometric center of each viewpoint cluster is extracted as a candidate observation viewpoint, and all candidate observation viewpoints are gathered to form a candidate observation viewpoint position set.
[0080] The similarity of the angles between direction vectors is the cosine similarity or angle difference between the direction vectors pointing to the geometric center of two viewpoint sampling points, used to measure whether their viewing orientations are consistent. A viewpoint cluster is a group of viewpoint sampling points that are spatially adjacent and have similar viewing directions. The spatial geometric center is the arithmetic mean of the spatial coordinates of all sampling points within a viewpoint cluster. For example, a density-based clustering algorithm with direction constraints is used to cluster the retained viewpoint sampling points. This algorithm processes each sampling point individually. If there are other sampling points within a preset spatial distance neighborhood of a sampling point that satisfy the requirement that the similarity of the angles between their direction vectors is within a preset angle tolerance threshold, they are merged into a viewpoint cluster and expanded outwards. After clustering, several viewpoint clusters are obtained. For each viewpoint cluster, the average coordinate of the spatial coordinates of all sampling points it contains is calculated as the spatial geometric center of the viewpoint cluster. The coordinates of the spatial geometric centers of all viewpoint clusters are taken as a set element and output as the final set of candidate observation viewpoint positions.
[0081] Step S330: Using the spatial coordinates of the virtual camera as the starting point of the search and each candidate point in the candidate observation viewpoint location set as the acceptable endpoint, a path search is performed on the visual attention cost distribution information. During the search process, the cumulative amount of visual attention priority of the spatial points along the path is used as the basic cost, and the direction smoothing cost obtained by the path direction change rate through a preset normalization mapping is superimposed to obtain the comprehensive cumulative cost. Among them, the normalization mapping converts the path direction change rate into a dimensionless cost with the same dimension as the basic cost, so that the two costs can be numerically superimposed.
[0082] The cumulative visual attention priority of spatial points along the path is the sum of the visual attention priority values sampled at each spatial location point along the path's arc length, serving as the basic cost for evaluating path quality. The path direction change rate is the change in the path tangent vector along the path's arc length, reflecting the path's curvature. The pre-defined normalization mapping converts the path direction change rate into a dimensionless linear or nonlinear function with the same numerical scale as the cumulative visual attention priority. The direction smoothing cost is the dimensionless cost obtained after the normalization mapping. The comprehensive cumulative cost is the weighted sum of the basic cost and the direction smoothing cost. For example, the A-star map search algorithm or fast traversal algorithm can be used to solve for paths in continuous space. The search space is the traversable space voxel field covered by the visual attention cost distribution information. The search starting point is set as the spatial coordinates of the virtual camera, and all candidate points in the candidate viewpoint location set are set as candidate target endpoints. The algorithm maintains a priority queue of nodes to be expanded. Each node in the queue represents a spatial location, and its sorting key is the estimated total cumulative cost from the starting point to that node. When a node is removed from the priority queue and expanded to its neighboring nodes, the local path segments between nodes are calculated. The increment of the base cost is obtained by multiplying the visual attention priority value of the voxel cells traversed by the path segment by the path segment length and then adding it to the base cost of the current node. The increment of the orientation smoothing cost is obtained by multiplying the rate of change of the angle between the orientation vector of the current segment and the orientation vector of the previous segment by a preset normalized mapping coefficient, which makes the cost of orientation change numerically comparable to the visual attention cost. The two are added together to obtain the local total cumulative cost from the starting point to the current node via the neighboring nodes. The algorithm continues to expand until a neighboring node falls within the tolerance reach radius of any candidate viewpoint. If the search is successful, the path node chain is backtracked to obtain the spatial discrete point sequence of the path with the minimum total cumulative cost.
[0083] Step S340: Perform curve fitting on the path with the minimum comprehensive cumulative cost obtained from the search, connect the discrete points on the path to a continuous smooth curve, and detect whether the continuous smooth curve conflicts with the position of the impassable space entity. If there is a conflict, apply local path offset adjustment to the conflict segment and then perform curve fitting again.
[0084] Curve fitting is the process of approximating or interpolating a sequence of discrete spatial points output from a path search using continuous parametric curve equations, such as cubic B-spline curves or quintic Bézier curves, to generate a geometrically continuous smooth spatial curve. Impassable spatial entities are 3D solid objects in buildings that constitute physical barriers, such as load-bearing walls, non-load-bearing partitions, floor slabs, and columns, which prevent virtual cameras from penetrating them. Positional conflict occurs when a local segment on the fitted smooth curve penetrates the area occupied by an impassable spatial entity. Local path offset adjustment applies spatial displacement outward to control points or constraint points only on the curve segment where a positional conflict occurs, allowing the curve to avoid the obstacle. For example, the discrete point sequence output from the path search is used as control points, and a smooth transition curve passing near these control points is generated using a cubic B-spline curve interpolation algorithm. The generated B-spline curve is densely sampled along its arc length to obtain a series of curve checkpoints. The coordinates of each checkpoint are used as the position of a collision detection ray or sphere, and overlap detection is performed on the collision mesh of the impassable spatial entity in the 3D scene. If a checkpoint falls inside the collision body of an impassable solid component, a collision segment before and after that point is recorded. For the collision segment, the shortest offset direction and distance to move it out of the solid component are calculated. Offsets are applied to the control points of the B-spline curve corresponding to the collision segment, and the curve fitting and collision detection iterations are re-executed until the entire curve completely avoids the impassable solid component, and the final continuous smooth curve is output.
[0085] Step S350: Based on the curve fitting results, uniformly sample along the path to obtain a path sampling point sequence. Perform line-of-sight accessibility verification on each sampling point in the path sampling point sequence to ensure that the line of sight from the sampling point is not blocked by other components and can reach the target device. Output the path sampling point sequence that has passed the line-of-sight accessibility verification as the optimized smooth observation path.
[0086] Optionally, step S350 may specifically include the following steps S360~S3110: Step S360: Perform spatial distribution analysis on the path sampling point sequence on the optimized smooth observation path, and extract the spatial interval length sequence between adjacent path sampling points and the direction change angle sequence of the path tangent at each path sampling point.
[0087] Spatial distribution analysis calculates and analyzes the distribution characteristics of discrete points in the path sampling point sequence to extract feature data reflecting the geometric shape of the path. The spatial interval length sequence is a numerical sequence of the straight-line distance between each pair of adjacent path sampling points, arranged sequentially along the path. The path tangent direction change angle sequence is a numerical sequence of the deflection angle of the path's forward direction at each path sampling point relative to the forward direction at the previous sampling point; this angle value reflects the degree of path curvature at that point. During step S360, the path sampling point sequence is traversed sequentially. For the sampling point with index i and index i+1, the Euclidean distance between the two points is calculated and added to the spatial interval length sequence. Simultaneously, the central difference method is used to estimate the path tangent vector at each internal sampling point. That is, for the sampling point with index i, its tangent vector is obtained by normalizing the difference vector between the coordinates of the sampling points at index i+1 and index i-1; for the first and last endpoints, forward and backward one-sided differences are used respectively. Calculate the angle between the tangent vector of the current sampling point and the tangent vector of the previous sampling point, and add the angle value to the sequence of direction change angles. These two sequences constitute a complete analytical description of the spatial distribution characteristics of the path.
[0088] Step S370: Based on the local density in the spatial interval length sequence and the local bending degree in the direction change angle sequence, the optimized smooth observation path is segmented, and the straight crossing section, direction transition section and near arrival section in the path are identified, and the different sections are labeled with section category labels.
[0089] Local density refers to the degree to which the interval lengths between several consecutive sampling points in a spatial interval length sequence are generally small or large, reflecting whether the path shape in that area is crowded and tortuous or smooth and straight. Local curvature refers to the degree to which the deflection angles at several consecutive sampling points in a direction change angle sequence are generally large. Straight crossing sections are sections in the path with large spatial interval lengths and generally small direction change angles, usually corresponding to straight corridors or open spaces. Directional transition sections are areas in the path with significant cumulative direction change angles, usually corresponding to sections requiring adjustments to the direction of travel, such as turning or bypassing obstacles. Near-arrival sections are the last section of the path, approaching the candidate observation viewpoint. Segment category labels are type labels attached to each identified path segment. For example, a sliding window method is used to segment the path. A sliding window of a preset number of sampling points is set, and the window is slid along the path. Within each window, the mean and variance of the spatial interval length sequence, as well as the cumulative sum of the direction change angle sequence, are calculated. When the window slides to a point where the cumulative sum of directional change angles exceeds a preset angle threshold and the variance of the spatial interval length increases, the center point of the window is marked as a candidate point for a segment transitioning from a straight-through section to a directional transition section. Simultaneously, a certain number of sampling points are traced back from the endpoint of the detection path as nearby arrival sections. For path segments between two candidate points, if the cumulative sum of directional change angles is below the angle threshold and the average spatial interval length is above the length threshold, it is identified as a straight-through section; segments where the cumulative sum of directional change angles exceeds the threshold are identified as directional transition sections. A corresponding section category identifier is assigned to each segment, such as using enumerated values to label it as a straight-through type, directional transition type, or nearby arrival type.
[0090] Step S380: For the path sampling points in the straight-through section, establish a first mapping between the virtual camera's motion speed and the visual attention cost distribution information in that section and the average attention cost, so that the section with lower visual attention cost in the straight-through section receives a faster motion speed allocation, while the section with higher visual attention cost receives a relatively slower motion speed allocation.
[0091] The virtual camera's motion speed is its instantaneous linear velocity as it moves along the path. The average attention cost is the arithmetic mean of the visual attention priority values at all path sampling points within a straight-through segment. The first mapping is a function that maps the average attention cost to the motion speed, typically an inversely proportional or piecewise linearly decreasing function, such that lower attention costs result in faster speeds, and higher attention costs result in slower speeds. For example, for each path segment labeled as a straight-through segment, the attribute value of each path sampling point within that segment is queried from the visual attention cost distribution information, and the average of all attribute values is calculated as the average attention cost for that segment. A preset first mapping function is applied: when the average attention cost is low, the mapping function outputs a higher motion speed value as the baseline motion speed for that segment, which is limited to a preset maximum allowable speed; when the average attention cost is high, the mapping function outputs a lower motion speed value, but not lower than a preset minimum attention observation speed. This baseline motion speed is assigned to all path sampling points within the straight-through segment as the current preset speed value.
[0092] Step S390: For the path sampling points in the direction transition section, obtain the total direction change at both ends of the section. Use the ratio of the total direction change to the total path length of the section as the direction change density. Adjust the motion speed of the virtual camera according to the direction change density so that the sub-segment with a higher direction change density in the direction transition section moves slower. Use a quadratic velocity curve of deceleration followed by acceleration to distribute the motion speed within the direction transition section.
[0093] The total directional change is the sum of the cumulative deflection angles from the tangent vector at the start to the tangent vector at the end of the directional transition segment. The total path length is the total arc distance of the directional transition segment. The directional change density is the ratio of the total directional change to the total path length, reflecting the degree of turning per unit length. The quadratic velocity curve is a velocity profile that changes with time or path arc length in an upward-opening parabolic shape, with the velocity decreasing to its lowest point in the middle of the segment and the velocities connecting to adjacent segments at both ends. For each directional transition segment, the spatial angle between the tangent vectors at the starting and ending sampling points of the segment is calculated to obtain the total directional change. The total path length is obtained by summing the distances between all adjacent sampling points within the directional transition segment, and the directional change density is obtained by dividing the total path length by the total path length. Based on the directional change density, a preset velocity adjustment mapping table is consulted; the higher the density, the lower the minimum speed of the segment is set, i.e., the speed is significantly reduced in the middle of the segment. Within a segment, a velocity distribution curve is generated using quadratic interpolation: at the start of the segment, the velocity value is initialized to the velocity value at the end of the adjacent path segment; at the end of the segment, the velocity value transitions to the starting velocity value of the adjacent subsequent segment; a minimum velocity point is set in the middle of the segment based on the density of directional change, and a quadratic function velocity curve is fitted using the velocity values of these three points, and the velocity values corresponding to the sampling points on each path are assigned to the corresponding sampling points.
[0094] Step S3100: For the path sampling points in the near arrival section, based on the spatial distance from the starting point of the section to the target device, establish a slow stopping speed curve in which the movement speed decreases monotonically as the remaining distance shortens, so that the movement speed of the virtual camera gradually converges to the preset dwell speed when it approaches the end position.
[0095] The remaining distance is the arc length of the path from the current path sampling point within the adjacent arrival segment to the final candidate viewpoint. The deceleration speed curve is a speed planning strategy where the speed smoothly decreases as the remaining distance decreases. It typically employs a sine or polynomial-based gradual acceleration / deceleration curve, aiming for a smooth convergence of speed rather than an abrupt stop upon reaching the endpoint. The dwell speed is the extremely low or zero speed at which the virtual camera maintains observation at the endpoint. For example, first calculate the total arc length of the adjacent arrival segment. For each path sampling point within this segment, calculate the remaining arc length from that sampling point along the path to the segment's endpoint. Apply a deceleration function with the remaining distance as the independent variable: when the remaining distance is greater than a certain deceleration initiation threshold, the virtual camera maintains its current speed upon entering the segment; when the remaining distance is less than this threshold, the speed decreases according to a cosine deceleration curve, i.e., the speed equals the dwell speed plus the difference between the entry speed and the dwell speed multiplied by a mapped cosine value. The phase of this cosine value is determined based on the proportion of the remaining distance to the total length of the deceleration segment. At the endpoint, the speed smoothly reaches the preset dwell speed value. Write the calculated velocity configuration of each sampling point into the velocity attribute of the corresponding sampling point.
[0096] Step S3110: The speed allocation results of the straight crossing section, the directional transition section and the adjacent arrival section are fused at the section boundary to eliminate speed jumps at the section boundary and generate a continuous motion speed configuration scheme covering the entire optimized smooth observation path as the virtual camera motion rhythm information.
[0097] Velocity continuity fusion involves smoothly mixing the velocity values allocated to each side near the boundary sampling points of two adjacent segments to avoid instantaneous abrupt changes in velocity values during segment transitions. The virtual camera motion rhythm information is the final output, configuring a continuous and smooth time-position velocity configuration scheme for each path sampling point along the entire path. For example, each segment boundary point is identified, i.e., the last sampling point of the previous segment and the first sampling point of the next segment. Several sampling points are taken on both sides of this boundary point to form a fusion transition window. Within the transition window, a linear weighted mixing is applied to the velocity values: the velocity value at the boundary point itself is the average of the allocated values from both segments; gradually, the weighting coefficients change linearly towards both sides, so that the velocity value closer to the previous segment gradually approaches the result of the allocation function of the previous segment, and the velocity value closer to the next segment gradually approaches the result of the allocation function of the next segment. After performing this operation on all the intersections of the segments, a continuous velocity value sequence of all sampling points along the entire path is obtained. This sequence is encapsulated and output as the motion rhythm information of the virtual camera, which is used to drive the virtual camera to move along the path and update each frame.
[0098] Step S400: Move the virtual camera along the optimized smooth observation path. As the virtual camera moves along the path, dynamically adjust the visual transparency properties of non-interested components within a preset range around the target device by executing shader scripts. At the same time, overlay a pulsating halo visual representation with a real-time mapping relationship between the rendering and the quantification information of the urgency of the event onto the target device.
[0099] Optionally, step S400 may specifically include the following steps S410 to S460: Step S410: In each frame where the virtual camera moves along the optimized smooth observation path, obtain the current spatial position of the virtual camera and the spatial position of the target device, determine the dynamic area of interest centered on the target device, and the dynamic area of interest scales synchronously as the distance between the virtual camera and the target device changes.
[0100] The dynamic region of interest (MOI) is a three-dimensional spatial region centered on the target device whose size dynamically adjusts with the camera's distance. It defines which surrounding components should remain opaque to indicate focus and which can be made transparent. Synchronous scaling involves appropriately shrinking this MOI when the virtual camera is far from the target device to maintain a relatively stable visual size of the MOI on the screen; and appropriately expanding the MOI when the camera moves closer. For example, each frame the system reads the current spatial coordinates of the virtual camera and the target device, calculating the Euclidean distance between the two points. This distance is input into a preset scaling function, which takes the form that the MOI radius is equal to the square root or linear ratio of the product of a base radius value and the distance and a scaling factor. This calculates the MOI radius for the current frame, and a sphere or capsule-shaped region is established with the geometric center of the target device as the center as the MOI.
[0101] Step S420: Render and classify the building components in the scene. Components belonging to the same device family as the target device and components located within the dynamic interest area are marked as interest components. Components located outside the dynamic interest area and not belonging to the same device family are marked as non-interest area components.
[0102] A device family is a set of devices that belong to the same system or function as the target device, according to the device classification system in the Building Information Model (BIM). For example, all air vents and ducts in the same air conditioning and ventilation system belong to the same device family. Rendering classification is the process of classifying and marking all building components that need to be drawn in the scene before each frame is rendered. All renderable building component nodes in the scene graph are traversed. For each component, its device family identifier is first checked to see if it matches the device family identifier of the target device. If they match, it is directly marked as a component of interest. If they do not match, the spatial relationship between the center of the 3D bounding box or the entire component and the dynamic interest area determined in step S410 is further calculated. The intersection test between the bounding box and the sphere is used. If the component is wholly or partially within the dynamic interest area, it is also marked as a component of interest. Components that neither meet the device family matching conditions nor are completely outside the dynamic interest area are marked as non-interest area components.
[0103] Step S430: Submit an opacity adjustment command for a component in a non-interested area to the rendering pipeline. The opacity adjustment command queries a preset distance-opacity mapping table based on the shortest spatial distance from the component in the non-interested area to the boundary of the dynamically interested area, obtains the target opacity value, and writes it into the material properties of the corresponding component.
[0104] Optionally, step S430 may specifically include the following steps S431 to S436: Step S431: For each non-interested region component, extract the projection area of its 3D bounding box in screen space, discretize the projection area into an array of screen space sampling points, and query the depth buffer to obtain the scene depth value at each screen space sampling point.
[0105] The projection region of a 3D bounding box in screen space is the smallest bounding rectangle formed by transforming the eight vertices of the 3D bounding box of a component to a 2D screen coordinate system using a view projection matrix. The screen space sampling point array is a set of sampling point positions uniformly distributed by pixel rows and columns within this 2D projection rectangle. The depth buffer is a 2D data buffer in the rendering pipeline that stores the depth value of each pixel for currently drawn primitives. For example, using the view matrix and projection matrix of the current rendering frame, matrix multiplication is performed on the eight corner points of the 3D axis-aligned bounding box of a component in a non-interested region to obtain eight screen coordinate points. Based on these, the smallest bounding rectangle of the screen space axis alignment is calculated as the projection region. Within this rectangle, screen space sampling point coordinates are generated at intervals of several pixels, forming a sampling point array. For each sampling point in the array, its screen coordinates are used to query the depth buffer texture to read the stored normalized depth value.
[0106] Step S432: For each screen space sampling point within the projection area of the non-interested area component, compare the scene depth value at the sampling point with the depth value of the target device at the corresponding position in the screen space point by point, and count the proportion of the number of sampling points in the projection area whose scene depth value is less than the depth value of the target device to the total number of sampling points in the projection area, as a descriptive quantity of the degree of occlusion of the non-interested area component on the target device.
[0107] The occlusion degree descriptor is the extent to which a non-interested region component covers and occludes the target device in the image, such as 0-1. For example, for each sampling point within the projection area obtained in step S431, the scene depth value at that sampling point's location is read from the depth buffer and compared with the depth value at the same location within the target device's screen projection area. If the scene depth value is less than the target device depth value, it indicates that the non-interested region component is closer to the camera and occludes the target device in the image, and the occlusion count is increased. After counting all sampling points, the occlusion count is divided by the total number of sampling points within the projection area; the resulting ratio is the occlusion degree descriptor of the non-interested region component on the target device.
[0108] Step S433: Using the boundary of the dynamically concerned region as the reference surface, calculate the shortest spatial distance from the geometric center of the non-concerned region component to the boundary surface of the dynamically concerned region, and map the shortest spatial distance to the basic transparency component of the distance association.
[0109] The distance-related basic transparency component is a basic transparency value determined solely by the spatial distance between the component and the region of interest; the greater the distance, the more the transparency component tends to make the component more transparent. Using the dynamic region of interest boundary sphere generated in step S410 as a reference surface, the distance from the geometric center of the 3D bounding box of the component in the non-region of interest to the nearest point on this sphere is calculated. Specifically, the calculation method is as follows: first, calculate the vector from the geometric center to the geometric center of the target device; subtract the radius of the dynamic region of interest from the length of this vector; and take the larger of the resulting value and zero as the shortest spatial distance. Then, this distance is input into a preset mapping function, which uses a clamped linear mapping. Between 0 and the maximum distance threshold, the distance is linearly mapped to the basic transparency component; if the distance exceeds the maximum distance threshold, the basic transparency component takes the value of the preset maximum transparency state.
[0110] Step S434: Map the occlusion degree description to the occlusion-related transparency correction component. The higher the occlusion degree of the non-interest area component, the more likely it is to increase the transparency.
[0111] The occlusion-related transparency correction component is an increment in transparency value applied above the base transparency, based on the degree of occlusion the component places on the target device. For example, the occlusion degree description calculated in step S432 is input into a monotonically increasing mapping function, which linearly or non-linearly maps the occlusion degree of 0-1 to a range of values for a transparency correction component. When the occlusion degree is zero, the correction component is 0; when the occlusion degree is the maximum value of 1, the correction component reaches the maximum preset correction value, which causes the component to tend towards a higher transparency state.
[0112] Step S435: Fuse the distance-related basic transparency component and the occlusion-related transparency correction component to generate a target transparency value, so that non-interest area components that are farther away from the dynamic interest area and occlude more severely on the target device obtain higher transparency.
[0113] Blending is an operation that combines two transparency components into a final transparency value through some arithmetic operation, such as adding them and clamping them to a valid range. For example, the distance-related basic transparency component obtained in step S433 and the occlusion-related transparency correction component obtained in step S434 are added to obtain a preliminary blended value. Then, a maximum value clamping function is used to limit the result to the range allowed by the material transparency channel, such as between 0 and 1. This final value is the target transparency value. Using this blending strategy, a component in a non-interested area that is both far from the dynamically interested area and severely occludes the target device on the screen will obtain the highest target transparency value, presenting the most transparent effect.
[0114] Step S436: Switch the material descriptor of the non-interest area component from the original opaque mode to the semi-transparent blending mode, write the target transparency value into the transparency channel of the material descriptor, and submit it to the rendering pipeline to replace the original transparency setting of the non-interest area component in the current frame drawing.
[0115] A material descriptor is a data block or structure that contains all the material property settings required to draw a component, such as shader program pointers, texture binding lists, rendering status flags, and uniform parameter values. Semi-transparent blending mode is a rendering state in which the graphics processor blends the current fragment color with the existing color in the framebuffer according to the transparency ratio during the pixel output stage. For example, first copy the original material descriptor of the component in the non-interested area. In the copy, set the blending mode enable bit in its rendering status flag to the "on" state, and set the source blending factor and target blending factor to source alpha and -1 source alpha, respectively; this is the standard alpha blending configuration. Then, the target transparency value generated in step S435 is written to the color alpha channel constant register of the copied material descriptor. When generating the drawing instructions for this frame, the modified material descriptor and component geometry data are submitted to the rendering pipeline, causing the component to be drawn with semi-transparent blending at the specified transparency in the current frame.
[0116] Step S440: Modify the material properties of the target device and inject the pulsed halo shader parameters. The pulsed halo shader parameters include the halo pulse phase and the halo amplitude. The halo pulse phase changes periodically over time, and the halo amplitude is dynamically adjusted according to the current value of the event urgency quantification information.
[0117] The halo pulsation phase is the current phase angle that controls the periodic brightness changes of the halo effect over time, usually expressed in radians or as a ratio within a normalized period. The halo amplitude is a scalar value representing the amplitude of the halo effect's change from weakest to strongest, determining the halo's prominence. In each frame, the current value of the halo pulsation phase is calculated by multiplying the current accumulated scene runtime by a preset pulsation angular frequency; its value cycles periodically between zero and twice pi. Simultaneously, the current value of the event urgency quantification information is read in real-time and converted into a halo amplitude value using a mapping function. The closer the urgency quantification information is to the high urgency range, the larger the halo amplitude. These two parameters are packaged into a shader unified variable structure and written into the corresponding parameter register of the halo shader script used by the target device before submitting the rendering command to the target device, thus completing the dynamic modification of material properties.
[0118] Step S450: Perform scene rendering, render the components of interest according to their original material properties, render the components of non-interest areas with semi-transparent blending according to the target transparency value, and overlay a pulsed halo rendering channel on the target device.
[0119] Scene rendering is the process by which the graphics processor sequentially renders all components in the scene according to the rendering instruction queue. The original material properties are the native material settings of the components before any transparency adjustments. The overlay pulsating halo rendering channel is an additional one or more post-processing halo rendering operations performed after normal color rendering on the target device. Specifically, first, all geometry rendering instructions marked as components of interest are submitted; these instructions use their original material descriptors for opaque rendering. Then, all rendering instructions for components in non-interested areas are submitted, using the semi-transparent material descriptors modified in step S436 for transparent blending rendering. Since semi-transparent rendering requires depth sorting, the queue of components in non-interested areas has been depth-sorted from back to front before submission. After completing the above basic rendering, an additional full-screen or model outline rendering channel is submitted for the target device geometry. A pulsating halo shader script is bound to this channel and set to overlay blending mode, overlaying the halo effect onto the already rendered target device pixels to generate a glowing effect.
[0120] Step S460: When the camera moves to different positions, update the dynamic area of interest in real time, redetermine the components in the non-interest area and update their target transparency value, and dynamically refresh the halo amplitude as the urgency of the event changes.
[0121] Real-time updates involve re-executing the relevant sub-steps in steps S410 to S450 as the camera position changes with each frame and the urgency data is refreshed. For example, in each frame's main rendering loop, the camera pose is re-acquired, the distance between the virtual camera and the target device is recalculated to update the dynamic area of interest, and scene components are re-traversed to perform rendering classification, determining the set of non-interested components for the current frame. The occlusion level and distance of these components are recalculated, and the target transparency value is updated. Simultaneously, the latest event urgency quantification information is retrieved from the building monitoring system; if the value changes compared to the previous frame, the new halo amplitude is injected into the halo shader parameters. Through this frame-by-frame update mechanism, a continuous and dynamic response of transparency attributes and halo effects to camera movement and event state changes is achieved.
[0122] Optionally, in step S400, overlaying a pulsating halo visual representation with a real-time mapping relationship to the event urgency quantification information onto the target device may specifically include the following steps S470~S4120: Step S470: Generate a multi-layer halo diffusion ring around the screen space projection outline of the target device. Each halo diffusion ring is composed of a closed pixel chain offset outward along the normal direction of the screen space projection outline. The radial spacing between adjacent layers is dynamically expanded and contracted according to the urgency information of the event.
[0123] The screen-space projection contour is the closed polygonal outline of the outer edge of the two-dimensional projection area of the target device's three-dimensional geometry after it is projected onto the near plane in the current view. Multi-layered halo diffusion rings are a series of closed loop regions with equal or gradually varying spacing formed by expanding outwards layer by layer along the contour normal direction outside the projection contour. A closed pixel chain is a set of continuous pixel sequences that constitute the halo diffusion rings; these pixels form a closed loop around the projection contour. Radial spacing is the distance between two adjacent diffusion ring layers. During step S470, firstly, at the vertex or geometry shading stage of the graphics processor pipeline, or through the screen-space post-processing stage, the depth and marker information of the target device in screen space after rendering are extracted, and the screen-space projection contour pixels are obtained using an edge detection operator. Then, pixel chain tracing is performed on the contour curve to obtain the closed pixel chain as the innermost reference ring. The method for generating multi-layered halo diffusion rings is as follows: For each pixel in the current pixel chain, calculate the contour normal direction at that pixel. This normal direction is obtained by finding the perpendicular direction of the line connecting the pixel's immediate and adjacent pixels. Offset the pixel coordinates outward along this normal direction by a radial spacing, thus generating the next pixel chain. The initial value of the radial spacing is a base interval of pixels, multiplied by a scaling factor dynamically calculated based on the urgency of the event. The higher the urgency, the larger the scaling factor, and the more dynamically the radial spacing of the halo increases, resulting in a wider halo diffusion range.
[0124] Step S480: For each pixel on the halo diffusion ring, calculate the shortest distance from the pixel to the screen space projection outline. Based on the radial position of the shortest distance in the multi-layer halo diffusion ring, assign an initial color transparency weight to the pixel, so that the closer the radial position is to the screen space projection outline, the lower the initial color transparency weight.
[0125] The initial color transparency weight is the base transparency alpha value of each halo diffusion ring pixel before the overlay of time-lapse modulation. Radial position is the layer number or actual distance of the pixel's layer in the outward radiating direction from the projected outline. For example, for each pixel in the generated multi-layer halo diffusion ring, the Euclidean distance from that pixel to the nearest pixel on the screen-space projected outline is calculated; this distance is essentially equal to the layer number of the pixel multiplied by the radial spacing. Using this distance or layer number as the independent variable, a preset one-dimensional decay texture or function is queried, which outputs the initial color transparency weight. This decay function is designed to output a very low transparency weight at the outline boundary, i.e., near-complete transparency. As distance increases, the transparency weight first rapidly increases to a peak to form a bright halo ring, and then slowly decays. This results in the innermost layer, immediately adjacent to the device outline, being almost colorless and transparent, with the outermost layers exhibiting the most pronounced halo color, and the outermost layer gradually fading outwards.
[0126] Step S490: Convert the event urgency quantification information into a halo pulsation driving signal. The halo pulsation driving signal exhibits a periodic oscillation pattern as time progresses. Superimpose the halo pulsation driving signal onto the initial color transparency weight, so that the color transparency weight of each pixel on each layer of halo diffusion ring fluctuates back and forth around its initial value over time.
[0127] The halo pulsation driving signal is a periodic fluctuation function value with time as the independent variable, used to create a breathing-like pulsating effect in the halo transparency. The periodic oscillation pattern is that the signal waveform has a repetitive periodicity, such as a sine wave or a triangular wave. For example, during step S490, the current accumulated time is multiplied by an urgency-sensitive pulsation frequency coefficient as the phase, and its sine value is calculated to obtain an original pulsation signal oscillating between -1 and +1. To allow this signal to directly affect the transparency weight, the signal is multiplied by a modulation amplitude coefficient associated with urgency, then additively superimposed with the initial color transparency weight, and the result is clamped within the effective transparency range. When the pulsation signal is at a peak, the transparency weight increases, and the halo becomes brighter and more prominent; at a trough, the transparency weight decreases, and the halo weakens. The higher the urgency, the larger the modulation amplitude coefficient, the greater the fluctuation amplitude of the transparency weight, and the more intense the visual halo flickering.
[0128] Step S4100: For each pixel on the halo diffusion ring, the color saturation component and brightness component of the pixel are synchronously modulated according to the instantaneous phase value of the halo pulsation driving signal, so that when the halo pulsation driving signal is at its peak phase, the halo color exhibits enhanced saturation and brightness, and when it is at its trough phase, the halo color exhibits weakened saturation and brightness.
[0129] The color saturation component represents the vividness of a color, while the brightness component represents its lightness or darkness. Synchronous modulation adjusts these two components synchronously using the same pulsating signal phase. For the original halo base color of each pixel on the halo diffusion ring, it is converted from the red-green-blue color space to the hue-saturation-brightness color space. The instantaneous phase value of the halo pulsation drive signal of the current frame is obtained, and this value is mapped from the range of [-1~1] to a saturation modulation factor and a brightness modulation factor, both varying between a few tenths and a few tenths. The original saturation is multiplied by the saturation modulation factor, and the brightness is multiplied by the brightness modulation factor, then the color is converted back to the red-green-blue space for output. When the pulsating signal is at its peak phase, the modulation factor is greater than 1, both saturation and brightness are enhanced, and the halo is more vivid and bright; at its trough phase, the modulation factor is less than 1, and the color tends to be darker, creating an effect of color and brightness breathing synchronously.
[0130] Step S4110: Color interpolation is performed on the pixel band between adjacent halo diffusion rings in the screen space to make the halo present a smooth color gradient transition from the edge of the screen space projection outline outward. The mixing ratio in the interpolation process is also affected by the instantaneous phase value of the halo pulsation driving signal, resulting in pulsation shift.
[0131] The pixel band between adjacent halo diffusion rings is the area of unassigned pixels located between two generated pixel chains. Color interpolation fill is performed by bilinear or layer-by-layer gradient interpolation to fill the pixel color in the intermediate gap area based on the color values of the inner and outer layers. Pulse offset is a small offset that varies with the pulsation signal when calculating the interpolation blending ratio, causing the color transition position generated by the interpolation to shift periodically inward and outward. For example, for each pair of adjacent halo diffusion rings of layer i and layer i+1, the correspondence between each pixel in layer i and its nearest neighbor pixel in layer i+1 is determined, and a line segment connecting the pixel pairs is constructed. For each intermediate pixel on the line segment, the blended color is calculated based on the ratio r of its distance to layer i and layer i+1. The blending formula is: color equals inner layer color multiplied by the blending ratio plus outer layer color multiplied by the blending ratio complement. In the absence of pulsation influence, the blending ratio is directly determined by the ratio of the distance from the pixel to the two layers. After adding the pulsation offset, the mixing ratio will be increased by a small offset value that is proportional to the instantaneous phase value of the halo pulsation drive signal. This causes the halo's gradient transition zone to move inward and outward in a cyclical manner along the radial direction with the pulsation, further enhancing the halo's dynamic breathing effect.
[0132] Step S4120: Alpha blending of all halo diffusion layers with the original rendering result of the target device itself in the frame buffer after color interpolation and filling is completed, to generate the final pulsating halo visual effect superimposed on the target device.
[0133] Alpha blending is a linear mixing operation performed on the halo pixel's transparency channel value, combining the halo color with the target device's original color already rendered in the frame buffer using a source alpha and a factor minus one source alpha. For example, during step S4120, the halo pixel set obtained after step S4110 is submitted for rendering as a full-screen overlay texture or polygon primitive. For each halo pixel, its output color is the halo color, and its alpha value is the final transparency weight after pulse modulation. The pixel blending unit of the graphics pipeline mixes this halo pixel color with the target device's original color stored in the same screen location in the frame buffer according to the alpha blending equation, completing the semi-transparent overlay of the halo on the target device's original image. For the target device's own pixels within the screen space projection outline, there are no halo pixels covering them, and their original colors remain unchanged. Finally, a complete target device overlay pulsed halo visual representation is formed in the frame buffer.
[0134] Step S500: After the virtual camera moves to the end position of the optimized smooth observation path, the current 3D view screen is processed to detect blank areas without models to obtain the position information of blank areas in the screen. The emergency information presentation panel associated with the building monitoring event alarm information is anchored and rendered in the screen area indicated by the position information of blank areas in the screen. Based on the real-time determination of the occlusion status of the line of sight between the target device in the screen and the virtual camera viewpoint, the visual display level of the emergency information presentation panel and the presentation form of the guide line connecting the emergency information presentation panel and the target device are dynamically adjusted.
[0135] Optionally, step S500 may specifically include the following steps S510 to S560: Step S510: When the virtual camera reaches the end position of the optimized smooth viewing path, capture the depth buffer and color buffer data of the current frame.
[0136] The depth buffer data is a two-dimensional array of normalized depth values for each pixel stored in the graphics processor's depth buffer after the current frame is rendered. The color buffer data is a two-dimensional array of red, green, and blue color values for each pixel in the current frame's color buffer. For example, using the frame capture interface provided by the 3D rendering engine, after the virtual camera reaches its destination along the path and completes normal rendering of a frame, the contents of the current frame's depth buffer in graphics memory are read into a two-dimensional floating-point array, and the contents of the color buffer are read into a two-dimensional color value array, serving as the basis for subsequent image analysis.
[0137] Step S520: Based on the depth buffer data, identify the continuous blank pixel regions in the image that are not occupied by any 3D model, extract the contours and filter the area of the continuous blank pixel regions to obtain a set of candidate blank regions that meet the preset area conditions.
[0138] A continuous region of blank pixels is a spatially connected pixel region in the depth buffer data whose depth value is equal to the depth value of the far clipping plane or the infinity marker. Contour extraction involves boundary tracking of the blank regions to obtain their outer contour polygons. Area filtering removes blank regions whose pixel areas are too small to accommodate the emergency information display panel. The candidate blank region set consists of several larger blank regions remaining after area filtering. In step S520, the depth buffer data is first binarized, a depth threshold is set, and pixels with depth values greater than or equal to the threshold are marked as foreground pixels of empty regions, while the rest are marked as background pixels occupied by the model. A connected component labeling algorithm is performed on the binary image to group adjacent blank pixels into connected components, and each component is assigned a label. For each connected region corresponding to a label, a contour extraction algorithm, such as the Moore neighborhood tracking algorithm, is used to obtain the sequence of closed contour vertices of the region. The pixel area of the region enclosed by each contour is calculated and compared with a preset minimum panel area threshold. Regions with areas greater than or equal to the threshold are retained to form a candidate blank region set.
[0139] Step S530: In the candidate blank area set, calculate the distance between the geometric center of each candidate blank area and the projection center of the target device in the screen space, and select the candidate blank area with the smallest distance as the panel anchoring area.
[0140] The projection center of the target device in screen space is the projection coordinate of the target device's 3D bounding box geometric center after transformation by the view projection matrix. The panel anchoring area is the candidate blank area ultimately selected as the placement of the emergency information display panel. First, the projection coordinates of the target device's bounding box geometric center in screen space are calculated. For each candidate blank area in the set of candidate blank areas obtained in step S520, the geometric center coordinates of its outer contour are calculated, i.e., the average of the horizontal and vertical coordinates of all vertices of the contour. The planar Euclidean distance between this geometric center coordinate and the target device's screen projection center coordinate is calculated. The distance values are sorted in ascending order, and the candidate blank area with the smallest distance value is selected as the panel anchoring area. This selection strategy ensures that the emergency information display panel is closest to the target device in the image, facilitating the establishment of a visual connection.
[0141] Step S540: Set the display coordinates of the emergency information presentation panel to the geometric center of the panel anchoring area, and call the panel layout program to fill in the key fields in the building monitoring event alarm information into the panel for rendering.
[0142] Display coordinates are the anchoring coordinates of the emergency information presentation panel in screen space or a 3D interface. The panel layout program is a user interface subsystem responsible for automatically arranging and generating panel grids and texture maps based on the information content. During step S540, the geometric center coordinates of the panel anchoring area determined in step S530 are transformed to their corresponding positions in the interface coordinate system and set as the anchor point display coordinates of the emergency information presentation panel. Then, the panel layout program is called, passing in the building monitoring event alarm information entity obtained in step S100. The panel layout program extracts key fields from the alarm information, such as event type description, location label, urgency level text, and suggested handling measures, and lays these field strings in a pixel buffer of a panel texture according to preset font, size, and arrangement rules. Finally, the panel texture is submitted for rendering in the form of a panel rectangle, displaying it at the determined anchoring position.
[0143] Step S550: Project a guide line from the anchor edge of the emergency information display panel to the screen projection edge of the target device. Determine whether each sampling point on the guide line is occluded by other 3D models through the sampling depth buffer. If occlusion exists, cut the guide line at the pixel position that matches the depth value of the occluder and generate a turning point to extend to the target device.
[0144] Optionally, step S550 may specifically include the following steps S551 to S556: Step S551: Obtain the rectangular area occupied by the emergency information display panel in the screen space, and select the midpoint of the side in the rectangular area that is closest to the center of the screen projection of the target device as the starting point of the guide line.
[0145] The occupied rectangular area is the two-dimensional axis-aligned rectangular range occupied by the emergency information display panel in the screen space. The guide line starting point is the initial screen coordinate point from which the guide line originates from the panel. For example, during step S551, the four sides of the occupied rectangular area of the panel in the screen space are calculated based on the panel's display coordinates and the panel's preset width and height. The distance from the target device's screen projection center coordinates to the midpoint coordinates of each side is calculated, and the midpoint coordinates of the side with the smallest distance are selected as the guide line starting point.
[0146] Step S552: Obtain the edge contour of the screen projection area of the target device, and select the point on the edge contour that is closest to the starting point of the guide line as the initial endpoint of the guide line.
[0147] The edge contour of the screen projection area is the outer contour of the two-dimensional projection area of the target device in the current image. The initial endpoint of the guide line is the endpoint of the line segment directly connecting the starting point of the guide line to the target device, without considering occlusion. For example, the pixel chain of the screen space projection contour of the target device is obtained in a manner similar to that in step S470. Each pixel coordinate on the contour is traversed, and its Euclidean distance from the starting point of the guide line is calculated. The contour point coordinate with the shortest distance is found and set as the initial endpoint of the guide line.
[0148] Step S553: Initialize the guide line point sequence by adding the guide line starting point to the guide line point sequence.
[0149] The guide line point sequence is an ordered dynamic coordinate array used to record the key inflection points traversed by the guide line. For example, an empty coordinate list can be created as the guide line point sequence, and the coordinates of the guide line start point determined in step S551 can be appended to the end of the sequence.
[0150] Step S554: Perform screen space sampling by step size between the starting point of the guide line and the initial ending point of the guide line. For each sampling point, query the depth buffer to obtain the scene depth value at that sampling point.
[0151] Screen space sampling by step size involves taking a series of screen coordinate points as sampling points along a straight line segment from the start point to the initial end point of the guide line, with a fixed pixel interval as the step size. For example, the total pixel distance from the start point to the initial end point of the guide line is calculated and divided by a preset fixed step size to obtain the number of sampling points. A linear rasterization algorithm is used to calculate the screen coordinate array of these sampling points. For each sampling point, the depth value at the corresponding position in the depth buffer data intercepted in step S510 is queried. If the coordinates of the sampling point are outside the buffer range, it is marked as invalid.
[0152] Step S555: Compare the scene depth value at each sampling point with the scene depth value at the center point of the screen projection of the target device. When it is found that the scene depth value of a certain sampling point is less than the depth value of the target device and the difference exceeds the preset tolerance, record the sampling point as the occlusion start point, and search for unoccluded connection points from the occlusion start point to the projection line of the screen projection area boundary of the target device.
[0153] The preset tolerance is a very small depth difference threshold used to tolerate minute depth floating-point errors. The occlusion start point is the position on the guide path where the foreground element begins to occlude. The unoccluded connection point is the unoccluded position found when reprojecting from the occlusion start point to the target device, capable of reaching the target device's outline. For example, the depth value of the target device's screen projection center point in the depth buffer is first obtained as the target depth reference value. The scene depth value of each sampling point is checked sequentially along the sampling sequence. If the scene depth value of a sampling point is less than the target depth reference value minus the preset tolerance, it indicates that the point is occluded by a foreground object. The sampling point where this first occurs is recorded as the occlusion start point. Starting from this occlusion start point, instead of proceeding along the original straight line segment, test connection segments are projected to multiple candidate points on the boundary of the target device's screen projection area, and the depth values on these new segments are sampled. A completely unoccluded connection segment that can connect to the target device's outline is found, and the endpoint of this segment is recorded as the unoccluded connection point.
[0154] Step S556: Add the connection point as a turning point to the guide line point sequence to generate a broken line segment guide line that extends from the starting point of the guide line through the turning point to the connection point and finally to the target device.
[0155] The broken line guide line is a broken line graphic formed by connecting multiple straight line segments end to end, and its path is defined by the guide line point sequence. Specifically, the connection points found in step S555 are used as inflection point coordinates and added to the guide line point sequence. Then, the initial and final endpoints of the guide line are also added to the end of the sequence, or the connection points are directly connected to the corresponding contour points of the target device. The final guide line point sequence contains ordered coordinates of the start point, inflection point, and endpoint. Based on this point sequence, a broken line segment geometric primitive is generated, for example, by dynamically generating a series of slender triangles or line primitives, which are then submitted for rendering and displayed on the screen as a broken line guide line from the emergency information display panel to the target device.
[0156] Step S560: Based on the comparison between the depth value of the pixel where the target device is located in the depth buffer and the depth value at the cut-off point of the guide line, determine the front-to-back occlusion relationship between the emergency information display panel and the target device, and adjust the visual display level of the emergency information display panel accordingly so that the panel is never obscured by the target device in the picture.
[0157] Optionally, step S560 may specifically include the following steps S561 to S566: Step S561: Obtain the depth values of all pixels within the screen projection area of the target device in the depth buffer, and calculate their average depth value as the representative depth value of the target device.
[0158] The average depth value is a single depth scalar obtained by arithmetically averaging the depth values of all pixels within the projection area of the target device's screen. For example, a pixel mask of the target device's screen space projection area is obtained, all pixels within the mask are traversed, the depth value of each pixel is read from the depth buffer, and the sum of these values is divided by the total number of pixels to obtain the representative depth value of the target device.
[0159] Step S562: Obtain the depth value at the cutoff point closest to the emergency information display panel on the guide line, and use it as the representative value of the obstruction depth.
[0160] The cutoff point is the pixel on the guide line that is first occluded by another object, as recorded in step S555; that is, the occlusion start point. For example, the screen coordinates of the occlusion start point recorded in step S555 are read, and the depth value at that coordinate is retrieved from the depth buffer and used as the representative value of the occluder's depth. If there are no cutoff points on the entire guide line, the representative value of the occluder's depth is set to a maximum value, indicating that there is no foreground occlusion.
[0161] Step S563: Compare the representative depth value of the target device with the representative depth value of the obstruction. If the representative depth value of the target device is less than the representative depth value of the obstruction, the target device is determined to be in front of the obstruction; otherwise, the target device is determined to be behind the obstruction.
[0162] A smaller target device depth value indicates a closer distance to the camera. A numerical comparison is performed between the two depth values. If the target device depth value is less than the occlusion depth value, the target device is closer to the camera, and is determined to be in front of the occlusion. If the target device depth value is greater than the occlusion depth value, the target device is occluded by the occlusion, and is determined to be behind the occlusion. When the difference between the two values is within the tolerance range, it can be considered as no occlusion.
[0163] Step S564: When it is determined that the target device is in front of the obstruction, set the rendering order of the emergency information presentation panel to be above all 3D models and keep the panel completely opaque.
[0164] The panel is given the highest rendering queue priority above all 3D models, ensuring its pixels always cover the rendering results of all scene models. For example, the rendering queue identifier for the panel component in the rendering engine is set to the overlay queue, which renders after all opaque and semi-transparent scene geometry, ensuring the panel appears before all 3D models. Simultaneously, the panel material's primary color alpha channel is set to a completely opaque value for clear readability.
[0165] Step S565: When it is determined that the target device is behind an obstruction, the rendering order of the emergency information display panel is set to be behind the obstruction but in front of the background. At the same time, a preset semi-transparent effect is applied to the emergency information display panel to express the state of the target device being obstructed.
[0166] Behind the occlusion but in front of the background, the panel's depth rendering level is between the foreground occlusion and the far background, making the panel visually appear to be behind the occlusion. A semi-transparent effect reduces the overall opacity of the panel, allowing the viewer to perceive the spatial relationship of an object obscuring it. The rendering queue identifier for the emergency information display panel is set to a semi-transparent geometry queue, with a depth offset value matching the depth value of the occlusion. Simultaneously, the panel material color alpha channel is set to a preset semi-transparency value, such as approximately 50% transparency. In the image, the panel will appear semi-transparent behind the occlusion; if the target device is obscured by the occlusion, the panel will also appear semi-transparent to indicate an obstructed view.
[0167] Step S566: Write the rendering queue label corresponding to the visual display level into the drawing instructions of the emergency information presentation panel so that the hierarchy is always followed in the subsequent frame drawing process.
[0168] The rendering queue label is a grouping index value used internally by the rendering engine to sort drawing commands. For example, during step S566, a corresponding rendering queue label integer value is generated according to the hierarchy strategy determined in step S564 or S565, and this label value is written to the data member of the emergency information presentation panel rendering component. In each subsequent frame drawing loop, the rendering pipeline automatically places the panel's drawing commands into the correct queue position based on this label value, ensuring that the visual display hierarchy of the panel and the occlusion relationship determination results remain consistent.
[0169] The above description is merely an embodiment of the present invention and is not intended to limit the scope of protection of the present invention. Any modifications, equivalent substitutions, and improvements made within the spirit and scope of the present invention are included within the scope of protection of the present invention.
Claims
1. A method for visualizing monitoring information applied to smart buildings, characterized in that, include: Obtain building monitoring event alarm information, which includes spatial coordinates of the event location, device type information that triggered the alarm, and quantitative information on the urgency of the event associated with the device type information; Based on the spatial adjacency data of the building information model, combined with the description information of the spread range of the event's impact determined by the spatial coordinate information of the event's location and the quantitative information of the event's urgency, and the attenuation mapping relationship of urgency with spatial distance, visual attention cost distribution information in three-dimensional space is generated. Using the pose state information of the current virtual camera in the 3D scene as the starting point for path planning, and the visual attention cost distribution information as the cost constraint for path search, a path solving process is performed to obtain an optimized smooth observation path. The virtual camera is moved along the optimized smooth observation path. During the movement of the virtual camera along the path, the visual transparency properties of non-interested area components within a preset range around the target device are dynamically adjusted by executing shader scripts. At the same time, a pulsating halo visual representation with a real-time mapping relationship to the event urgency quantification information is superimposed and rendered on the target device. After the virtual camera moves to the end position of the optimized smooth observation path, the current 3D view screen is processed to detect blank areas without models to obtain blank area position information. The emergency information presentation panel associated with the building monitoring event alarm information is anchored and rendered within the screen area indicated by the blank area position information. Based on the real-time determination of the line of sight obstruction between the target device's presentation area in the screen and the virtual camera's viewpoint, the visual display level of the emergency information presentation panel and the presentation form of the guide line connecting the emergency information presentation panel and the target device are dynamically adjusted.
2. The method according to claim 1, characterized in that, The process involves generating visual attention cost distribution information in three-dimensional space based on spatial adjacency data from the Building Information Model (BIM), combined with spatial coordinate information of the event's location, quantitative information on the event's urgency, descriptions of the event's impact spread, and a decay mapping relationship between urgency and spatial distance. This includes: The building information model is divided into spatial units, and the interior space of the building is divided into a set of spatial units with adjacency relationships. The geometric boundary information of each spatial unit and the connectivity interface information between adjacent spatial units are extracted. Using the spatial coordinates of the location where the event occurred as a positioning reference, the starting spatial unit containing the positioning reference in the spatial unit set is determined, and the path distance parameter of the starting spatial unit is set as the initial distance value. Starting from the initial spatial unit, the propagation proceeds layer by layer along the inter-unit connection relationship indicated by the connectivity interface information. The spatial units accessed during the propagation process are assigned the path distance parameter accumulated from the initial spatial unit along the connectivity path, until all spatial units with connectivity paths to the initial spatial unit are traversed, thus obtaining the spatial unit path distance distribution. Obtain the first mapping relationship between the event urgency quantification information and visual attention intensity, and the second mapping relationship between the path distance parameter and the attenuation ratio. Adjust the first mapping relationship with distance attenuation through the second mapping relationship to obtain the distance-related urgency attenuation mapping relationship. For each spatial unit in the spatial unit path distance distribution, local visual attention priority description information of the spatial unit is generated by using the urgency attenuation mapping relationship associated with the distance and the path distance parameter of the spatial unit. The local visual attention priority description information is processed by spatial filling and continuous extension according to the geometric boundary information of the corresponding spatial unit to obtain the visual attention cost distribution information covering the accessible space inside the building.
3. The method according to claim 2, characterized in that, The propagation process, starting from the initial spatial unit and proceeding layer by layer along the inter-unit connection relationships indicated by the connectivity interface information, assigns a path distance parameter accumulated from the initial spatial unit along the connectivity path to the accessed spatial units during the propagation process. This includes: Create a sequence of open spatial units in a pending state, add the starting spatial unit to the sequence of open spatial units, and mark the path distance parameter of the starting spatial unit as the assigned initial distance value; Take a spatial unit from the open spatial unit sequence as the current processing unit, and determine the set of adjacent spatial units directly connected to the current processing unit based on the connectivity interface information; Check whether each adjacent spatial unit in the set of adjacent spatial units has been assigned a path distance parameter, and mark the adjacent spatial units that have not been assigned a path distance parameter as unvisited units; Based on the path distance parameter assigned to the current processing unit and the spatial distance measurement value from the current processing unit to the unvisited unit, a path distance accumulation operation is performed to obtain the path distance parameter of the unvisited unit, and the unvisited unit is added to the open spatial unit sequence; Continue to process the next spatial unit from the open spatial unit sequence, repeating the operation of determining the set of adjacent spatial units based on the connectivity interface information and assigning path distance parameters, until the open spatial unit sequence becomes empty. After the open spatial unit sequence is transformed into an empty state, all spatial units that have been assigned path distance parameters and their respective path distance parameters are aggregated into the spatial unit path distance distribution.
4. The method according to claim 2, characterized in that, The step of processing the local visual attention priority description information according to the geometric boundary information of the corresponding spatial unit through spatial filling and continuous extension to obtain the visual attention cost distribution information covering the accessible space inside the building includes: The geometric boundary information of each spatial unit in the spatial unit path distance distribution is converted into a description of the entity-occupied area of the spatial unit in three-dimensional space, and a three-dimensional sampling point array corresponding to the spatial unit is initialized inside the entity-occupied area description. The local visual attention priority description information is directly assigned to each sampling point in the three-dimensional sampling point array to obtain a discrete visual attention field that is only independently effective within each spatial unit and has attribute abrupt changes at the unit boundaries. Neighborhood search is performed on the sampling points at the boundary of adjacent spatial units to extract pairs of sampling points belonging to different spatial units on both sides of the boundary. The visual attention attribute values carried by each pair of sampling points are mixed across units to generate the visual attention attribute values of the sampling points in the transition region, so as to eliminate the attribute mutation of the discrete visual attention field at the boundary of spatial units. All sampling points that have completed cross-unit hybrid processing are spatially aggregated, and the attribute values are extrapolated along the extension direction of the accessible space inside the building. The visual attention attribute values are extended from the existing sampling point positions along the spatial connection path to the unassigned accessible gap area, so that the spatial points in the accessible gap area obtain visual attention attribute values that are smoothly connected with the adjacent assigned areas. The continuous field of visual attention attributes formed after trend extrapolation is clipped at the boundary. The boundary surface of the accessible space inside the building is used to cut off the part that exceeds the range of the accessible space, while retaining the continuous field of visual attention attributes that is consistent with the geometry of the actual accessible space inside the building. The clipped visual attention attribute continuum is converted into a query data structure indexed by three-dimensional spatial coordinates, serving as the visual attention cost distribution information covering the accessible spaces inside the building.
5. The method according to claim 1, characterized in that, The process involves using the pose information of the current virtual camera in the 3D scene as the starting point for path planning, and the visual attention cost distribution information as the cost constraint for path search. Path solving is then performed to obtain an optimized, smooth observation path, including: Obtain the pose state information of the current virtual camera in the three-dimensional scene, the pose state information including the spatial position coordinates of the virtual camera and the view orientation vector; Within the spatial range covered by the visual attention cost distribution information, a set of candidate observation point positions that can obtain the complete field of view of the target device are calculated based on the three-dimensional bounding box information of the target device and the range of its surrounding influence area. Using the spatial coordinates of the virtual camera as the starting point of the search and each candidate point in the candidate viewpoint location set as an acceptable endpoint, a path search is performed on the visual attention cost distribution information. During the search process, the cumulative amount of visual attention priority of the spatial points along the path is used as the basic cost, and a direction smoothing cost obtained by normalizing the path direction change rate through a preset normalization mapping is superimposed to obtain a comprehensive cumulative cost. The normalization mapping converts the path direction change rate into a dimensionless cost with the same dimension as the basic cost, so that the two costs can be numerically superimposed. The path with the minimum comprehensive cumulative cost obtained by the search is curve fitted, the discrete points on the path are connected to a continuous smooth curve, and it is detected whether the continuous smooth curve conflicts with the position of the inaccessible space entity. If there is a conflict, a local path offset adjustment is applied to the conflict segment and the curve is refitted. Based on the curve fitting results, a path sampling point sequence is obtained by uniformly sampling along the path. The line-of-sight accessibility of each sampling point in the path sampling point sequence is verified to ensure that the line of sight from the sampling point is not blocked by other components and can reach the target device. The path sampling point sequence that passes the line-of-sight accessibility verification is used as the output of the optimized smooth observation path.
6. The method according to claim 5, characterized in that, Within the spatial range covered by the visual attention cost distribution information, based on the three-dimensional bounding box information of the target device and the range definition of its surrounding influence area, a set of candidate observation point positions capable of obtaining the complete field of view of the target device is calculated, including: Extract the geometric center position and the dimensional extension range along the main axis from the three-dimensional bounding box information of the target device, and generate a coaxial multi-layer bounding surface around the target device. The distance between each bounding surface and the geometric center position increases sequentially according to a preset layer interval. On each enclosing plane, with the geometric center position as the reference origin, joint discrete sampling is performed on the azimuth and pitch angle ranges to generate an initial viewpoint sampling point set. Each initial viewpoint sampling point carries its spatial position coordinates and a direction vector from the spatial position coordinates to the geometric center position. For each initial viewpoint sampling point, with the spatial coordinates of the initial viewpoint sampling point as the ray starting point, a line-of-sight test ray is projected onto the set of facet center points on the three-dimensional bounding box of the target device. The number of line-of-sight test rays that are truncated by non-target entity components in the scene is recorded. The proportion of the number of line-of-sight test rays that are not truncated and successfully reach the corresponding facet center point to the total number of projections is taken as the target visibility integrity of the initial viewpoint sampling point. For each initial viewpoint sampling point, the visual attention cost distribution information is queried to determine the visual attention priority at the spatial coordinates of that initial viewpoint sampling point. The visual attention priority is then combined with the target visibility completeness to obtain the viewpoint quality assessment result. Based on the viewpoint quality assessment results, a local nonmaximum suppression operation is performed on the initial viewpoint sampling point set. In the group of viewpoint sampling points that are spatially close, only the viewpoint sampling point with the best viewpoint quality assessment result is retained, and the remaining viewpoint sampling points in the group are removed. The viewpoint sampling points retained after the local nonmaximum suppression operation are clustered according to their spatial proximity and the closeness of the angle between the direction vectors to obtain several viewpoint clusters. The spatial geometric center of each viewpoint cluster is extracted as a candidate observation viewpoint, and all candidate observation viewpoints are gathered to form the candidate observation viewpoint position set.
7. The method according to claim 5, characterized in that, After outputting the path sampling point sequence verified by line-of-sight accessibility as the optimized smooth observation path, the method further includes configuring virtual camera motion rhythm information for each path sampling point on the optimized smooth observation path, specifically including: Spatial distribution analysis is performed on the path sampling point sequence on the optimized smooth observation path to extract the spatial interval length sequence between adjacent path sampling points and the direction change angle sequence of the path tangent at each path sampling point. Based on the local density in the spatial interval length sequence and the local bending degree in the direction change angle sequence, the optimized smooth observation path is segmented to identify the straight crossing section, direction transition section and near arrival section in the path, and the different sections are labeled with section category identifiers. For the path sampling points in the straight-through section, a first mapping is established between the movement speed of the virtual camera and the average attention cost of the visual attention cost distribution information in the section, so that the section with lower visual attention cost in the straight-through section receives a faster movement speed allocation, while the section with higher visual attention cost receives a relatively slower movement speed allocation. For the path sampling points within the directional transition section, the total directional change at both ends of the section is obtained. The ratio of the total directional change to the total path length of the section is used as the directional change density. The motion speed of the virtual camera is reduced according to the directional change density, so that the sub-segment with a higher directional change density in the directional transition section moves more slowly. A quadratic velocity curve of deceleration followed by acceleration is used to distribute the motion speed within the directional transition section. For the path sampling points in the near arrival section, based on the spatial distance from the starting point of the section to the target device, a slow-stop speed curve is established in which the movement speed decreases monotonically as the remaining distance shortens, so that the movement speed of the virtual camera gradually converges to the preset dwell speed when it approaches the endpoint. The speed allocation results of the straight crossing section, the directional transition section, and the adjacent arrival section are fused at the section boundaries to eliminate speed jumps at the section boundaries, generating a continuous motion speed configuration scheme covering the entire optimized smooth observation path, which serves as the motion rhythm information of the virtual camera.
8. The method according to claim 1, characterized in that, The process of moving the virtual camera along the optimized smooth viewing path, and dynamically adjusting the visual transparency properties of non-interested components within a preset range around the target device by executing shader scripts during the movement of the virtual camera along the path, includes: In each frame where the virtual camera moves along the optimized smooth observation path, the current spatial position of the virtual camera and the spatial position of the target device are acquired, and a dynamic area of interest centered on the target device is determined. The dynamic area of interest is synchronously scaled as the distance between the virtual camera and the target device changes. The building components in the scene are rendered and classified. Components that belong to the same device family as the target device and components that are located within the dynamic attention area are marked as attention components. Components that are located outside the dynamic attention area and do not belong to the same device family are marked as non-attention area components. Submit a transparency adjustment instruction for the non-interested region component to the rendering pipeline. The transparency adjustment instruction queries a preset distance-transparency mapping table based on the shortest spatial distance from the non-interested region component to the boundary of the dynamically interested region, obtains the target transparency value, and writes it into the material property of the corresponding component. The material properties of the target device are modified, and pulsating halo shader parameters are injected. The pulsating halo shader parameters include halo pulsation phase and halo amplitude. The halo pulsation phase changes periodically over time, and the halo amplitude is dynamically adjusted according to the current value of the event urgency quantification information. Perform scene rendering, render the components of interest according to their original material properties, render the components of non-interested areas with semi-transparent blending according to the target transparency value, and overlay the pulsed halo rendering channel onto the target device; As the camera moves to different positions, the range of the dynamic area of interest is updated in real time, the components of the non-area of interest are redefined and their target transparency values are updated, and the halo amplitude is dynamically refreshed as the urgency information of the event changes.
9. The method according to claim 8, characterized in that, The step of submitting transparency adjustment instructions for the non-interested region components to the rendering pipeline includes: For each non-interested region component, extract the projection area of its 3D bounding box in screen space, discretize the projection area into a screen space sampling point array, and query the depth buffer to obtain the scene depth value at each screen space sampling point. For each screen space sampling point within the projection area of the non-interested region component, the scene depth value at the sampling point is compared with the depth value of the target device at the corresponding position in the screen space. The proportion of the number of sampling points in the projection area whose scene depth value is less than the depth value of the target device is counted to the total number of sampling points in the projection area, which is used as a descriptive quantity of the degree of occlusion of the target device by the non-interested region component. Using the boundary of the dynamically concerned region as a reference surface, calculate the shortest spatial distance from the geometric center of the non-concerned region component to the boundary surface of the dynamically concerned region, and map the shortest spatial distance to the basic transparency component of the distance association. The occlusion degree description is mapped to an occlusion-related transparency correction component. The higher the occlusion degree of the non-interest area component, the more likely the transparency correction component will increase the transparency. The distance-related basic transparency component and the occlusion-related transparency correction component are fused to generate the target transparency value, so that non-interest area components that are farther away from the dynamic interest area and occlude the target device more severely obtain higher transparency. The material descriptor of the non-interested area component is switched from the original opaque mode to the semi-transparent blending mode, and the target transparency value is written into the transparency channel of the material descriptor and submitted to the rendering pipeline to replace the original transparency setting of the non-interested area component in the current frame drawing.
10. A server, characterized in that, include: Memory is used to store executable instructions or computer programs. The processor, when executing computer-executable instructions or computer programs stored in the memory, implements the monitoring information visualization method for smart buildings as described in any one of claims 1 to 9.