WebGPU-based three-dimensional scene real-time visualization method

By acquiring user gaze trajectory data to predict potential areas of interest and using WebGPU's parallel computing pipeline for asynchronous loading, the problem of synchronizing data loading with user gaze intent in real-time visualization of 3D scenes is solved, achieving efficient and smooth 3D scene rendering and improving the visual quality and coherence of browser 3D scenes.

CN121366232AActive Publication Date: 2026-01-20PTAC CENTURY BEIJING COMM TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202511935329.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-12-22
Publication Date
2026-01-20
Estimated Expiration
2045-12-22

AI Technical Summary

Technical Problem

In browser-based real-time visualization of 3D scenes, due to limitations in network transmission bandwidth and client-side local computing resources, existing technologies cannot effectively synchronize user gaze intent with data loading. This results in unnecessary resource consumption or untimely data loading, causing incomplete or blurry images and affecting the continuity and visual fidelity of the immersive experience.

Method used

By acquiring user gaze trajectory data, predicting potential areas of interest and dividing them into data blocks, and using WebGPU's parallel computing pipeline for asynchronous loading and compilation, the completed data blocks are dynamically integrated for real-time rendering, thus achieving synchronization between data scheduling and user visual intent.

Benefits of technology

It improves the efficiency and quality of real-time visualization of 3D scenes, reduces resource consumption, ensures the continuity and smoothness of scene details, reduces the problem of incomplete images or missing details, and enhances the rendering stability and visual experience of 3D scenes in the browser.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121366232A_ABST
    Figure CN121366232A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of three-dimensional modeling, and particularly discloses a WebGPU-based three-dimensional scene real-time visualization method, which comprises the following steps of: acquiring continuous sight track data of a user in a three-dimensional scene view, and acquiring track feature data based on the continuous sight track data; based on the trajectory feature data, predicting a potential attention area of a user to the three-dimensional scene, dividing corresponding geometric and texture data in the three-dimensional scene into a plurality of data blocks of different levels according to the potential attention area, and calculating a loading priority sequence of each data block; according to the loading priority sequence, through a parallel computing pipeline of the WebGPU, initiating asynchronous loading and compiling instructions for different data blocks to a graphics processor; and in a WebGPU rendering loop, dynamically integrating the loaded and compiled data blocks, and rendering a three-dimensional scene view in real time. According to the invention, synchronization of the data scheduling process of the three-dimensional scene and the visual intention of the user is realized.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of three-dimensional modeling, and in particular to a three-dimensional scene real-time visualization method based on WebGPU. BACKGROUND

[0002] In the real-time visualization of three-dimensional scenes based on browsers, due to the dual restrictions of network transmission bandwidth and local computing resources of the client, the complete high-precision scene model containing massive geometry and texture data cannot be loaded into the memory at one time and rendered. The traditional strategy usually adopts a static level of detail (LOD) loading mechanism based on a view frustum or a fixed distance, but there is a deviation between this mechanism and the user's actual visual focus.

[0003] When the user quickly or randomly rotates the viewing angle, such static preloading strategies either cause unnecessary resource consumption and initial waiting delay due to the advance loading of all potential data within the field of view, or cause holes, blurring or low-quality mapping in the picture due to the failure to load fine data in the user's instantaneous focus area in time, which seriously damages the coherence and visual fidelity of the immersive browsing experience. Therefore, how to accurately synchronize the dynamic process of data loading with the real-time changes in the user's line of sight intention has become a key bottleneck to improve the efficiency and experience of three-dimensional real-time visualization. SUMMARY

[0004] The present application aims to provide a three-dimensional scene real-time visualization method based on WebGPU, which solves the above technical problems.

[0005] The object of the present application can be achieved by the following technical solutions: A three-dimensional scene real-time visualization method based on WebGPU, comprising the following steps: Obtaining continuous line of sight trajectory data of a user in a three-dimensional scene view, and obtaining trajectory feature data based on the continuous line of sight trajectory data; Based on the trajectory feature data, predicting a potential attention area of the user for the three-dimensional scene, dividing corresponding geometry and texture data in the three-dimensional scene into a plurality of data blocks of different levels according to the potential attention area, and calculating a loading priority order of each data block; According to the loading priority order, issuing asynchronous loading and compiling instructions for different data blocks to a graphics processor through a parallel computing pipeline of WebGPU; In the WebGPU rendering loop, dynamically integrating the data blocks that have completed loading and compiling, and real-time rendering of the three-dimensional scene view.

