A timing linkage control method and device for a spherical screen
Patent Information
- Application Number
- CN202610885720.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2026-06-18
- Publication Date
- 2026-09-22
- Estimated Expiration
- 2046-06-18
AI Technical Summary
[0004]综上所述,现有技术在以下方面存在明显缺陷:其一,三轴旋转曲线与遮罩阈值曲线来源于不同的时间基准或控制模块,导致运动状态与遮罩状态难以同步演化;其二,自动播放与手动交互两种模式之间切换时,旋转角度与遮罩进度的状态继承规则不统一,易产生视觉上的控制突变或跳变;其三,在多线程渲染架构下,旋转参数与遮罩参数的提交时刻存在不一致窗口,造成相邻帧之间出现抖动、撕裂或边界错位等现象
[0026]第一,本发明将系统集成问题收敛为可审查的联动控制方法,以统一相对时间基准驱动三轴旋转时间窗与动态遮罩延时逻辑,从源头上保证各控制量处于同一时序参考系下演化,解决了多变量来源不同步的问题。
Smart Images

Figure CN122415958B_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of computer graphics and digital video processing technology, and specifically relates to a timing linkage control method and device for spherical screens. Background Technology
[0002] Spherical screens are increasingly used in immersive displays, planetariums, virtual reality, and digital exhibition halls. When playing video or image content, equidistant cylindrical projection is typically used, with a typical aspect ratio of 2:1. Existing research has largely solved fundamental problems such as spherical screen geometric correction, multi-projection splicing, and edge blending, but it has not yet systematically answered the core engineering question of "how rotation control and masking control are updated collaboratively on the same time reference."
[0003] Currently, spherical screen playback control systems mainly fall into three technical categories: The first is the geometry-correction-driven approach. This approach focuses on correcting geometric distortion, generating grids, and compensating for brightness uniformity in the projected image, ensuring accurate mapping of static images onto the spherical surface. However, its control logic typically only addresses static geometric relationships, lacking the ability to schedule the three-axis posture during dynamic rotation, and failing to define joint update rules between rotation and masking states. The second is the media distribution-driven approach. This approach focuses on viewport adaptive encoding, streaming media transmission signaling optimization, and bandwidth utilization improvement, suitable for VR headsets or 360-degree video streaming systems. Its core focus is on network transmission efficiency and client-side decoding caching strategies, without addressing the same-frame linkage control of rotation angle and latitudinal masking position at the spherical screen rendering end. The third is the hardware splicing-driven approach. This approach achieves spherical screen coverage through the optical path design of multiple projectors, mechanical structure splicing, and brightness compensation in overlapping areas. Its technical focus is on the optical and structural levels, typically not limiting the rendering control logic in the upper-level player software, nor specifying temporal consistency constraints for rotation and masking parameters.
[0004] In summary, the existing technology has significant drawbacks in the following aspects: First, the three-axis rotation curve and the masking threshold curve originate from different time bases or control modules, making it difficult for the motion state and masking state to evolve synchronously; Second, when switching between automatic playback and manual interaction modes, the state inheritance rules for rotation angle and masking progress are inconsistent, which can easily lead to visual control abrupt changes or jumps; Third, under the multi-threaded rendering architecture, there is an inconsistent window for the submission of rotation parameters and masking parameters, causing jitter, tearing, or boundary misalignment between adjacent frames. Summary of the Invention
[0005] To address the aforementioned technical problems, this invention provides a timing-linked control method and apparatus for spherical screens. By establishing a mapping relationship between the input video (or image) and a virtual sphere and a unified relative time reference, and using a time window as a constraint, the method drives the video (or image) to rotate along three axes on the spherical screen and update the rendering in conjunction with the masking mechanism.
[0006] To achieve the above objectives, the technical solution adopted by the present invention is as follows:
[0007] A timing-based linkage control method for a spherical screen, the method comprising:
[0008] Step S1: Based on the fixed position and orientation of the spherical screen, establish a mapping relationship between the input video or image and the virtual sphere, and map the texture coordinates to the coordinates of each point on the virtual sphere; and establish a unified relative time reference, recording the system startup time as the starting time, and using the time difference between the current time and the starting time as the relative time.
[0009] Step S2: Using the relative time as a common driving source, the rotation state update and latitudinal mask state update of each point on the virtual sphere are executed in parallel within the same frame; wherein, the rotation state update includes: when the current moment is within the time window of each rotation axis, outputting the three-axis rotation state quantity updated frame by frame; the mask state update includes: judging whether the mask start delay is satisfied according to the relative time, and if satisfied, calculating the latitudinal mask advance state quantity by a fixed step size, and outputting the mask advance state quantity updated frame by frame; within a single rendering callback cycle, the three-axis rotation state quantity and the mask advance state quantity are written into the fragment shader to realize the cumulative update of each state quantity;
[0010] Step S3: In the fragment shader stage, input the three-axis rotation state quantity, rotate each point of the virtual sphere in the three-axis direction, and use the mask advance state quantity to determine the mask position in the latitudinal direction.
[0011] Step S4: Based on the stated latitudinal masking position, determine the relationship between the latitude of each point on the virtual sphere and the masking position, and perform pixel-level masking determination. The virtual sphere points in the masked area are black, while the virtual sphere points in the unmasked area are calculated using a spherical inverse sampling model to inversely calculate the texture coordinates of the rotated video (or image). The color values of the video (or image) are then read using an OpenGL sampling model. The final color result of each point on the virtual sphere is rendered and output to the spherical screen for display.
[0012] Furthermore, in step S1: when in automatic mode, the relative time continues to accumulate; when switching to manual mode, the accumulation of the relative time is paused and the automatic update driven by time is stopped and controlled by manual input; when switching back to automatic mode, the accumulation continues from the accumulated value before the pause or a unified start time is re-recorded.
[0013] Furthermore, the rotation state update in step S2 includes: configuring a start time, an end time of rotation, and a speed multiplier for each rotation axis; when the relative time is within the interval determined by the start time and the end time of rotation, accumulating the rotation angle state quantity of the corresponding rotation axis frame by frame according to the product of the basic step size coefficient and the speed multiplier.
[0014] Furthermore, the masking advancement status update in step S2 includes: defining the initial masking latitude, the total masking advancement duration, the masking advancement rate, and the masking delay start time; triggering masking linkage when the relative time is greater than the masking delay start time; setting the masking enable position to true; and accumulating the current masking latitude advancement amount frame by frame using the product of the basic step size coefficient and the masking advancement rate.
[0015] Furthermore, the update of the three-axis rotation state variables satisfies the bounded change constraint: the absolute value of the difference between the rotation angle state variables of each rotation axis between two adjacent frames does not exceed the maximum rotation increment in a single frame; the update of the masking advance state variables satisfies the bounded change constraint: the absolute value of the difference between the current masking latitude advance amount between two adjacent frames does not exceed the maximum masking advance increment in a single frame; the maximum rotation increment in a single frame and the maximum masking advance increment in a single frame are jointly determined by the basic step size coefficient and the corresponding speed multiplier or masking advance rate.
[0016] Furthermore, step S3 includes: mapping the video texture coordinates of the equidistant cylindrical projection to spherical longitude and latitude angles to generate a unit spherical direction vector; constructing a three-axis rotation matrix using the three-axis rotation state variables to perform a rotation transformation on the unit spherical direction vector; recalculating the rotated unit spherical direction vector back into rotated texture coordinates, and performing pixel-level mask determination in the fragment shading stage according to the mask advance state variables and mask enable position: when the latitude of the current fragment is less than the mask latitude position, setting the fragment color to black.
[0017] Furthermore, the final color value corresponding to each point on the sphere satisfies the following judgment rule: when the current mask latitude advance is less than the latitude threshold constructed by the initial mask latitude and the total mask advance time, the pixel color of the sphere point is set to black; when the current mask latitude advance is greater than or equal to the latitude threshold, the pixel color of the sphere point is taken as the sampled value of the sphere inverse sampling model at the texture coordinates after rotation.
[0018] On the other hand, the present invention provides a timing linkage control device for a spherical screen, used to implement the aforementioned method, comprising:
[0019] The virtual sphere creation and time control module is used to establish a mapping relationship between the input video or image and the virtual sphere, taking into account the fixed position and posture of the spherical screen, and to map the texture coordinates to the coordinates of each point on the virtual sphere surface; and to establish a unified relative time reference, recording the system startup time as the starting time, and using the time difference between the current time and the starting time as the relative time.
[0020] The rotation calculation module is used to output frame-by-frame updated three-axis rotation state quantities based on the time window of each rotation axis, using the relative time as the driving source.
[0021] The mask calculation module is used to determine whether the mask start delay is satisfied, using the relative time as the driving source. If satisfied, it outputs the mask advancement state quantity updated frame by frame according to a fixed step size.
[0022] The spherical rendering module is used to write back the three-axis rotation state variables and the mask advance state variables in a single rendering callback cycle, and based on the spherical inverse calculation sampling model, use the three-axis rotation state variables to rotate the spherical direction, and use the mask latitude position to perform pixel-level mask determination to generate the rendered spherical image.
[0023] Thirdly, the present invention provides an electronic device, comprising: one or more processors; a memory for storing one or more programs; wherein, when the one or more programs are executed by the one or more processors, the one or more processors implement the aforementioned timing linkage control method for a spherical screen.
[0024] Fourthly, the present invention provides a computer-readable storage medium having executable instructions stored thereon, which, when executed by a processor, enable the processor to implement the aforementioned timing linkage control method for a spherical screen.
[0025] The beneficial effects of this invention are as follows:
[0026] First, this invention converges the system integration problem into an auditable linkage control method, using a unified relative time reference to drive the three-axis rotation time window and dynamic masking delay logic, ensuring from the source that each control quantity evolves under the same timing reference system, thus solving the problem of asynchronous multiple variable sources.
[0027] Second, this invention establishes a complete and traceable link from time parameters, rotation updates, latitudinal masking advancement to rendering criteria. The rigid body invariance of three-axis rotation ensures spherical pose changes rather than texture stretching transformations, and inverse sampling calculation after rotation ensures the continuity of cross-longitude seams.
[0028] Third, the present invention achieves seamless handover between automatic and manual modes through the mode bit. When switching, the rotation angle and masking progress can be clearly inherited and restarted, avoiding control abrupt changes or jumps.
[0029] Fourth, this invention updates and writes back the rotation state, mask state, and mask on / off state uniformly within the same callback cycle. All control quantities take effect uniformly when the frame is rendered, avoiding cross-frame misalignment such as "rotation has been updated but mask has not been updated" or "mask has been updated first but rotation has lagged behind", effectively suppressing discontinuous visual phenomena such as jitter, tearing, and sudden jumps.
[0030] Fifth, this invention can be directly embedded into the existing spherical screen rendering callback mechanism without modifying the underlying hardware system or replacing the projection equipment, and has good compatibility and scalability. Attached Figure Description
[0031] Figure 1 This is a flowchart of a timing linkage control method for a spherical screen according to the present invention;
[0032] Figure 2 This is a block diagram of a timing linkage control device for a spherical screen according to the present invention. Detailed Implementation
[0033] The present invention will be further described below with reference to the accompanying drawings and embodiments.
[0034] like Figure 1 As shown, this invention provides a time-series linkage control method for spherical screens. The overall process can be summarized as a "rotation-mask collaborative rendering closed loop driven by spherical domain resampling": The system input is a 2:1 panoramic video (or image) with equidistant cylindrical projection, whose width and height correspond to the 360° longitude and 180° latitude of the spherical surface, respectively. Control parameters are set, a unified relative time base is established, and the mapping relationship from the video (image) texture coordinates to the coordinates of each point on the virtual sphere is established in the fragment shader stage, forming a video (image) virtual sphere. Subsequently, the synchronous evolution of the video (image) virtual sphere's rotation state and masking state is driven by the unified time base. Control takeover is completed through an automatic / manual consistent state machine, and the rendering parameters are uniformly written back within the same callback cycle before display is executed. The core technology of this process is: maintaining geometric consistency through spherical domain rotation, maintaining boundary continuity through the temporal advancement of masking position, and ensuring that multiple parameters take effect in the same frame through a same-cycle write-back mechanism, thereby supporting the mathematical model, state transition rules, and stability constraints in subsequent steps. Specifically, the method includes:
[0035] Step S1, Virtual Sphere Creation and Time Control: Given the fixed position and posture of the spherical screen, rotation and masking effects need to be implemented on the virtual unit sphere. Therefore, we first establish a mapping relationship between the input video (or image) and the virtual sphere, mapping the texture coordinates to the coordinates of each point on the virtual sphere. We also establish a unified relative time reference, recording the system startup time as the starting time, and using the time difference between the current time and the starting time as the relative time.
[0036] Step S2, Rotation Angle Calculation and Mask Position Calculation: Using the relative time as a common driving source, the rotation state update and latitudinal mask state update of each point on the virtual sphere are performed in parallel within the same frame; wherein, the rotation state update includes: when the current moment is within the time window of each rotation axis, outputting the three-axis rotation angle state quantity updated frame by frame; the mask state update includes: judging whether the mask start delay is satisfied according to the relative time, and if satisfied, calculating the latitudinal mask advance state quantity by a fixed step size, and outputting the mask latitudinal position updated frame by frame; and recording the three-axis rotation state quantity and the mask advance state quantity, writing the state quantity into the fragment shader within a single rendering callback cycle to achieve the cumulative update of each state quantity;
[0037] Step S3, Calculation of texture coordinates and mask position: In the fragment shader stage, input the three-axis rotation state quantity, rotate each point of the virtual sphere in the three-axis direction, and use the mask advance state quantity to determine the mask position in the latitudinal direction.
[0038] Step S4, Spherical Screen Display Output: Based on the aforementioned latitudinal masking position, determine the relationship between the latitude of each point on the virtual sphere and the masking position, and perform pixel-level masking determination. The virtual sphere points in the masked area are black, while the virtual sphere points in the unmasked area are calculated based on the spherical inverse sampling model. The texture coordinates of the rotated video (or image) are calculated, and the color values of the video (or image) are read using the OpenGL sampling model. The final color result of each point on the virtual sphere is rendered and output to the spherical screen for display.
[0039] Furthermore, in step S1:
[0040] ① Unified time base:
[0041] When the system starts up and is in automatic mode, the recording time starts from [time point]. :
[0042] ;
[0043] The relative time of each frame is denoted as :
[0044] ;
[0045] Among them, osg is the underlying development dependency library OpenSceneGraph, and osg::Timer::instance() is used to record the relationship between the system and time, where t is the system time corresponding to the current frame; t s This is the unified start time recorded when the system starts in automatic mode. The relative time is the time difference between the current moment and the start of automatic mode. Directly participate in time window judgment. This indicates the returned high-precision stopwatch reading.
[0046] When the system is in automatic mode, relative time Continuous accumulation; when the user switches to manual mode, the time control module records the current relative time and pauses accumulation, and the rotation calculation module and masking calculation module stop automatic updates driven by time, and are instead controlled by manual input; when switching back to automatic mode, the system can choose to continue accumulation from before the pause or re-record the starting time t. s Reset time. This mechanism ensures seamless inheritance of rotation angle and masking progress when switching modes.
[0047] ② Virtual sphere mapping:
[0048] The 2:1 video texture coordinates of the equidistant cylindrical projection are first converted into the latitude and longitude of a virtual sphere, and a three-dimensional direction vector is generated. u and v are defined as the normalized texture coordinates of the input video (or image), with values ranging from [0,1]. , video texture coordinates Mapped to virtual spherical angles :
[0049] ;
[0050] ;
[0051] in, The longitude angle of the sphere, with a range of values of . ; The latitude angle of the sphere, with a range of values of . ;
[0052] The direction vector p corresponding to each point on the virtual sphere is obtained by inverse calculation from the video texture coordinates:
[0053] ;
[0054] Furthermore, in step S2:
[0055] Based on the rigid body invariance of three-axis rotation, the texture stretching changes during rotation are transformed into pose changes of pixels during the rotation of a virtual sphere. Using the relative time described in step S1 as the driving source, three-axis rotation state updates and mask state updates are performed in parallel within the same frame.
[0056] ① Three-axis rotational state update:
[0057] The initial state variables for the spherical texture rotation angles along the X, Y, and Z axes are: m x , m y , mz For each axis of the virtual sphere Configure triples ,in, Indicates the start time of the k-axis. This indicates the cutoff time when the k-axis ends its rotation. Given the velocity multiplier of the k-axis, calculate the actual k-axis rotation angle increment Δm. k :
[0058] In the formula, _MOVERATE_ is the basic step size coefficient set by the system.
[0059] like In the time interval [ Internal update of k-axis rotation state:
[0060] ;
[0061] like Then, the k-axis rotation state variable will be continuously updated from the start time:
[0062] ;
[0063] Where, m k The calculated rotation angle state variable along the k-axis of the virtual spherical coordinates is cumulatively updated during each frame's calculation. The final output is the three-axis rotation variable moveVec. .
[0064] ② Masking advance state quantity update:
[0065] Define the masking control parameter quadruple s as:
[0066] ;
[0067] in, This represents the initial latitude values of each point on the virtual sphere. Indicates the total duration of the masking process. Indicates the propulsion rate of the mask. Indicates the mask delay start time; when the condition is met... The masking action is triggered at any time.
[0068] Upon triggering, the mask switch state bWithShade is set to true (bWithShade=true), and the mask advance state variable is initialized. ,in Record the amount of mask advance in the current latitude direction, for each frame. Cumulative updates:
[0069] .
[0070] Furthermore, in step S3: the masking propulsion state quantity calculated in step S2 is used. Determine whether the pixel is in a masked state. For virtual sphere coordinates that are not in a masked state, input the three-axis rotation state variables calculated in step S2. The image is rotated, and finally the texture coordinates of the rotated video (or image) are calculated using a spherical inverse sampling model.
[0071] Direction vectors corresponding to each point on the rotated virtual sphere :
[0072] ;
[0073] in, , , Let represent the rotation matrices of P about the virtual sphere along the x, y, and z axes, respectively. , , This refers to the rotation angle state variables of the three axes in the current frame calculated in step S2.
[0074] Remap each point on the rotated virtual sphere back to two-dimensional texture coordinates to obtain the rotated texture coordinates. :
[0075] ;
[0076] ;
[0077] ;
[0078] ;
[0079] in, This represents the latitude angle corresponding to the direction vector after rotation. This represents the longitude angle corresponding to the rotated direction vector. `sgn()` is the sign function, and `arcsin()` and `arccos()` are inverse trigonometric functions. , , Direction vector Components on the x, y, and z axes.
[0080] Simultaneously calculate the current latitudinal mask position. :
[0081] .
[0082] Furthermore, in step 4: each frame of the image is output to generate the rendered spherical image, and the final color values of each point on the sphere are obtained. :
[0083] ;
[0084] in, This represents the OpenGL rendering sampling function, when hour, The color of the spherical pixel is set to black to achieve a masking effect. At that time, the color of the pixel on the spherical surface is taken from the color value at the rotated texture coordinates obtained from the video (or image) based on the spherical inverse sampling model. .
[0085] Example:
[0086] In this embodiment, the system runs on the Windows platform, uses OpenSceneGraph as the graphics rendering framework, and takes a 2:1 video as input. Upon system startup, a configuration file is loaded, creating a rendering view for video display and a menu view for parameter control, and establishing a link for video playback, parameter distribution, and frame-by-frame callback updates.
[0087] S1. Initialization and parameter loading:
[0088] After the system starts, it first reads the playback path, automatic start position parameters, three-axis automatic rotation parameters, and masking parameters from the configuration file. The specific configuration parameters are as follows:
[0089] Initial parameter configuration: m x =10, m y =0,m z =-20;
[0090] X-axis automatic rotation parameters: =40, =0, =-1;
[0091] Y-axis automatic rotation parameters: =0, =0, =0;
[0092] Z-axis automatic rotation parameters: =40, =70, =0.66;
[0093] Masking parameters: =90, =90, =100, =40.
[0094] The starting position parameter is used to set an initial three-axis posture write of the spherical display content at a certain moment after the automatic demonstration starts; the automatic rotation parameters of the X-axis, Y-axis and Z-axis are used to limit the start time, end time and speed ratio of their respective rotation axes; the masking parameter is used to limit the initial latitude, total duration, advance rate and delayed start time of the masking.
[0095] S2. Establishing rendering variables:
[0096] In the spherical screen rendering branch, the system creates three shader uniform variables:
[0097] moveVec is used to characterize the three-axis rotational control variables;
[0098] shadeTimeVec is used to characterize the masking progress state;
[0099] bWithShade is used to represent the mask on / off state.
[0100] Among them, moveVec is a three-dimensional vector, whose three components correspond to the cumulative rotation of the spherical content in three directions; shadeTimeVec is a three-dimensional vector, whose first component represents the current mask advance amount, the second component represents the total mask duration parameter, and the third component represents the mask advance rate; bWithShade is a Boolean value used to control whether mask determination is enabled.
[0101] S3. Establish a unified start time:
[0102] In the frame-by-frame callback function, when the automatic start flag is detected to be valid for the first time, the system records the current running time as the unified start time of the automatic mode.
[0103] This unified start time serves as the time reference for all subsequent automatic calculations. Thereafter, within each frame, the system uses the difference between the current running time and the unified start time as the relative time for judgment:
[0104] Has the start position write time been reached?
[0105] Has the mask delay start time been reached?
[0106] Is it within the X-axis rotation time window?
[0107] Is it within the Y-axis rotation time window?
[0108] Is it within the Z-axis rotation time window?
[0109] Therefore, the three-axis rotation control and the masking control share the same starting time reference, thereby reducing the phase misalignment caused by inconsistent reference times among multiple control quantities.
[0110] S4, Write to the starting position:
[0111] Once the current running time meets the condition of "unified start time + start moment", the system will write the preset start position parameters into moveVec all at once. In this embodiment, when the automatic mode is started and reaches 39 seconds, the system will set moveVec to (10,0,-20) all at once, so that the spherical display content first enters the specified initial posture, and then the subsequent linkage process begins.
[0112] S5, Mask Delay Start-up and Progression:
[0113] When the current running time exceeds "unified start time + mask delay start time", the system initiates mask linkage control. In this embodiment, the mask start delay is 40 seconds, so the system activates the mask 40 seconds after the start of automatic mode. After the mask is activated, shadeTimeVec.x increases frame by frame according to "base step size × mask advance rate", thereby driving the mask boundary to continuously advance along the spherical latitude direction.
[0114] S6, Three-axis Time Window Update:
[0115] The system performs time window checks on the X, Y, and Z axes respectively. For any rotation axis: when the end time is greater than 0, frame-by-frame updates are performed only between the start and end times; when the end time is less than or equal to 0, frame-by-frame updates are performed continuously from the start time. In this embodiment: the X-axis parameter is... =40, =0, =-1, therefore the X-axis continuously increments moveVec.x by -1 after 40 seconds; the Y-axis parameter is =0, =0, =0, therefore the Y-axis does not rotate, i.e., moveVec.y=0; the Z-axis parameter is =40, =70, =0.66, therefore the Z-axis is updated by incrementing moveVec.z by 0.66 every 40 to 70 seconds.
[0116] S7. Spherical inverse sampling and mask determination:
[0117] During the fragment shading stage, the system reads the input 2:1 video texture coordinates (u,v), first converts them into virtual spherical angles, and then further converts them into virtual spherical direction vectors; then, it constructs a three-axis rotation matrix based on moveVec and performs rotation on the direction vectors; then, it inversely calculates the rotated direction vectors into new sampling coordinates (u0,v0) and samples the video texture accordingly.
[0118] After completing texture sampling, the system further determines the mask based on bWithShade and shadeTimeVec. When the mask switch is active and the current fragment's latitude is less than the mask's latitude, the fragment's color is set to black, thus creating a dynamic masking effect that advances along the latitude lines of the spherical screen.
[0119] S8. Rendering Output and Effects:
[0120] Finally, the system uniformly transmits the control quantities to the fragment shading stage, performs spherical rotation, inverse sampling, and mask determination processing on the current video texture, and outputs the processed image to a spherical screen for display. In this embodiment, the rendered spherical image can continuously change with a unified time reference: on the one hand, the spherical texture content rotates along the X, Y, and Z axes according to a preset time window, forming a continuous spherical posture transformation effect; on the other hand, after the mask activation condition is met, the mask boundary gradually moves along the latitude direction of the spherical screen according to a preset advancement rate, thereby forming a dynamic display effect that is linked to the spherical rotation process in a time sequence.
[0121] On the other hand, such as Figure 2 As shown, this invention provides a timing linkage control device for a spherical screen, comprising modules capable of implementing the steps of the aforementioned method, specifically including:
[0122] Virtual Sphere Creation and Time Control Module: This module is used to establish a mapping relationship between the input video or image and the virtual sphere, taking into account the fixed position and posture of the spherical screen. It maps texture coordinates to the coordinates of each point on the virtual sphere and establishes a unified relative time reference. The system startup time is recorded as the starting time, and the time difference between the current time and the starting time is used as the relative time. This module determines "when to start, when to end, and when to link", and is a key constraint layer to ensure the consistency of the timing of three-axis rotation and dynamic masking.
[0123] Rotation Calculation Module: Responsible for frame-by-frame updates of the three-axis rotation status. The module uses a unified relative time as a criterion, determining whether to perform incremental updates on the rotation amounts for each of the X, Y, and Z axes based on their respective time windows. When the end time is less than or equal to zero, it indicates that the corresponding axis has been continuously rotating since reaching the start time. Essentially, this module is a multi-axis, window-based angular displacement integrator, outputting continuously updated three-axis rotation vectors for use by the rendering module.
[0124] Masking calculation module: Responsible for masking start / stop and position advancement. The module first determines when to open the mask based on the masking start delay, then advances the masking timing parameters in fixed steps; during the fragment stage, it determines whether to black out based on the spherical latitude direction position, achieving smooth movement of the mask boundary along the spherical latitude lines. This module runs in parallel with the rotation module, but shares the same relative time base, ensuring that the masking phase and rotation phase can be repeatedly reproduced.
[0125] The spherical rendering module completes spherical texture mapping and fragment shading output. Its inputs are video (or image) texture, rotation vector, masking parameters, and masking enable bits. The core process involves first converting the current texture coordinates into a spherical orientation vector, then applying a three-axis rotation matrix, and finally recalculating back to the texture coordinates for sampling and executing masking criteria. This module does not directly generate control variables; it only determinates the control variables during the rendering phase, ensuring a one-to-one correspondence between the output image and the control state.
[0126] Thirdly, the present invention provides an electronic device, comprising: one or more processors; a memory for storing one or more programs; wherein, when the one or more programs are executed by the one or more processors, the one or more processors implement the aforementioned timing linkage control method for a spherical screen.
[0127] Fourthly, the present invention provides a computer-readable storage medium having executable instructions stored thereon, which, when executed by a processor, enable the processor to implement the aforementioned timing linkage control method for a spherical screen.
[0128] The specific embodiments described above further illustrate the purpose, technical solution, and beneficial effects of the present invention. It should be understood that the above descriptions are merely specific embodiments of the present invention and are not intended to limit the present invention. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the protection scope of the present invention.
Claims
1. A timing-based linkage control method for a spherical screen, characterized in that, The method includes: Step S1: Based on the fixed position and orientation of the spherical screen, establish a mapping relationship between the input video or image and the virtual sphere, and map the texture coordinates to the coordinates of each point on the virtual sphere; and establish a unified relative time reference, recording the system startup time as the starting time, and using the time difference between the current time and the starting time as the relative time. Step S2: Using the relative time as a common driving source, the rotation state update and latitudinal mask state update of each point on the virtual sphere are executed in parallel within the same frame; wherein, the rotation state update includes: when the current moment is within the time window of each rotation axis, the three-axis rotation state quantity is updated frame by frame; the mask state update includes: judging whether the mask start delay is satisfied according to the relative time, and if satisfied, calculating the latitudinal mask advance state quantity with a fixed step size, and outputting the mask advance state quantity updated frame by frame; within a single rendering callback cycle, the three-axis rotation state quantity and the mask advance state quantity are written into the fragment shader to realize the cumulative update of each state quantity; Step S3: In the fragment shader stage, input the three-axis rotation state quantity, rotate each point of the virtual sphere in the three-axis direction, and use the mask advance state quantity to determine the mask position in the latitudinal direction. Step S4: Based on the masking position in the latitude direction, determine the relationship between the latitude of each point on the virtual sphere and the masking position, perform pixel-level masking determination, and calculate the texture coordinates of each point on the virtual sphere in the unmasked area based on the spherical inverse sampling model, after rotating the video or image, and render and output the results to the spherical screen for display.
2. The timing linkage control method for a spherical screen according to claim 1, characterized in that, In step S1: when in automatic mode, the relative time continues to accumulate; when switching to manual mode, the accumulation of the relative time is paused and the automatic update driven by time is stopped and controlled by manual input; when switching back to automatic mode, the accumulation continues from the accumulated value before the pause or a unified start time is re-recorded.
3. The timing linkage control method for a spherical screen according to claim 1, characterized in that, The rotation state update in step S2 includes: configuring a start time, an end time of rotation, and a speed multiplier for each rotation axis; when the relative time is within the interval determined by the start time and the end time of rotation, accumulating the rotation angle state quantity of the corresponding rotation axis frame by frame according to the product of the basic step size coefficient and the speed multiplier.
4. The timing linkage control method for a spherical screen according to claim 3, characterized in that, The masking advancement status update in step S2 includes: defining the initial masking latitude, the total masking advancement duration, the masking advancement rate, and the masking delay start time; triggering masking linkage when the relative time is greater than the masking delay start time; setting the masking enable position to true; and accumulating the current masking latitude advancement amount frame by frame using the product of the basic step size coefficient and the masking advancement rate.
5. The timing linkage control method for a spherical screen according to claim 1, characterized in that, The update of the three-axis rotation state variables satisfies the bounded change constraint: the absolute value of the difference between the rotation angle state variables of each rotation axis between two adjacent frames does not exceed the maximum rotation increment in a single frame; the update of the masking advance state variables satisfies the bounded change constraint: the absolute value of the difference between the current masking latitude advance amount between two adjacent frames does not exceed the maximum masking advance increment in a single frame; the maximum rotation increment in a single frame and the maximum masking advance increment in a single frame are jointly determined by the basic step size coefficient and the corresponding speed multiplier or masking advance rate.
6. The timing linkage control method for a spherical screen according to claim 1, characterized in that, Step S3 includes: mapping the video texture coordinates of the equidistant cylindrical projection to spherical longitude and latitude angles to generate a unit spherical direction vector; constructing a three-axis rotation matrix using the three-axis rotation state variables to perform a rotation transformation on the unit spherical direction vector; recalculating the rotated unit spherical direction vector back into rotated texture coordinates; and performing pixel-level mask determination in the fragment shading stage based on the mask advance state variables and mask enable position: when the latitude of the current fragment is less than the mask latitude position, setting the fragment color to black.
7. The timing linkage control method for a spherical screen according to claim 6, characterized in that, The final color value corresponding to each point on the sphere satisfies the following judgment rules: when the current mask latitude advance is less than the latitude threshold constructed by the initial mask latitude and the total mask advance time, the pixel color of the sphere point is set to black; when the current mask latitude advance is greater than or equal to the latitude threshold, the pixel color of the sphere point is taken as the sampled value of the sphere inverse sampling model at the texture coordinates after rotation.
8. A timing-linked control device for a spherical screen, used to implement the method described in any one of claims 1-7, characterized in that, include: The time control module is used to establish a mapping relationship between the input video or image and the virtual sphere, taking into account the fixed position and posture of the spherical screen, and to map the texture coordinates to the coordinates of each point on the virtual sphere. It also establishes a unified relative time reference, recording the system startup time as the starting time, and using the time difference between the current time and the starting time as the relative time. The rotation calculation module is used to output frame-by-frame updated three-axis rotation state quantities based on the time window of each rotation axis, using the relative time as the driving source. The mask calculation module is used to determine whether the mask start delay is satisfied, using the relative time as the driving source. If satisfied, it outputs the mask advancement state quantity and mask enable bit that are updated frame by frame according to a fixed step size. The spherical rendering module is used to write back the three-axis rotation state variables and the mask advance state variables in a single rendering callback cycle, and based on the spherical inverse calculation sampling model, use the three-axis rotation state variables to rotate the spherical direction, and use the mask advance state variables and the mask enable bits to perform pixel-level mask determination to generate the rendered spherical image.
9. An electronic device, characterized in that, include: One or more processors; Memory, used to store one or more programs; When one or more programs are executed by the one or more processors, the one or more processors implement the timing linkage control method for a spherical screen as described in any one of claims 1-7.
10. A computer-readable storage medium, characterized in that, It stores executable instructions that, when executed by a processor, enable the processor to implement the timing linkage control method for a spherical screen as described in any one of claims 1-7.
Citation Information
Patent Citations
Method and device for synthesizing spherical screen image
CN115760555A
Model rendering method and device, electronic equipment and storage medium
CN116543087A