[0006] As a further scheme of the present application, obtaining continuous line of sight trajectory data comprises: Capture pointer movement events on the view plane using the pointer locking API provided by the browser, and record the view plane coordinates of the pointer corresponding to each movement event; Based on the projection parameters and attitude parameters of the current 3D scene camera, each view plane coordinate is converted into a direction vector in the 3D scene world coordinate system; Associate the timestamp of each movement event with its corresponding direction vector to form a single data point consisting of the timestamp and the direction vector. This data point is recorded as a line-of-sight sampling point. The line-of-sight sampling points are sorted in chronological order to form the continuous line-of-sight trajectory data.

[0007] As a further aspect of the present invention: obtaining trajectory feature data includes: Obtain the horizontal azimuth and vertical pitch angles corresponding to the direction vector at each line-of-sight sampling point; Calculate the difference A1 between two adjacent horizontal azimuth angles according to the order of continuous line-of-sight trajectory data, and record it as the change in horizontal angle; calculate the difference A2 between two adjacent vertical pitch angles according to the order of continuous line-of-sight trajectory data, and record it as the change in vertical angle. Obtain the difference A3 between the timestamps corresponding to two adjacent line-of-sight sampling points according to the order of continuous line-of-sight trajectory data, and calculate the instantaneous angular velocity. ; The instantaneous angular velocities are sorted in order along the time axis to obtain an angular velocity sequence. The angular velocity sequence is then subjected to low-pass filtering to obtain smoothed angular velocity trend data. The horizontal angle change, the vertical angle change, and the smoothed angular velocity trend data are used together as the trajectory feature data.

[0008] As a further aspect of the present invention: generating potential regions of interest includes: In the smoothed angular velocity trend data, continuous intervals in which the angular velocity values ​​are consistently below a preset threshold are identified as low velocity intervals. Extract the direction vectors corresponding to all line-of-sight sampling points within the low-speed range, denoted as the selected vectors, calculate the average direction of the selected vectors, and use the average direction as the focal direction of the current line of sight; Obtain the maximum and minimum values ​​in the sequence of horizontal angle changes, calculate the difference between them, and record the difference as the horizontal diffusion angle; obtain the maximum and minimum values ​​in the sequence of vertical angle changes, calculate the difference between them, and record the difference as the vertical diffusion angle. Taking the current position of the 3D scene camera as the origin, a ray is emitted along the focal direction. The first intersection position of the ray with the 3D scene geometric model is calculated, and the first intersection position is recorded as the focus point. obtaining a spatial straight-line distance from the center point of interest to the camera position, denoted as a predicted distance; taking the larger value between the horizontal diffusion angle and the vertical diffusion angle as a maximum diffusion angle, and taking the product of the predicted distance and the tangent value of the maximum diffusion angle as a predicted radius; generating a spherical space region with the center point of interest as the center and the predicted radius as the radius, and taking the spherical space region as the potential area of interest.

[0009] As a further scheme of the present application, the dividing the data blocks comprises: pre-dividing the entire geographical space range of the three-dimensional scene into multiple cubic grid units of uniform size; marking the cubic grid units intersecting with the potential area of interest as first-level data blocks; marking the cubic grid units adjacent to the first-level data blocks as second-level data blocks, and marking the remaining cubic grid units as third-level data blocks.

[0010] As a further scheme of the present application, the calculating the loading priority order of the data blocks comprises: respectively calculating the spatial straight-line distances of the first-level data blocks, the second-level data blocks and the third-level data blocks from the center point of interest; respectively weighting each spatial straight-line distance to obtain multiple weighted distances; the weights corresponding to the first-level data blocks, the second-level data blocks and the third-level data blocks are sequentially increased; sorting the weighted distances in ascending order according to the size, and the sorting is the loading priority order of the corresponding data blocks.

[0011] As a further scheme of the present application, the rendering the three-dimensional scene view comprises: checking the data block list arranged in the loading priority order before the start of each frame of the WebGPU rendering loop; starting from the head of the data block list, sequentially querying the loading and compiling states of each data block in the list, and removing the data blocks with the completed state from the list; merging the geometric vertex data contained in the removed data blocks into a vertex buffer, and merging the texture image data associated with the removed data blocks into a texture array resource; using the rendering pass encoder of WebGPU, setting a unified rendering state, and performing a drawing call on the merged vertex buffer and the texture array resource to render a complete three-dimensional scene view containing the scene details corresponding to the loaded data blocks.

[0012] The present application has the following advantages compared with the prior art: The application can make the data scheduling process of the three-dimensional scene keep in synchronization with the user's visual intention through real-time feature analysis and focus area prediction based on the user's visual line trajectory, so as to realize more accurate and efficient dynamic loading effect. By using the continuous visual line trajectory to generate angular velocity trend, focal point direction and spatial focus area, the application can identify the scene position that the user will focus on in advance, and divide and prioritize the three-dimensional data around the center, so that the data of the key area is loaded and integrated before the user's visual line reaches, so that the completeness and continuity of the scene details are always maintained during the rendering process. At the same time, the data far away from the focus area is loaded with a lower priority, effectively avoiding the invalid occupation of network bandwidth and local computing power, making the resource processing more concentrated and orderly. In the rendering stage, the data blocks that have completed loading are integrated and drawn at one time, reducing redundant calls and state switching, and improving the stability and continuity of the rendering process. Overall, the application can significantly improve the visualization experience under the condition of rapid change of visual angle or random movement of visual line, make the scene presentation more smooth and clear, and effectively reduce the problem of incomplete picture or missing details caused by delayed data loading, thereby improving the overall performance and visual quality of real-time visualization of three-dimensional scenes based on browsers. BRIEF DESCRIPTION OF DRAWINGS

[0013] The application will be further described below in conjunction with the accompanying drawings.

[0014] Figure 1 is a flowchart of a three-dimensional scene real-time visualization method based on WebGPU. DETAILED DESCRIPTION

[0015] The technical solutions in the embodiments of the application will be clearly and completely described below in conjunction with the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of the application, not all the embodiments. Based on the embodiments in the application, all other embodiments obtained by those skilled in the art without creative labor fall within the scope of protection of the application.

[0016] Please refer to Figure 1 The application is a three-dimensional scene real-time visualization method based on WebGPU, which comprises the following steps: Obtain continuous visual line trajectory data of the user in the three-dimensional scene view, and obtain trajectory feature data based on the continuous visual line trajectory data; In a preferred embodiment of the application, obtaining continuous visual line trajectory data comprises: The pointer locking application interface provided by the browser captures the movement event of the pointer in the view plane, and the interface continuously provides the relative displacement amount and the time information of the event triggering after the user locks the pointer to the rendering picture. By listening to the movement event in the rendering loop or the event processing callback, the position coordinates of the current pointer in the view plane are recorded whenever the event occurs, and the recorded coordinates are usually expressed in pixel units to describe the specific position of the pointer in the rendering canvas plane.

[0017] In order to ensure that the captured data is consistent with the real line-of-sight change, the rendering canvas sets a fixed size parameter in the initialization stage to make the pointer plane coordinates have a stable resolution basis. After completing the recording of the view plane coordinates, it is necessary to convert them into a direction vector in the three-dimensional scene world coordinate system. The conversion is based on the projection parameters and the pose parameters of the current three-dimensional scene camera, wherein the projection parameters include the field of view angle, the screen aspect ratio, and the near-far clipping plane, and the pose parameters include the position, orientation, and rotation pose of the camera in the world coordinate system. The conversion process normalizes the coordinates of the pointer in the plane to the projection view of the camera, and then uses the observation matrix and the projection matrix of the camera to inversely calculate the spatial ray direction corresponding to the plane coordinates, so that each two-dimensional plane coordinate can be mapped to a direction vector in three-dimensional space.

[0018] The timestamp information obtained at each movement event triggering is associated with the converted direction vector, and a data object is used to save the timestamp and the direction vector. This data object is used as an independent line-of-sight sampling point to represent the observation direction of the user at a specific time. In order to ensure the accuracy of the time association, the high-precision timestamp provided by the browser is directly read in the event listening process, so that the sampling points can truly reflect the line-of-sight change process of the user in a very short time. When multiple line-of-sight sampling points are collected, all the line-of-sight sampling points are sorted in the order of their timestamps, so that these sampling points are arranged in a continuous line-of-sight trajectory data sequence according to the actual occurrence order. The trajectory data formed can completely describe the continuous change of the line-of-sight direction of the user when browsing the three-dimensional scene, and the time sequence arrangement ensures that the trajectory can be correctly parsed in subsequent processing, such as judging the stability of the line-of-sight change or predicting the user's attention area.

[0019] In a preferred case of the embodiment, obtaining the trajectory feature data includes: By angularizing the direction of the direction vector in space, each sampling point can be expressed in the form of horizontal azimuth angle and vertical pitch angle. The direction vector in the local coordinate system of the camera can uniquely determine a line-of-sight direction, and by decomposing the vector in three-dimensional coordinates and using the front direction of the camera as the reference direction, the included angle with the horizontal direction and the included angle with the vertical direction can be obtained.

[0020] After obtaining the angle values of all sampling points, the horizontal angle change of the single frame line of sight is obtained by difference operation of the horizontal azimuth angle of the adjacent two sampling points, and the vertical angle change of the single frame line of sight is obtained by difference operation of the vertical pitch angle of the adjacent two sampling points. The change quantity is used to describe the rotation speed of the user's line of sight in different directions.

[0021] In order to make the time meaning of the angle change more clear, the time stamp difference of each pair of adjacent sampling points is taken out, and the time stamp is usually provided by the browser high-precision timer when the sampling point is generated. The instantaneous angular velocity can be obtained through the corresponding relationship between the time difference and the angle change. The value of the instantaneous angular velocity can reflect the fast change of the line of sight action, and is used to judge whether the user's line of sight is in a stable, stay or fast rotation stage. After obtaining all the instantaneous angular velocities, the values are sorted into an angular velocity sequence according to the order of the sampling points, so that the angular velocity change presents a continuous state in the time dimension.

[0022] The angular velocity sequence usually contains certain noise, for example, sporadic changes caused by small pointer jitter, so after obtaining the sequence, a low-pass filtering step is performed, so that the sharp changes suddenly appearing are smoothed, and the overall trend is retained. The parameters of low-pass filtering can be determined by setting the weight or time constant in the implementation, so that the filtered angular velocity trend data can more accurately reflect the real motion of the user's line of sight. Finally, the horizontal angle change, the vertical angle change and the smoothed angular velocity trend data are integrated together as the trajectory feature data input for further inferring the attention area, providing continuous, stable and analyzable basis for subsequent behavior analysis and space prediction.

[0023] Based on the trajectory feature data, a potential attention area of the user to the three-dimensional scene is predicted, corresponding geometric and texture data in the three-dimensional scene are divided into a plurality of data blocks of different levels according to the potential attention area, and a loading priority order of each data block is calculated. In a preferred embodiment of the application, generating the potential attention area comprises: The process of generating the potential attention area relies on the smoothed angular velocity trend data, which is used to judge whether the user's line of sight is in a stable stay state by interpreting the change of the angular velocity in the time dimension. When the angular velocity trend is continuously lower than a preset threshold value for a period of time, it can be determined that the user's line of sight has not obviously rotated fast in the time range. The preset threshold value is usually set according to the actual interactive experience to be an angular velocity level that can distinguish between fast saccades and relative gaze. By setting the threshold value in the initialization stage and continuously comparing the angular velocity trend in the running time, the continuous low speed interval can be identified.

[0024] After the low speed interval is formed, the direction vectors corresponding to all the gaze sampling points in this interval are taken out as the selected vector set, which is used to reflect the actual gaze direction of the user in this time period. The number of direction vectors depends on the sampling frequency. Generally, under the browser event driving, multiple sets of relatively dense gaze direction data can be obtained. The average direction can be formed by superimposing these vectors one by one and then dividing by the number. For example, when the user is observing a certain facade of a building model, although the pointer will bring unstable direction vectors due to slight jitter, the average direction still points to the center area of the facade, thereby accurately depicting the real observation focus of the user.

[0025] Based on the foregoing average direction, the range of the previously calculated horizontal angle change sequence and the vertical angle change sequence is continued to be calculated, the maximum value and the minimum value in the horizontal sequence are found respectively, and the difference between the two is calculated to form a horizontal spread angle. At the same time, the same operation is performed on the vertical sequence to obtain a vertical spread angle. The spread angle is used to describe the amplitude of the slight swing of the user's gaze in different directions during stable gaze. For example, when the user maintains the gaze but there is a small amplitude of looking around, the range of the spread angle can reflect the width of the attention area. After the focus direction is determined, the position of the camera is taken as the starting point of the ray, and the average direction is taken as the direction of the ray. The ray detection is performed through the geometric acceleration structure or the bounding volume hierarchical structure of the three-dimensional scene model, and the first intersection point of the ray and the scene geometric model is calculated. The intersection point is the center point of attention. The center point of attention generally falls on the surface position of the scene object that the user's vision really focuses on. For example, when the user gazes at a rock on the ground, the ray usually hits a point on the surface of the rock, thereby serving as the accurate focus position.

[0026] After the center point of attention is obtained, the spatial straight line distance between it and the position of the camera is measured, so that the distance can reflect the spatial depth that the user's current gaze needs to pass through to reach the position. In order to form the final attention area, the horizontal spread angle and the vertical spread angle are compared and the larger one is selected as the maximum spread angle. The predicted radius is obtained through the geometric relationship between the angle value and the predicted distance, which is used to describe the spatial scale that can cover the possible observation range of the user with the center point of attention as the core. When the spread angle is larger, the predicted radius will also increase, thereby generating a looser attention space when the user has more gaze micro-motions. When the predicted radius is determined, a spherical space area is established with the center point of attention as the center of the sphere, and the radius of the sphere is the predicted radius. The spherical coverage area formed can cover the potential observation range of the user within a certain time period, thereby serving as a potential attention area to guide the subsequent data block loading strategy, so that the data scheduling is more in line with the user's immediate visual intention.

[0027] In another preferred embodiment of the present application, the division of the data block comprises: pre-segmenting the entire geographical space range of the three-dimensional scene into a plurality of cubic grid units of uniform size; marking the cubic grid units intersecting with the potential region of interest as first-level data blocks; marking the cubic grid units adjacent to the first-level data blocks as second-level data blocks, and marking the remaining cubic grid units as third-level data blocks.

[0028] It should be noted that the loading priority order of the data blocks includes: respectively calculating the spatial straight-line distances of the first-level data blocks, the second-level data blocks, and the third-level data blocks from the center point of interest; respectively weighting each spatial straight-line distance to obtain a plurality of weighted distances, the weights corresponding to the first-level data blocks, the second-level data blocks, and the third-level data blocks being sequentially increased; sorting the weighted distances in ascending order according to their sizes, and the sorting is the loading priority order of the corresponding data blocks.

[0029] According to the loading priority order, the asynchronous loading and compiling instructions for different data blocks are initiated to the graphics processor through the parallel computing pipeline of WebGPU; In the WebGPU rendering loop, the data blocks that have completed loading and compiling are dynamically integrated, and the three-dimensional scene view is rendered in real time.

[0030] In another preferred embodiment of the present application, rendering the three-dimensional scene view includes: Under the premise of data scheduling based on the loading priority order, the process of initiating asynchronous loading and compiling instructions to the graphics processor using the parallel computing pipeline of WebGPU is implemented through task distribution and GPU command queue management. Each data block is encapsulated as an independent loading task after determining the priority, and the task contains the geometric data source path, the texture source path, and the resource description information required for compiling the shader and constructing the buffer area corresponding to the data block. The task can be executed in the background after being submitted to the GPU command queue, without waiting for the completion of the main rendering loop. The loading processes of different data blocks do not block each other, and the GPU can process multiple geometric decoding and texture decoding tasks of data blocks in parallel, so that loading and rendering run independently of each other.

[0031] When the GPU completes the geometric construction or texture compilation task of a certain data block, the identification of the task in the shared state table is updated to notify the main rendering loop that the data block has met the integration condition.

[0032] In the rendering phase, the data block list is checked before each frame starts, and the current most attention- demanding data block is determined by reading the priority-ordered array structure from the head of the list. The recorded data in the list includes the unique identifier of the data block, the loading state, the GPU resource handle, etc. When the loading state of a certain data block shows that it is complete, it means that the corresponding vertex data can be written to the GPU buffer, and the texture data can be added to the texture array resource, so it will be immediately removed from the queue. The removal operation does not delete the data content, but transfers the data block from the loading queue to the resource integration process used in rendering.

[0033] In order to render all loaded data content at once, the geometric vertex data extracted from all completed data blocks is written to a unified vertex buffer, which is created as a dynamically expandable storage structure in the initialization phase and can accommodate the vertex array of multiple data blocks. For example, when the scene is composed of multiple regions, the vertex data of the data block in the north region will be appended to the end of the buffer after it is completed, making the buffer appear continuous in memory structure. This continuity is beneficial for GPU to perform efficient pipeline processing in the rendering phase. Similarly, after being decoded and uploaded, the texture image data will be added to a texture array, which can be uniformly bound to the resource to allow the shader to find the corresponding texture according to the data block index. Since multiple textures share the same format, the creation of the texture array will maintain a fixed size specification, and the specific texture content will be filled by the loading phase, so that the rendering phase does not have to repeatedly switch texture resources.

[0034] After completing data integration, the rendering state is set using the WebGPU rendering channel encoder, including binding the unified vertex buffer, texture array resource, and corresponding pipeline state object. The pipeline state object defines the vertex input format, shader function, depth test method, and rasterization rules in the initialization process, and the rendering phase does not rebuild, but only binds dynamic resources. After completing the state setting, a draw call is issued to render the three-dimensional scene containing all the loaded data block content. This call will make the GPU draw all the integrated mesh structures according to the content of the vertex buffer, and select the correct texture fragment for shading according to the texture array, so that the final rendered scene view is consistent with the user's loading progress. As the same checking and integration process is continuously executed in subsequent frames, newly completed data blocks will be continuously added to the rendering content, making the scene details gradually improve and keep real-time synchronization with the user's visual behavior, ensuring the stability and continuity of the visualization process.

[0035] The above has been described in detail one embodiment of the present application, but the content is only the preferred embodiment of the present application, cannot be considered for limiting the scope of the present application. Any equivalent changes and improvements made in the scope of the present application, should still belong to the scope of the present application.

Claims

1. A method for real-time visualization of a three-dimensional scene based on WebGPU, characterized in that, The method comprises the following steps: Obtaining continuous line-of-sight trajectory data of a user in a three-dimensional scene view, obtaining trajectory feature data based on the continuous line-of-sight trajectory data; Based on the trajectory feature data, predicting the potential attention area of the user to the three-dimensional scene, dividing the corresponding geometric and texture data in the three-dimensional scene into multiple data blocks of different levels according to the potential attention area, and calculating the loading priority order of each data block; According to the loading priority order, initiate asynchronous loading and compiling instructions for different data blocks to the graphics processor through the parallel computing pipeline of WebGPU; In the WebGPU rendering cycle, dynamically integrate the data blocks that have completed loading and compiling, and render the three-dimensional scene view in real time.

2. The method of claim 1, wherein, Obtaining continuous line-of-sight trajectory data includes: Capture the movement events of the pointer on the view plane through the pointer locking API provided by the browser, and record the view plane coordinates of the pointer corresponding to each movement event; Based on the projection parameters and pose parameters of the current three-dimensional scene camera, convert each view plane coordinate into a direction vector in the three-dimensional scene world coordinate system; Associate the timestamp of each movement event with its corresponding direction vector to form a single data point composed of a timestamp and a direction vector, and record this data point as a line-of-sight sampling point; Sort the line-of-sight sampling points in chronological order to form the continuous line-of-sight trajectory data.

3. The method of claim 2, wherein, Obtaining trajectory feature data includes: Obtain the horizontal azimuth angle and vertical pitch angle corresponding to the direction vector in each line-of-sight sampling point; According to the order of the continuous line-of-sight trajectory data, calculate the difference A1 between the adjacent two horizontal azimuth angles, and record it as the horizontal angle change amount; According to the order of the continuous line-of-sight trajectory data, calculate the difference A2 between the adjacent two vertical pitch angles, and record it as the vertical angle change amount; According to the order of the continuous line-of-sight trajectory data, a difference A3 between time stamps corresponding to two adjacent line-of-sight sampling points is obtained, and the instantaneous angular velocity is calculated ; Sort the instantaneous angular velocity according to the time axis to obtain the angular velocity sequence, and perform low-pass filtering processing on the angular velocity sequence to obtain the smoothed angular velocity trend data; The horizontal angle change amount, the vertical angle change amount, and the smoothed angular velocity trend data are collectively used as the trajectory feature data.

4. The WebGPU-based three-dimensional scene real-time visualization method of claim 3, wherein, Generating a potential attention area includes: In the smoothed angular velocity trend data, identify a continuous interval where the angular velocity value is continuously below a preset threshold as a low speed interval; Extract the direction vectors corresponding to all line-of-sight sampling points in the low speed interval, record them as selected vectors, calculate the average direction of the selected vectors, and take the average direction as the focal point direction of the current line of sight; Obtain the maximum and minimum values in the horizontal angle change amount sequence, calculate the difference between the two, and record this difference as the horizontal diffusion angle; Obtain the maximum and minimum values in the vertical angle change amount sequence, calculate the difference between the two, and record this difference as the vertical diffusion angle; Take the position of the current three-dimensional scene camera as the origin, emit a ray along the focal point direction, calculate the first intersection position of the ray with the three-dimensional scene geometric model, and record the first intersection position as the attention center point; obtaining a spatial straight-line distance from the center point of interest to the camera position, denoted as a predicted distance; obtaining a larger value between the horizontal diffusion angle and the vertical diffusion angle, denoted as a maximum diffusion angle; and obtaining a product of the predicted distance and a tangent value of the maximum diffusion angle, denoted as a predicted radius; generating a spherical space region with the center point of interest as a spherical center and the predicted radius as a spherical radius, and taking the spherical space region as the potential region of interest.

5. The method of claim 4, wherein, The dividing the data blocks comprises: pre-dividing an entire geographical space range of the three-dimensional scene into a plurality of cubic grid units with uniform sizes; marking the cubic grid units intersecting with the potential region of interest as first-level data blocks; marking the cubic grid units adjacent to the first-level data blocks as second-level data blocks, and marking the remaining cubic grid units as third-level data blocks.

6. The method of claim 1, wherein, The calculating the loading priority order of the data blocks comprises: respectively calculating spatial straight-line distances between the center point of interest and the first-level data blocks, the second-level data blocks, and the third-level data blocks; respectively weighting each spatial straight-line distance to obtain a plurality of weighted distances, wherein the weights corresponding to the first-level data blocks, the second-level data blocks, and the third-level data blocks are sequentially increased; sequentially sorting the weighted distances in ascending order, and the sorting is the loading priority order of the corresponding data blocks.

7. The method of claim 1, wherein, The rendering the three-dimensional scene view comprises: before each frame of a WebGPU rendering loop, checking a data block list arranged according to the loading priority order; from the beginning of the data block list, sequentially querying loading and compiling states of each data block in the list, and removing the data blocks with completed states from the list; merging geometric vertex data of the removed data blocks into a vertex buffer, and merging texture image data associated with the removed data blocks into a texture array resource; using a rendering pass encoder of WebGPU, setting a uniform rendering state, and performing a drawing call on the merged vertex buffer and the texture array resource to render a complete three-dimensional scene view containing scene details corresponding to the loaded data blocks.

Citation Information

Patent Citations

  • Stereoscopic rendering method based on eyeball tracking and eye movement point prediction

    CN106648049A

  • WebGPU-based rendering method, electronic equipment and storage medium

    CN114494550A

  • Webpage 3D rendering and control method

    CN120876705A

  • Video-based systems and methods for generating compliance-annotated motion trails in a video sequence for assessing rule compliance for moving objects

    US20210233255A1