Virtual scene multi-user group navigation method based on visual symmetry

By generating pre-training preference data groups and user satisfaction information and adjusting the user's perspective direction, the problem of poor perspectives among team members in the virtual environment is solved, visually symmetric multi-user group navigation is realized, and user experience and tour guide efficiency are improved.

CN120451460AActive Publication Date: 2025-08-08BEIHANG UNIV
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202510545285.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-28
Publication Date
2025-08-08
Estimated Expiration
2045-04-28

AI Technical Summary

Technical Problem

In the existing group navigation methods in virtual environments, members at the edge of the team have poor perspective problems, resulting in uneven tourist experience.

Method used

By obtaining user location data, generating pre-training preference data groups, constructing user satisfaction information, generating target viewing point position data, generating jump curve data, and adjusting the user's viewing angle direction based on the perspective conversion data to achieve visually symmetric multi-user group navigation.

Benefits of technology

It provides the best viewing experience for all passengers, ensures consistency of the visual space, reduces the operational burden of the tour guide, and quantifies the user's viewing experience in virtual scenes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120451460A_ABST
    Figure CN120451460A_ABST
Patent Text Reader

Abstract

The embodiment of the invention discloses a virtual scene multi-user group navigation method based on visual symmetry. A specific embodiment of the method comprises the following steps: acquiring each piece of user position data corresponding to each target user; generating a pre-training preference data group corresponding to each pre-training visual data pair; constructing user satisfaction information; generating target viewing point position data; generating each piece of target position data; generating each piece of jump curve data corresponding to each target user; determining each piece of jump position data; generating view angle conversion data; and adjusting the view angle direction of the target user. According to the embodiment, the experience of visiting the virtual exhibit in the virtual scene by the user can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present disclosure relate to the field of computer technology, and in particular to a multi-user group navigation method for a virtual scene based on visual symmetry. Background Art

[0002] Group navigation technology is an important research area in virtual reality, focusing on how to coordinate and manage the navigation behavior of multiple users in a shared virtual environment. With the widespread adoption of multi-user virtual reality systems, researchers are increasingly focusing on extending or enhancing single-user navigation methods to support the needs of groups exploring virtual spaces together.

[0003] In their 2019 study, Weissker et al. introduced a group navigation technique called multi-ray hopping, specifically designed for users in two co-located scenes in virtual reality. Multi-ray hopping addresses the spatial positioning confusion that can arise with traditional group hopping by displaying a path line from each user's current location to their intended destination. This approach effectively improves operational efficiency and user experience by enhancing each user's spatial perception and path planning accuracy, while also reducing cognitive load and the incidence of motion sickness.

[0004] In 2020, Weissker et al. further expanded on the multi-ray hopping technique, developing a group navigation technology suitable for distributed virtual environments. This new group navigation technology allows the navigator to dynamically adjust the user's spatial form during goal planning, thereby improving the joint navigation experience for both users. This technology not only supports synchronized hopping but also introduces dynamic path planning and real-time adjustment capabilities. Research has shown that this form adjustment significantly improves travel efficiency and reduces the burden on guides and passengers.

[0005] In 2021, Weissker and Froehlich's research delved into group navigation technology in guided tour scenarios in distributed virtual environments. The group navigation method they developed not only improved the navigation efficiency of tour guides and the following accuracy of team members, but also proved through actual application in a virtual museum environment that the technology can effectively reduce participants' dizziness and improve spatial cognition. Through a simplified user interface and intuitive navigation commands, the technology greatly facilitates user operation, and even visitors who are using the virtual reality system for the first time can quickly master and effectively follow the group. The results of the study show that this system is superior to traditional team navigation methods in user ease of operation and navigation efficiency, especially showing significant advantages when managing large groups. This study not only demonstrates the superior performance of the new group navigation method in practical applications, but also emphasizes the importance of effectively coordinating and managing team interactions in multi-user virtual reality systems, providing valuable experience and insights for the design of future virtual reality guide systems.

[0006] However, when using the above method to perform group navigation for multiple users, the following technical problems often occur: in existing group navigation methods in virtual environments, members at the edge of the team have problems such as poor viewing angles, resulting in an uneven tourist experience. Summary of the Invention

[0007] The content of this disclosure is used to briefly introduce concepts that will be described in detail in the detailed description section below. The content of this disclosure is not intended to identify key features or essential features of the claimed technical solution, nor is it intended to limit the scope of the claimed technical solution.

[0008] Some embodiments of the present disclosure propose a virtual scene multi-user group navigation method based on visual symmetry to solve one or more of the technical problems mentioned in the above background technology section.

[0009] In a first aspect, some embodiments of the present disclosure provide a virtual scene multi-user group navigation method based on visual symmetry, the method comprising: obtaining user position data corresponding to each target user; generating a pre-trained preference data group corresponding to each pre-trained visual data pair based on preset pre-trained visual data pairs, wherein each pre-trained visual data pair in each pre-trained visual data pair includes two pre-trained visual data; constructing user satisfaction information based on each pre-trained visual data pair and the pre-trained preference data group; generating target viewing point position data based on a preset virtual viewing area and the user satisfaction information; generating each target position data based on the target viewing point position data; generating each jump curve data corresponding to each target user based on the user position data and the target position data; determining each jump position data based on the jump curve data; generating perspective conversion data for each jump position data in the jump position data based on the jump position data and preset center position data; and adjusting the perspective direction of each target user in the target users based on the generated perspective conversion data.

[0010] The above-mentioned embodiments of the present disclosure have the following beneficial effects: (1) A new visual symmetry group navigation method is proposed to provide an optimal viewing experience for all passengers while ensuring the consistency of their visual space. (2) A user satisfaction model is constructed to quantify the user's viewing experience in the virtual scene. (3) A method for automatically generating the best viewing point is proposed to reduce the operational burden of the tour guide. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] The above and other features, advantages, and aspects of the various embodiments of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings. Throughout the drawings, the same or similar reference numerals represent the same or similar elements. It should be understood that the drawings are schematic and that components and elements are not necessarily drawn to scale.

[0012] Figure 1 is a flow chart of some embodiments of a method for multi-user group navigation in a virtual scene based on visual symmetry according to the present disclosure;

[0013] Figure 2 It is a schematic diagram of the scene when the user visits the virtual exhibits in the virtual scene;

[0014] Figure 3 This is a schematic diagram of an application scenario of a virtual scene multi-user group navigation method based on visual symmetry in some embodiments of the present disclosure. DETAILED DESCRIPTION

[0015] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as being limited to the embodiments described herein. On the contrary, these embodiments are provided to provide a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are for illustrative purposes only and are not intended to limit the scope of protection of the present disclosure.

[0016] It should also be noted that, for ease of description, only the parts related to the invention are shown in the drawings. In the absence of conflict, the embodiments and features in the embodiments of the present disclosure may be combined with each other.

[0017] It should be noted that the concepts of "first" and "second" mentioned in this disclosure are only used to distinguish different devices, modules or units, and are not used to limit the order or interdependence of the functions performed by these devices, modules or units.

[0018] It should be noted that the modifications of "one" and "multiple" mentioned in the present disclosure are illustrative rather than restrictive, and those skilled in the art should understand that unless otherwise clearly indicated in the context, they should be understood as "one or more".

[0019] The names of the messages or information exchanged between multiple devices in the embodiments of the present disclosure are only used for illustrative purposes and are not used to limit the scope of these messages or information.

[0020] The present disclosure will be described in detail below with reference to the accompanying drawings and in conjunction with embodiments.

[0021] Figure 1The flowchart 100 of some embodiments of the method for navigating a virtual scene multi-user group based on visual symmetry according to the present disclosure is shown. The method for navigating a virtual scene multi-user group based on visual symmetry comprises the following steps:

[0022] Step 101: Acquire the location data of each target user.

[0023] In some embodiments, the execution entity may obtain user location data corresponding to each target user. The execution entity may be a server. Each target user may be a user who wishes to visit a virtual exhibit in a virtual scene. Each piece of user location data may be a virtual coordinate corresponding to the target user's initial location. The virtual coordinates may be three-dimensional coordinates in a virtual coordinate system. The virtual coordinates may include a horizontal coordinate, a vertical coordinate, and a vertical coordinate. The virtual coordinate system may be a coordinate system constructed in the virtual scene. The virtual exhibit may be a virtual exhibit created in the virtual scene using digital technology. The virtual exhibit may have exhibit location data corresponding to it. The exhibit location data may be the virtual coordinates corresponding to the virtual exhibit. The virtual scene may be a virtual scene built on an open platform and generated using VR (Virtual Reality) technology. For example, the development platform may be Unity. In practice, the location acquisition API of the development platform may be called to obtain the user location data corresponding to each target user. The location acquisition API may obtain the coordinates of the user in the virtual scene. For example, the position acquisition API may be XRInput Tracking of the OpenXR plug-in in Unity.

[0024] Step 102 : Based on the preset pre-trained visual data pairs, generate a pre-trained preference data set corresponding to each pre-trained visual data pair.

[0025] In some embodiments, the execution entity may generate a pre-trained preference data set corresponding to each of the pre-trained visual data pairs based on the preset pre-trained visual data pairs. Each of the pre-trained visual data pairs may be an ordered array consisting of two pre-trained visual data. Each of the pre-trained visual data pairs may include two pre-trained visual data. Each of the two pre-trained visual data may represent the angle from which a target user views the virtual product. Each of the two pre-trained visual data may include pre-trained viewing angle data and pre-trained sight line deflection data. The pre-trained viewing angle data may represent the viewing angle of the target user when viewing the virtual exhibit at the location corresponding to the pre-trained visual data. The pre-trained sight line deflection data may represent the deflection angle of the target user when viewing the virtual exhibit at the location corresponding to the pre-trained visual data. For example, the pre-trained visual data may be (30°, 15°), indicating that the pre-trained viewing angle data included in the pre-trained visual data is 30° and the pre-trained sight line deflection data included in the pre-trained visual data is 15°. Each of the two pre-trained visual data may correspond to initial preference level data. The initial preference level data may be a numerical value used to characterize the target user's satisfaction with the current location when visiting the virtual exhibit. When the processing step is executed for the first time, the initial preference level data used may be a numerical value pre-set by a technician. When the processing step is executed for the second time, the initial preference level data used may be the gradient preference data generated when the processing step is executed for the first time. When the processing step is executed for the third time, the initial preference level data used may be the gradient preference data generated when the processing step is executed for the second time. And so on, until the processing steps are completed. Each of the gradient preference data may be a numerical value used to characterize the target user's satisfaction when visiting the virtual product at the corresponding location. The pre-trained preference data group may be a data group obtained by combining the initial preference level data.

[0026] In some optional implementations of some embodiments, pre-trained preference data sets corresponding to the respective pre-trained visual data pairs may be generated based on the respective pre-trained visual data pairs through the following steps:

[0027] Based on each of the above pre-trained visual data pairs, the following processing steps are performed:

[0028] In the first step, for each of the above pre-trained visual data pairs, perform the following steps:

[0029] In a first sub-step, the pre-trained visual data that satisfies a preset first visual data condition among the two pre-trained visual data included in the pre-trained visual data pair is determined as the first pre-trained visual data. The first visual data condition may be that the pre-trained visual data ranks higher in the pre-trained visual data pair.

[0030] In the second sub-step, the pre-trained visual data that does not meet the first visual data condition among the two pre-trained visual data included in the pre-trained visual data pair is determined as the second pre-trained visual data.

[0031] The third sub-step is to generate preference data corresponding to the first pre-trained visual data based on the initial preference level data corresponding to the first pre-trained visual data and the initial preference level data corresponding to the second pre-trained visual data. The preference data may represent the probability that the user prefers the first pre-trained visual data over the second pre-trained visual data. In practice, the preference data corresponding to the first pre-trained visual data may be generated based on the initial preference level data corresponding to the first pre-trained visual data and the initial preference level data corresponding to the second pre-trained visual data using the following formula:

[0032]

[0033] Wherein, the above P(i>j) may be the target user's preference data for the above first pre-trained visual data compared to the above second pre-trained visual data. i The above θ may be the initial preference level data corresponding to the first pre-trained visual data. j The initial preference level data corresponding to the second pre-trained visual data may be used. Φ may be the cumulative distribution function of a standard normal distribution. σ may be a preset standard data. The standard data may be the standard deviation corresponding to the cumulative distribution function. The standard data may be 1.

[0034] The second step is to generate cumulative preference data corresponding to each of the pre-trained visual data pairs based on the generated preference data. The cumulative preference data may be the product of the above-mentioned preference data. In practice, the following formula can be used to generate cumulative preference data corresponding to each of the pre-trained visual data pairs based on the generated preference data:

[0035]

[0036] Among them, the above L(θ1, θ2, ... θ n ) can be the above-mentioned cumulative preference data. nThe above-mentioned k can be the index of each pre-trained visual data pair. ik The initial preference level data corresponding to the first pre-trained visual data in the k-th pre-trained visual data pair can be jk It can be the initial preference level data corresponding to the second pre-trained visual data in the kth pre-trained visual data pair. The above m can represent the number of the above pre-trained visual data pairs. The above Π can be a multiplication symbol.

[0037] The third step is to determine the logarithm of the cumulative preference data as the cumulative preference logarithm data, wherein the logarithm can be a logarithm with base 2.

[0038] The fourth step is to determine the difference between the above cumulative preference logarithmic data and the initial logarithmic data as the logarithmic incremental data.

[0039] The fifth step, in response to determining that the above-mentioned logarithmic incremental data meets the preset logarithmic convergence condition, determines each initial preference level data as a pre-trained preference data group corresponding to each of the above-mentioned pre-trained visual data pairs. Particularly, the above-mentioned logarithmic convergence condition may be that the above-mentioned logarithmic incremental data is less than a preset incremental value. The above-mentioned incremental value may be a pre-set value. Here, there is no limitation on the specific setting of the above-mentioned incremental value. In practice, for each of the first pre-trained visual data included in each of the above-mentioned pre-trained visual data pairs, each initial preference level data may be combined into a pre-trained preference data group corresponding to each of the above-mentioned first pre-trained visual data. Particularly, each of the above-mentioned first pre-trained visual data corresponds one-to-one to each of the pre-trained preference data in the above-mentioned pre-trained preference data group.

[0040] Optionally, in response to determining that the logarithmic incremental data satisfies a preset logarithmic convergence condition, after determining each initial preference level data as a pre-trained preference data group corresponding to each pre-trained visual data pair, the execution subject may further perform the following steps:

[0041] In response to determining that the logarithmic incremental data does not satisfy the logarithmic convergence condition, the following steps are performed:

[0042] In the first step, for each pre-trained visual data that meets a preset data update condition in each pre-trained visual data pair, the following data update steps are performed:

[0043] The first sub-step is to determine the initial preference level data corresponding to the pre-trained visual data as the target preference level data. The data update condition may be that the pre-trained visual data has not been subjected to the data update step.

[0044] The second sub-step is to generate gradient preference data corresponding to the pre-trained visual data based on the cumulative logarithmic preference data and the target preference level data. The gradient preference data may be the gradient corresponding to the cumulative logarithmic preference data and the target preference level data. In practice, the gradient preference data corresponding to the pre-trained visual data may be generated based on the cumulative logarithmic preference data and the target preference level data using the following gradient formula:

[0045]

[0046] Among them, the above The above logL(θ1, θ2, ... θ n ,) can be the above-mentioned cumulative preference logarithmic data. Can be the partial derivative sign. i It can be the target preference level data. The above k can be the index of the pre-trained visual data pair corresponding to the target preference level data in the above pre-trained visual data pairs. When the pre-trained visual data is the first pre-trained visual data in each pre-trained visual data pair, the term corresponding to the minuend in the above gradient formula can positively increase the target preference level data. The preference data may be the preference data corresponding to the first pre-trained visual data in the pre-trained visual data pair. When the pre-trained visual data is the second pre-trained visual data in the pre-trained visual data pair, the item corresponding to the subtrahend may reduce the target preference level data. The above-mentioned π may be the preference data corresponding to the second pre-trained visual data in the pre-trained visual data pair. The above-mentioned π may be the pi. The above-mentioned e may be a natural constant. The above-mentioned Φ may be the above-mentioned cumulative distribution function. The above-mentioned σ may be the above-mentioned standard data.

[0047] The third sub-step is to determine the above-mentioned gradient preference data as the initial preference level data corresponding to the above-mentioned pre-trained visual data, so as to update the initial preference level data corresponding to the above-mentioned pre-trained visual data.

[0048] In the second step, the accumulated preference logarithmic data are determined as the initial logarithmic data to update the initial logarithmic data.

[0049] In the third step, the above processing steps are performed again using the updated initial preference level data and the updated initial logarithmic data.

[0050] Step 103: construct user satisfaction information based on each pre-trained visual data pair and the pre-trained preference data set.

[0051] In some embodiments, the execution entity may construct user satisfaction information based on the pre-trained visual data pairs and the pre-trained preference data set, wherein the user satisfaction information may be a formula for representing the corresponding relationship between user satisfaction and pre-trained visual data.

[0052] In some optional implementations of some embodiments, the execution entity may construct user satisfaction information based on the pre-trained visual data pairs and the pre-trained preference data set through the following steps:

[0053] In the first step, the pre-trained preference data in the pre-trained preference data set that meets a preset first data condition is determined as the first pre-trained preference data. The preset first data condition may be that the pre-trained preference data has the smallest value in the pre-trained preference data set.

[0054] In the second step, the pre-trained preference data in the pre-trained preference data set that meets a preset second data condition is determined as the second pre-trained preference data. The preset second data condition may be that the pre-trained preference data has the largest value in the pre-trained preference data set.

[0055] The third step is to normalize each pre-trained preference data in the pre-trained preference data group to obtain normalized preference data.

[0056] In practice, for each pre-trained preference data in the pre-trained preference data group, the pre-trained preference data can be normalized using the following formula to obtain normalized preference data:

[0057]

[0058] Among them, the above θ′ i The above θ can be the normalized preference data. i It can be the pre-trained preference data. The min(θ) can be the first pre-trained preference data. The max(θ) can be the second pre-trained preference data.

[0059] The fourth step is to generate user satisfaction information based on the above-mentioned pre-trained visual data pairs and the obtained normalized preference data. In practice, first, for each of the above-mentioned pre-trained visual data pairs, the pre-trained visual data that meets the above-mentioned first visual data condition in the two pre-trained visual data included in the above-mentioned pre-trained visual data pair can be determined as the first pre-trained visual data. Then, for each of the determined first pre-trained visual data, the normalized preference data corresponding to the above-mentioned first pre-trained visual data in the above-mentioned normalized preference data can be determined as the target normalized preference data. Then, a polynomial can be constructed as a user satisfaction polynomial based on the above-mentioned first pre-trained visual data and the above-mentioned target normalized preference data through the following formula:

[0060] f(x,y)=p 00 +p 10 x+p 01 y+p 20 x 2 +p 11 xy+p 02 y2;

[0061] Wherein, the above f(x, y) can be the above target normalized preference data. 00 Can be the constant to be solved. 10 、p 01 、p 20 、p 11 、p 02 The x and y can be the coefficients to be solved. The x can be the pre-trained viewing angle data included in the first pre-trained visual data. The y can be the pre-trained sight line deflection data included in the first pre-trained visual data.

[0062] Finally, each constructed user satisfaction polynomial can be fitted using a polynomial fitting algorithm to obtain a fitted formula as user satisfaction information. The polynomial fitting algorithm can be a least squares method.

[0063] Step 104 : generating target viewing point location data based on the preset virtual viewing area and user satisfaction information.

[0064] In some embodiments, the execution entity may generate target viewing point location data based on a preset virtual viewing area and the user satisfaction information, wherein the virtual viewing area may be an area in the virtual scene for viewing the virtual exhibits.

[0065] In some optional implementations of some embodiments, the execution entity may generate target viewing point location data based on a preset virtual viewing area and the user satisfaction information through the following steps:

[0066] The first step is to determine the visual data of the viewing point to be optimized based on a preset virtual viewing area. The visual data of the viewing point to be optimized may be pre-trained visual data of any point in the virtual viewing area relative to the virtual exhibit. The visual data of the viewing point to be optimized may include viewing angle data to be optimized and sight line deflection data to be optimized. The viewing angle data to be optimized may be pre-trained viewing angle data corresponding to the visual data of the viewing point to be optimized. The sight line deflection data to be optimized may be pre-trained sight line deflection data corresponding to the visual data of the viewing point to be optimized.

[0067] In practice, first, the virtual coordinates corresponding to any point in the virtual viewing area can be determined as coordinates to be optimized. Second, the difference between the horizontal coordinate included in the coordinates to be optimized and the horizontal coordinate included in the exhibit location data can be determined as horizontal coordinate difference data. Then, the difference between the vertical coordinate included in the coordinates to be optimized and the vertical coordinate included in the exhibit location data can be determined as vertical coordinate difference data. Then, the sum of the squares of the horizontal coordinate difference data and the squares of the vertical coordinate difference data can be determined as coordinate square sum data. Then, the square root corresponding to the coordinate square sum data can be determined as coordinate square root data. Then, the ratio of the vertical coordinate difference data to the coordinate square root data can be determined as coordinate ratio data. Then, the coordinate ratio data can be input into an inverse tangent function to obtain the angle output by the inverse tangent function as viewing angle data to be optimized. Then, the ratio of the vertical coordinate difference data to the horizontal coordinate difference data can be determined as aspect ratio data. Then, the aspect ratio data can be input into an inverse tangent function to obtain the angle output by the inverse tangent function as the sight line deflection data to be optimized. Finally, the viewing angle data to be optimized and the sight line deflection data to be optimized can be combined into the viewing point visual data to be optimized.

[0068] In the second step, based on the visual data of the viewing point to be optimized, the following update steps are performed:

[0069] In a first sub-step, based on the visual data of the viewing point to be optimized and the user satisfaction information, comprehensive data corresponding to the visual data of the viewing point to be optimized is generated as the comprehensive data to be optimized. The comprehensive data to be optimized may be a numerical value representing the quality of the visual data of the viewing point to be optimized. For example, the comprehensive data to be optimized may be 0.9.

[0070] The second sub-step is to generate disturbance data based on the initial temperature coefficient. The disturbance data may be pre-trained visual data randomly generated according to the initial temperature coefficient. The disturbance data corresponds to disturbance position data. The disturbance position data may be virtual coordinates corresponding to the disturbance data. The initial temperature coefficient may be a parameter for controlling the number of executions of the update step. In practice, first, a vector with one row and two columns may be randomly generated as a disturbance vector by a random function. Then, the product of the initial temperature coefficient and the disturbance vector may be determined as disturbance data. Then, a three-dimensional coordinate may be randomly generated by the random function as the disturbance position data corresponding to the disturbance vector. The random function may be a function that can generate random numbers. For example, the random function may be a random function.

[0071] In the third sub-step, the sum of the visual data of the viewing point to be optimized and the perturbed data is determined as the visual data of the viewing point to be processed. The visual data of the viewing point to be processed corresponds to coordinates to be processed. The coordinates to be processed may be virtual coordinates corresponding to the visual data of the viewing point to be processed. In practice, the coordinates to be processed may be determined as the sum of the coordinates to be optimized and the perturbed position data.

[0072] The fourth sub-step is to generate, based on the aforementioned viewing point visual data to be processed and the aforementioned user satisfaction information, comprehensive data corresponding to the aforementioned viewing point visual data to be processed as the comprehensive data to be processed. The comprehensive data to be processed may be a numerical value used to characterize the quality of the aforementioned viewing point visual data to be processed. In practice, first, comprehensive data corresponding to the aforementioned viewing point visual data to be processed may be generated as the comprehensive data to be processed. The method for generating the comprehensive data for the aforementioned viewing point visual data to be processed can be referenced to the specific implementation method for generating the comprehensive data for the aforementioned viewing point visual data to be optimized, and will not be further elaborated here.

[0073] The fifth sub-step is to determine the difference between the above-mentioned comprehensive data to be processed and the above-mentioned comprehensive data to be optimized as comprehensive difference data.

[0074] In a sixth sub-step, in response to determining that the comprehensive difference data satisfies a preset difference condition, the preset initial probability data is determined as the viewing point probability data. The difference condition may be that the comprehensive difference data is less than or equal to a preset difference value. The preset difference value may be a pre-set value. The specific setting of the preset difference value is not limited. The initial probability data may be 1.

[0075] In a seventh sub-step, in response to determining that the comprehensive difference data does not satisfy the difference condition, executing the following steps:

[0076] Sub-step 1: determining the ratio of the above-mentioned comprehensive difference data to the initial temperature coefficient as comprehensive temperature ratio data.

[0077] Sub-step 2: Determine the viewing point probability data based on the above-mentioned comprehensive temperature ratio data and a preset exponential coefficient. The exponential coefficient may be a natural constant e. The above-mentioned viewing point probability data may be used to characterize the probability that the above-mentioned viewing point visual data to be processed is better than the above-mentioned viewing point visual data to be optimized, that is, the probability of accepting the above-mentioned viewing point visual data to be processed as the current solution. In practice, the viewing point probability data may be determined as the power of the above-mentioned exponential coefficient to the comprehensive temperature ratio data. For example, when the above-mentioned comprehensive temperature ratio data is 5, the above-mentioned viewing point probability data is e raised to the power of 5.

[0078] In an eighth sub-step, in response to determining that the determined viewing point probability data satisfies a preset acceptance condition, the pending viewing point visual data is determined as the pending viewing point visual data to be optimized, thereby updating the pending viewing point visual data. The acceptance condition may be that the viewing point probability data is greater than a preset acceptance threshold. The acceptance threshold may be a pre-set value. The specific setting of the acceptance threshold is not limited herein. In practice, the pending coordinates corresponding to the pending viewing point visual data may be determined as the pending coordinates corresponding to the pending viewing point visual data to be optimized, thereby updating the pending coordinates.

[0079] A ninth sub-step, in response to determining that the determined viewing point probability data does not satisfy the above-mentioned acceptance condition, determines the viewing point visual data to be optimized as the viewing point visual data to be optimized, so as to update the viewing point visual data to be optimized.

[0080] A tenth sub-step, in response to determining that the initial temperature coefficient satisfies a preset temperature coefficient condition, performing the following steps:

[0081] Sub-step 1: Determine the updated viewing point visual data to be optimized as the viewing point visual data. The temperature coefficient condition may be that the initial temperature coefficient is greater than a preset temperature threshold. The temperature threshold may be a pre-set value. The specific setting of the temperature threshold is not limited.

[0082] Sub-step 2: Generate target viewing point position data based on the viewing point visual data. The target viewing point position data may be virtual coordinates corresponding to the viewing point visual data. In practice, the coordinates to be optimized corresponding to the viewing point visual data may be determined as the target viewing point position data.

[0083] In the eleventh sub-step, in response to determining that the initial temperature coefficient does not satisfy the above temperature coefficient condition, performing the following steps:

[0084] Sub-step 1: The product of the initial temperature coefficient and the preset attenuation coefficient is determined as the initial temperature coefficient to update the initial temperature coefficient. The attenuation coefficient can be a preset value less than 1. For example, the attenuation coefficient can be 0.9.

[0085] Sub-step 2: performing the above updating step again using the updated initial temperature coefficient and the updated visual data of the viewing point to be optimized.

[0086] In some optional implementations of some embodiments, the comprehensive data to be optimized may be generated based on the visual data of the viewing point to be optimized and the above-mentioned user satisfaction information through the following steps:

[0087] The first step is to generate an occlusion detection result based on the visual data of the viewing point to be optimized. The occlusion detection result can be a label indicating whether there is occlusion between the location corresponding to the visual data of the viewing point to be optimized and the virtual exhibit. For example, the occlusion detection result can be "occlusion exists" or "occlusion does not exist." In practice, first, the coordinates to be optimized corresponding to the visual data of the viewing point to be optimized can be determined as the detection start coordinates. Second, the vector from the detection start coordinates to the exhibit location data can be determined as the detection direction vector. Then, an occlusion detection method can be used to perform occlusion detection along the direction corresponding to the detection direction vector to obtain a detection return value. The detection return value can be a string indicating whether there is occlusion between the detection start coordinates and the exhibit location data. For example, the detection return value can be "true" or "false." If the detection return value is determined to be "true," "occlusion exists" can be determined as the occlusion detection result. If the detection return value is determined to be "false," "occlusion does not exist" can be determined as the occlusion detection result. The occlusion detection method can be a method capable of detecting the presence of occlusion. For example, the occlusion detection method may be ray detection in Unity.

[0088] The second step is to generate the satisfaction data to be optimized based on the visual data of the viewing point to be optimized and the user satisfaction information. The satisfaction data to be optimized may be the user satisfaction corresponding to the visual data of the viewing point to be optimized. In practice, the visual data of the viewing point to be optimized may be input into the user satisfaction information to generate the satisfaction data to be optimized.

[0089] In the third step, in response to determining that the occlusion detection result meets the preset occlusion condition, the following steps are performed:

[0090] In a first sub-step, the difference between the satisfaction data to be optimized and a preset baseline penalty coefficient is determined as the penalty difference data to be optimized. The occlusion condition may be that the occlusion detection result is "occlusion present." The baseline penalty coefficient may be a preset, relatively small constant. For example, the baseline penalty coefficient may be 0.1.

[0091] In the second sub-step, the product of a preset negative penalty coefficient and the penalty difference data to be optimized is determined as the penalty item data. The negative penalty coefficient may be a pre-set negative number used to determine the degree of influence of the penalty difference data to be optimized. For example, the negative penalty coefficient may be -1.

[0092] In the fourth step, in response to determining that the occlusion detection result does not meet the occlusion condition, a preset penalty data is determined as the penalty item data. The penalty data may be a preset value. For example, the penalty data may be 0.

[0093] The fifth step is to determine the sum of the satisfaction data to be optimized and the penalty item data as the comprehensive data corresponding to the visual data of the viewing point to be optimized.

[0094] Step 6: Determine the above comprehensive data as comprehensive data to be optimized.

[0095] Step 105: Generate various target position data based on the target viewing point position data.

[0096] In some embodiments, the execution entity may generate various target location data based on the target viewing point location data.

[0097] In the process of adopting technical solutions to solve the above technical problems, the following problems often arise:

[0098] When selecting a visiting location for each user in a virtual scene, computing resources are required to perform obstacle detection on each coordinate point in the visiting area, resulting in low efficiency in selecting the visiting location and large computing resources consumed when performing obstacle detection on each coordinate point in the visiting area.

[0099] Faced with the above technical problems, we decided to adopt the following solutions:

[0100] In some optional implementations of some embodiments, the execution entity may generate various target position data based on the target viewing point position data through the following steps:

[0101] The first step is to determine the number of each target user as user quantity data.

[0102] The second step is to determine the number of users to be detected based on the user quantity data. The number of users to be detected may be the number corresponding to each location to be detected. In practice, the user product data can be first determined as the product of the user quantity data and a first preset value. The first preset value may be 2. The number of users to be detected can then be determined as the difference between the user product data and a second preset value. The second preset value may be 1.

[0103] The third step is to determine the target viewing point data and arc curve information based on the target viewing point position data and the preset curve construction information. The curve construction information may be information corresponding to the arc to be constructed. The curve construction information may include radius, arc starting angle, arc ending angle and arc normal information. The arc normal information may be a normal vector corresponding to the virtual plane where the arc is located. The virtual plane may be a plane in the virtual coordinate system. The arc normal information may be parallel to the vertical axis of the virtual coordinate system. The target viewing point data may be a vector from the target viewing point position data to the virtual coordinate origin. The virtual coordinate origin may be the coordinate origin of the virtual coordinate system. The arc curve information may be an expression corresponding to the arc with the target viewing point position data as the center.

[0104] In practice, first, the difference between the target viewing point position data and the virtual coordinate origin can be determined as the target viewing point data. Then, the arc curve information can be determined based on the target viewing point position data and the curve construction information using the following arc construction formula:

[0105]

[0106] Wherein, the above x0 can be the horizontal coordinate of the above target viewing point position data. The above y0 can be the vertical coordinate of the above target viewing point position data. The above z0 can be the vertical coordinate of the above target viewing point position data. The above r can be the radius included in the above curve construction information. It can be the angle of the arc. The corresponding range can be the range from the arc starting angle to the arc ending angle. It can be when the radius is r and the angle is When , the horizontal coordinate of a point on the arc corresponds to. It can be when the radius is r and the angle is When , the vertical coordinate of a point on the arc corresponds to. It can be when the radius is r and the angle is When , the vertical coordinate of a point on the arc corresponds to .

[0107] In the fourth step, based on the minimum user distance data, the maximum user distance data, the arc curve information, and the user quantity data, the following iterative steps are performed:

[0108] The first sub-step is to determine the arc midpoint data based on the arc curve information. The arc midpoint data may be a vector from the midpoint of the target arc to the virtual coordinate origin. The target arc may be the arc represented by the arc curve information. In practice, the curve construction information may include the difference between the arc end angle and the arc start angle, which is determined as the arc center angle. The arc center angle may then be input into the arc curve information to obtain the arc midpoint data.

[0109] The second sub-step is to determine the difference between the target viewing point data and the arc midpoint data as the arc radius data.

[0110] The third sub-step is to determine the modulus of the arc radius data as the arc radius modulus data.

[0111] The fourth sub-step is to determine the ratio of the arc radius data to the arc radius modulus data as unit data.

[0112] The fifth sub-step is to determine the to-be-detected distance data based on the minimum user distance data and the maximum user distance data, wherein the to-be-detected distance data may be an average value of the minimum user distance data and the maximum user distance data.

[0113] The sixth sub-step is to generate the center angle data based on the above-mentioned to-be-detected spacing data and the above-mentioned arc radius modulus data. The above-mentioned center angle data may be the center angle corresponding to the target arc when the arc length is the above-mentioned to-be-detected spacing data. In practice, the center angle data can be generated based on the above-mentioned to-be-detected spacing data and the above-mentioned arc radius modulus data using the following formula:

[0114]

[0115] Wherein, the γ may be the central angle data, the arcsin may be the inverse sine function, the D may be the distance data to be detected, and the r may be the arc radius modulus data, i.e., the radius included in the curve construction information.

[0116] The seventh sub-step is to generate various angle data to be detected based on the user quantity data, the to-be-detected quantity data and the circle center angle data, wherein each of the various angle data to be detected may be the circle center angle corresponding to the to-be-detected quantity data.

[0117] In practice, first, a sequence of data to be detected can be determined based on the aforementioned number of data to be detected. The aforementioned sequence of data to be detected can be a sequence of data corresponding to non-negative integers less than the aforementioned number of data to be detected. For example, when the aforementioned number of data to be detected is 5, the corresponding sequence of data to be detected is {0, 1, 2, 3, 4}. Then, for each data to be detected in the aforementioned sequence of data to be detected, the following steps can be performed to generate angle data to be detected based on the aforementioned user number data, the aforementioned data to be detected, and the aforementioned central angle data:

[0118]

[0119] Among them, the above γ i The above-mentioned angle data to be detected can be the above-mentioned data. The above-mentioned N can be the above-mentioned data on the number of users. The above-mentioned γ can be the above-mentioned data on the central angle of the circle. The above-mentioned i can be the above-mentioned data to be detected.

[0120] The eighth sub-step is to generate each position data to be detected based on the target viewing point data, the arc radius modulus data, the angle data to be detected, and the unit data. Each of the position data to be detected can be a virtual coordinate corresponding to the angle data to be detected.

[0121] In practice, for each of the aforementioned position data to be detected, the position data to be detected can be generated based on the target viewing point data, the arc radius modulus data, the angle data to be detected, and the unit data using the following formula:

[0122]

[0123] Among them, the above P i It can be the above-mentioned position data to be detected. The above r can be the above arc radius modulus data. i It can be the above angle data to be detected. x It can be the component of the above unit data in the horizontal coordinate direction. y It can be the component of the above unit data in the vertical coordinate direction. z It can be the component of the above unit data in the vertical coordinate direction.

[0124] The ninth sub-step involves performing obstacle detection on each of the aforementioned positions to be detected, thereby obtaining an obstacle detection result. The obstacle detection result may indicate whether an obstacle exists between the position corresponding to the aforementioned position data and the position corresponding to the aforementioned exhibit location data. For example, the obstacle detection result may be "obstacle present" or "obstacle not present." In practice, first, a vector from the aforementioned position data to the aforementioned exhibit location data may be determined as a direction vector to be detected. Then, an obstacle detection method may be used to perform obstacle detection along the direction corresponding to the aforementioned direction vector to obtain an obstacle return value. The obstacle return value may be a string indicating whether an obstacle exists between the position corresponding to the aforementioned position data and the position corresponding to the aforementioned exhibit location data. For example, the obstacle return value may be "true" or "false." If the obstacle return value is determined to be "true," "obstacle present" may be determined as the obstacle detection result. If the obstacle return value is determined to be "false," "obstacle not present" may be determined as the obstacle detection result. The obstacle detection method may be a method capable of detecting whether there is occlusion, for example, ray detection in Unity.

[0125] In a tenth sub-step, in response to each obstacle detection result obtained satisfying a preset detection result condition, executing the following steps:

[0126] Sub-step 1: combining the above-mentioned interval data to be detected and the above-mentioned respective position data to be detected into interval position data.

[0127] Sub-step 2: storing the spacing position data in a spacing position data list to update the spacing position data list. The spacing position data list may be a list for storing spacing position data.

[0128] Sub-step three: determining the above-mentioned distance data to be detected as the minimum user distance data, so as to update the minimum user distance data.

[0129] In the eleventh sub-step, in response to each obstacle detection result obtained not satisfying the above detection result condition, the above to-be-detected distance data is determined as the maximum user distance data, so as to update the maximum user distance data.

[0130] In the twelfth sub-step, the difference between the maximum user distance data and the minimum user distance data is determined as the interval data.

[0131] In a thirteenth sub-step, in response to determining that the interval data satisfies a preset interval condition, the iterative step is performed again. The interval condition may be that the interval data is greater than a preset precision data. The precision data may be a preset value. For example, the precision data may be 0.05.

[0132] In a fourteenth sub-step, in response to determining that the interval data does not satisfy the interval condition, executing the following steps:

[0133] Sub-step 1: determining the spacing position data in the updated spacing position data list that meets a preset spacing condition as the target spacing position data, wherein the preset spacing condition may be that the value of the spacing data to be detected included in the spacing position data is the largest.

[0134] Sub-step 2: determining each to-be-detected position data included in the target spacing position data as each target position data.

[0135] The above technical solution and its related contents, combined with steps 101 to 109, serve as an inventive feature of an embodiment of the present disclosure, resolving the issue of "high computing resource consumption." Factors contributing to high computing resource consumption are often as follows: When selecting a viewing location for each user in a virtual scene, computing resources are required to perform obstacle detection for each coordinate point in the viewing area, resulting in low efficiency in selecting viewing locations and high computing resource consumption for obstacle detection at each coordinate point in the viewing area. Addressing these factors can reduce computing resource consumption. To achieve this, the present disclosure first determines the number of target users as user quantity data. This allows the number of users to be determined. Second, based on this user quantity data, the number of locations to be detected is determined. Based on the number of users, the number of locations to be detected can be determined. Then, based on the target viewing point location data and preset curve construction information, target viewing point data and arc curve information are determined. Then, based on the minimum user spacing data, the maximum user spacing data, the arc curve information, and the user quantity data, the following iterative steps are performed: First, arc midpoint data is determined based on the arc curve information. Next, the difference between the target viewing point data and the arc midpoint data is determined as arc radius data. Then, the modulus of the arc radius data is determined as arc radius modulus data. Then, the ratio of the arc radius data to the arc radius modulus data is determined as unit data. Next, based on the minimum user distance data and the maximum user distance data, the distance data to be detected is determined. Thus, the distance between two adjacent users can be determined. Next, based on the distance data to be detected and the arc radius modulus data, central angle data is generated. Next, based on the user number data, the number data to be detected, and the central angle data, each angle data to be detected is generated. Next, based on the target viewing point data, the arc radius modulus data, each angle data to be detected, and the unit data, each position data to be detected is generated. Thus, each position data to be detected can be determined, and in subsequent processes, only the aforementioned position data to be detected is tested, rather than all coordinate points. This improves data processing efficiency and reduces computing resource consumption. Next, obstacle detection processing is performed on each of the aforementioned pieces of position data to be detected to obtain an obstacle detection result. Then, in response to each obstacle detection result satisfying a preset detection result condition, the following steps are performed: First, the aforementioned distance data to be detected and the aforementioned pieces of position data to be detected are combined into distance position data. In this way, distance data to be detected without obstacles and the corresponding pieces of position data to be detected can be combined into distance position data. Second, the distance position data is stored in a distance position data list to update the list.Thus, the to-be-detected distance data that meets the above-mentioned detection result conditions can be stored in the distance position data list. The to-be-detected distance data is then determined as the minimum user distance data, thereby updating the minimum user distance data. Then, in response to each obstacle detection result not meeting the above-mentioned detection result conditions, the to-be-detected distance data is determined as the maximum user distance data, thereby updating the maximum user distance data. Then, the difference between the maximum user distance data and the minimum user distance data is determined as the interval data. Then, in response to determining that the interval data meets the preset interval conditions, the above-mentioned iterative steps are performed again. Then, in response to determining that the interval data does not meet the interval conditions, the following steps are performed: Then, the distance position data in the updated distance position data list that meets the preset interval conditions is determined as the target distance position data. Thus, the distance position data with the largest data in the distance position data list can be determined as the target distance position data. Finally, each to-be-detected position data included in the target distance position data is determined as each target position data. Thus, each target position data can be obtained. Because the overall position of each user can be determined first, an arc is then defined based on this overall position, and individual viewing locations are determined on this arc. Ultimately, users are distributed around the virtual exhibit in the shape of the arc, thus reducing the likelihood of marginal users experiencing a poor user experience due to poor viewing angles. Furthermore, because the locations to be detected can be determined first, and obstacle detection is then performed at each location, data processing efficiency can be improved when selecting viewing locations, thereby reducing the consumption of computing resources when performing obstacle detection at each location.

[0136] Step 106 : generating jump curve data corresponding to each target user based on each user position data and each target position data.

[0137] In some embodiments, the execution entity may generate jump curve data corresponding to each target user based on the user location data and the target location data. Each of the jump curve data may be a parabola corresponding to when the user jumps to the corresponding target location data.

[0138] In practice, first, for each of the above-mentioned user location data, the target location data that meets the preset jump condition in the above-mentioned target location data can be determined as the target location to be processed corresponding to the above-mentioned user location data. The above-mentioned preset jump condition can be that the target location data has not been determined before. Then, the straight-line distance between the above-mentioned target location to be processed and the above-mentioned user location data can be determined as the location distance data. Then, based on the above-mentioned user location data and the above-mentioned target location to be processed, the jump curve data corresponding to the above-mentioned user location data can be generated by the following formula:

[0139]

[0140] Among them, the above x start The y may be the horizontal coordinate included in the above user location data. start The z can be the vertical coordinate included in the above user location data. start It can be the vertical coordinate included in the above user location data. end The y can be the horizontal coordinate of the target position to be processed. end The z can be the vertical coordinate of the target position to be processed. end It can be the vertical coordinate included in the above-mentioned target position to be processed. The above-mentioned t can be a normalized time parameter. The above-mentioned normalized time parameter can be a parameter located in the interval [0,1] and used to characterize the time process during the jump. In practice, the ratio of the jump time corresponding to the target user to the preset total jump time can be determined as the normalized time parameter. Among them, the above-mentioned jump time can be the time interval between the current moment and the start of the jump. The above-mentioned total jump time can be the maximum time that the target user can use when jumping. The above-mentioned α can be a preset adjustment coefficient. The above-mentioned adjustment coefficient can be a pre-set coefficient for adjusting the shape of the parabola. For example, the above-mentioned adjustment coefficient is -0.5. The above-mentioned d can be the above-mentioned position distance data.

[0141] In the process of adopting technical solutions to solve the above technical problems, the following problems often arise:

[0142] When the computing resources required to generate each jump curve data are greater than the pre-allocated computing resources, the generation efficiency of each jump curve data is likely to be low. When the computing resources required to generate each jump curve data are less than the pre-allocated computing resources, the allocated computing resources are likely to be wasted.

[0143] Faced with the above technical problems, we decided to adopt the following solutions:

[0144] Optionally, after generating the jump curve data corresponding to the target users based on the user location data and the target location data, the execution subject may further perform the following steps:

[0145] The first step is to monitor in real time the processor resource usage data corresponding to the generation of each jump curve data. The processor resource usage data may be CPU utilization. In practice, the execution entity may monitor in real time the processor resource usage data corresponding to the generation of each jump curve data using a resource viewing instruction. The resource viewing instruction may be a top instruction.

[0146] In a second step, in response to determining that the processor resource usage information does not meet a preset resource usage condition, the following steps are performed:

[0147] In a first sub-step, the difference between the preset expected resource usage data and the processor resource usage information is determined as resource difference data. The resource usage condition may be that the processor resource usage information is within a preset resource usage range. The resource usage range may be a range corresponding to CPU utilization. For example, the resource usage range may be [50%, 65%]. The expected resource usage data may be a pre-assigned CPU utilization used to generate each jump curve data. For example, the expected resource usage data may be 65%.

[0148] The second sub-step is to determine the sum of the resource difference data and the previously acquired cumulative resource difference data as the cumulative difference data, wherein the cumulative resource difference data may be the sum of all resource difference data generated by the execution subject before the current moment.

[0149] The third sub-step is to determine the difference between the resource difference data and the previously acquired historical resource difference data as difference change data. The historical resource difference data may be the resource difference data determined last time by the execution entity.

[0150] The fourth sub-step is to generate resource update data based on the resource difference data, the cumulative difference data and the difference change data.

[0151] In practice, the execution entity may generate resource update data based on the resource difference data, the cumulative difference data, and the difference change data using the following formula:

[0152] R output =R error ×K e +R all ×K a +R last ×K l ;

[0153] Among them, the above R output Data can be updated for the above resources. error It can be the above resource difference data. e It can be a preset resource update coefficient. The resource update coefficient can be a value used to characterize the weight of the resource update data. For example, the resource update coefficient can be 0.7. all It can be the above-mentioned cumulative difference data. a It can be a preset cumulative coefficient. The cumulative coefficient can be a value used to characterize the weight of the cumulative difference data. For example, the cumulative coefficient can be 0.2. last It can be the above difference change data. l The difference coefficient may be a preset difference coefficient. The difference coefficient may be a value used to characterize the weight of the difference change data. For example, the difference coefficient may be 0.1.

[0154] The fifth sub-step is, in response to determining that the above-mentioned resource update data is greater than the preset update data, increasing the processor resources when generating the above-mentioned jump curve data. The above-mentioned update data may be a preset value. Here, there is no limitation on the specific setting of the above-mentioned update data. The above-mentioned processor resources may be CPU resources. In practice, the above-mentioned execution subject may increase the number of replicas when generating the above-mentioned jump curve data through resource adjustment instructions to increase the processor resources when generating the above-mentioned jump curve data. The above-mentioned resource adjustment instruction may be a kubectl_scale instruction. The above-mentioned replica may be a Pod, the smallest deployment unit in Kubernetes.

[0155] The sixth sub-step is, in response to determining that the resource update data is greater than the update data, reducing processor resources when generating each jump curve data. In practice, the execution entity may use the resource adjustment instruction to reduce the number of copies when generating each jump curve data, thereby reducing processor resources when generating each jump curve data.

[0156] The above technical solution and its related contents, combined with steps 101 to 109, serve as an inventive feature of an embodiment of the present disclosure, addressing the issue of "wasted computing resources." Factors that often lead to wasted computing resources include: when the computing resources required to generate each jump curve data item exceed the pre-allocated computing resources, this can easily lead to low efficiency in generating each jump curve data item. When the computing resources required to generate each jump curve data item are less than the pre-allocated computing resources, this can easily lead to waste of the allocated computing resources. Addressing these factors can reduce computing resource waste. To achieve this, the present disclosure first monitors processor resource usage data corresponding to the generation of each jump curve data item in real time. This allows for real-time monitoring of the computing resources consumed when generating each jump curve data item. Next, in response to determining that the processor resource usage information does not meet preset resource usage conditions, the following steps are performed: First, the difference between the preset expected resource usage data and the processor resource usage information is determined as resource difference data. This provides the difference between the currently consumed computing resources and the pre-allocated computing resources. Next, the cumulative difference data is determined as the sum of the resource difference data and pre-acquired cumulative resource difference data. The difference between the resource difference data and previously acquired historical resource difference data is then determined as difference change data. Resource update data is then generated based on the resource difference data, the cumulative difference data, and the difference change data. This determines the amount of computing resources that need to be increased or decreased. Furthermore, in response to determining that the resource update data is greater than the preset update data, the processor resources used to generate each jump curve data item are increased. This increases the computing resources allocated to generating each jump curve data item. Finally, in response to determining that the resource update data is greater than the update data item, the processor resources used to generate each jump curve data item are reduced. This reduces the computing resources allocated to generating each jump curve data item. Because the computing resources consumed when generating each jump curve data item can be monitored in real time and the allocated computing resources can be dynamically adjusted, the probability of low generation efficiency due to insufficient computing resource allocation and the probability of wasted computing resources due to excessive computing resource allocation can be reduced.

[0157] Step 107: Determine each jump position data based on each jump curve data.

[0158] In some embodiments, each jump position data can be determined based on the above-mentioned jump curve data. Each jump position data in the above-mentioned jump position data can be a virtual coordinate corresponding to the position actually reached by the user after jumping according to the corresponding jump curve data. In practice, the above-mentioned jump curve data can be randomly sent to each user terminal corresponding to each of the above-mentioned target users, so that each user terminal can receive a unique jump curve data. Then, for each of the above-mentioned user terminals, in response to receiving the jump completion information and user current position data sent by the above-mentioned user terminal, the above-mentioned user current position data can be determined as the jump position data. The above-mentioned jump completion information can be information used to characterize that the user has completed the jump. The above-mentioned user current position data can be the three-dimensional coordinates of the target user corresponding to the above-mentioned user terminal at the current moment in the above-mentioned virtual coordinate system. The above-mentioned user terminal can be a head-mounted display worn by the target user. For example, the above-mentioned user terminal can be VR glasses.

[0159] Step 108 : For each jump position data in each jump position data, generate viewing angle conversion data based on the jump position data and the preset center position data.

[0160] In some embodiments, perspective conversion data may be generated for each of the jump position data based on the jump position data and preset center position data. The center position data may be a vector from the exhibit position data to the virtual coordinate origin. The perspective conversion data may be data that requires conversion of the user's perspective.

[0161] In practice, for each of the aforementioned jump position data, first, the difference between the aforementioned jump position data and the aforementioned virtual coordinate origin can be determined as a jump direction vector. Then, the difference between the aforementioned jump direction vector and the aforementioned center position data can be determined as a sight direction vector. Then, the difference between the aforementioned sight direction vector and the aforementioned jump direction vector can be determined as a target direction vector. Then, the viewing angle vector corresponding to the aforementioned target direction vector can be generated using the following formula:

[0162]

[0163] Among them, the above It can be the above-mentioned viewing angle vector. It can be the target direction vector mentioned above.

[0164] Then, the target perspective can be generated based on the above perspective vector using the following formula:

[0165]

[0166] The β mentioned above can be the target viewing angle, and the arccos mentioned above can be an inverse cosine function.

[0167] Then, the perspective quaternion data can be generated based on the above perspective vector and the above target perspective by the following formula:

[0168]

[0169] Among them, the above q t It can be the above-mentioned perspective quaternion data. x It can be the horizontal coordinate value included in the above-mentioned viewing angle vector. y It can be the vertical coordinate value included in the above-mentioned viewing angle vector. z It can be the vertical coordinate value included in the above-mentioned viewing angle vector.

[0170] Then, the user terminal corresponding to the above-mentioned jump position data can be determined as the target user terminal. Then, the preset request information can be sent to the above-mentioned target user terminal. Among them, the above-mentioned request information can be used to request to obtain the terminal rotation information corresponding to the above-mentioned target user terminal. The above-mentioned terminal rotation information can be a quaternion used to characterize the rotation state of the above-mentioned target user terminal relative to the above-mentioned virtual coordinate system. Then, in response to receiving the terminal rotation information sent by the above-mentioned target user terminal, the above-mentioned terminal rotation information can be determined as the current perspective quaternion data. Then, the inverse of the above-mentioned current perspective quaternion data can be determined as the current perspective inverse quaternion data. Then, the product of the above-mentioned perspective quaternion data and the above-mentioned current perspective inverse quaternion data can be determined as rotation data. Finally, the product of the above-mentioned perspective quaternion data and the above-mentioned rotation data can be determined as perspective conversion data.

[0171] Step 109 : For each target user, adjust the viewing angle of the target user based on the generated viewing angle conversion data.

[0172] In some embodiments, for each of the target users, the viewing angle direction of the target user can be adjusted based on the generated viewing angle conversion data. In practice, for each of the target users, first, the viewing angle conversion data corresponding to the target user in the viewing angle conversion data can be determined as the target viewing angle conversion data. Then, the target viewing angle conversion data can be sent to the user terminal corresponding to the target user, so that the user terminal can apply the target viewing angle conversion data to the main viewing angle corresponding to the target user to adjust the viewing angle direction of the target user. The main viewing angle can be the first viewing angle for the user to observe and interact in the virtual scene.

[0173] Figure 2 It is a schematic diagram of the scene when a user visits a virtual exhibit in a virtual scene. Figure 2 “(a)” in the figure may be an image corresponding to the third perspective when the user visits the above virtual exhibit. Figure 2 The “user” in the example may be a user who visits a virtual exhibit in the aforementioned virtual scene. Figure 2 The “virtual exhibits” in the above-mentioned virtual scenes may be exhibits. Figure 2 The “ground” in the example may be a plane in the aforementioned virtual scene. Figure 2 The P in can be the user's point in the above virtual coordinate system. Figure 2 The M in the figure may be the boundary point of the user's field of view when visiting the virtual exhibits in the virtual scene. Figure 2 M in T It can be the foot of the perpendicular from point M to the ground. Figure 2 The N in the figure can be a visual field boundary point different from point M when the user visits a virtual exhibit in a virtual scene. Figure 2 N in T It can be the foot of the perpendicular from point N to the ground. Figure 2 The e in can be the center point between point M and point N. Figure 2 e in T It can be the foot of the perpendicular from point e to the ground. Figure 2 The n in can be the normal line pointing downward perpendicular to the ground. Figure 2 The θ in θ can be the maximum angle of the user's field of view. Figure 2 The φ in the equation can be the distance between point P and e T The angle between the line corresponding to the point and n. Figure 2 “(b)” in the figure may be an image corresponding to the first perspective of the user when visiting the above virtual exhibit.

[0174] Figure 3 This is a schematic diagram of an application scenario of a virtual scene multi-user group navigation method based on visual symmetry in some embodiments of the present disclosure. Figure 3 The "a", "b", "c", "d", "e", "f" and "g" in the image can be the numbers corresponding to the images respectively.

[0175] The above description is only an illustration of some preferred embodiments of the present disclosure and the technical principles used. Those skilled in the art should understand that the scope of the invention involved in the embodiments of the present disclosure is not limited to the technical solutions formed by the specific combination of the above-mentioned technical features, but should also cover other technical solutions formed by any combination of the above-mentioned technical features or their equivalent features without departing from the above-mentioned inventive concept. For example, the above-mentioned features are replaced with (but not limited to) technical features with similar functions disclosed in the embodiments of the present disclosure.

Claims

1. A multi-user group navigation method for a virtual scene based on visual symmetry, comprising: Obtaining the location data of each user corresponding to each target user; Based on each pre-trained visual data pair, generating a pre-trained preference data group corresponding to each pre-trained visual data pair, wherein each pre-trained visual data pair in each pre-trained visual data pair includes two pre-trained visual data; constructing user satisfaction information based on the respective pre-trained visual data pairs and the pre-trained preference data set; generating target viewing point location data based on a preset virtual viewing area and the user satisfaction information; generating respective target position data based on the target viewing point position data; generating respective jump curve data corresponding to respective target users based on the respective user position data and the respective target position data; determining respective jump position data based on the respective jump curve data; For each of the jump position data, generating perspective conversion data based on the jump position data and preset center position data; For each of the target users, the viewing angle direction of the target user is adjusted based on the generated viewing angle conversion data.

2. The method according to claim 1, wherein The constructing user satisfaction information based on the respective pre-trained visual data pairs and the pre-trained preference data set includes: Determining the pre-trained preference data that meets the preset first data condition in the pre-trained preference data group as the first pre-trained preference data; determining the pre-trained preference data in the pre-trained preference data group that meets a preset second data condition as second pre-trained preference data; For each pre-trained preference data in the pre-trained preference data group, normalizing the pre-trained preference data to obtain normalized preference data; User satisfaction information is generated based on the pre-trained visual data pairs and the obtained normalized preference data.

3. The method according to claim 1, wherein Each of the two pre-trained visual data corresponds to initial preference level data; And generating a pre-trained preference data group corresponding to each pre-trained visual data pair based on each pre-trained visual data pair includes: Based on each of the pre-trained visual data pairs, the following processing steps are performed: For each of the pre-trained visual data pairs, performing the following steps: Determining the pre-trained visual data that satisfies a preset first visual data condition among the two pre-trained visual data included in the pre-trained visual data pair as the first pre-trained visual data; determining, among the two pre-training visual data included in the pre-training visual data pair, the pre-training visual data that does not meet the first visual data condition as the second pre-training visual data; generating preference data corresponding to the first pre-trained visual data based on initial preference level data corresponding to the first pre-trained visual data and initial preference level data corresponding to the second pre-trained visual data; Based on the generated preference data, generating cumulative preference data corresponding to the respective pre-trained visual data pairs; determining the logarithm of the cumulative preference data as cumulative preference logarithm data; determining the difference between the cumulative preference logarithm data and the initial logarithm data as logarithm increment data; In response to determining that the logarithmic incremental data satisfies a preset logarithmic convergence condition, each initial preference level data is determined as a pre-trained preference data group corresponding to each pre-trained visual data pair.

4. The method according to claim 3, wherein: After determining, in response to determining that the logarithmic incremental data satisfies a preset logarithmic convergence condition, that each initial preference level data is a pre-trained preference data group corresponding to each pre-trained visual data pair, the method further includes: In response to determining that the logarithmic incremental data does not satisfy the logarithmic convergence condition, performing the following steps: For each pre-trained visual data set that meets a preset data update condition in each pre-trained visual data set included in each pre-trained visual data pair, the following data update step is performed: determining the initial preference level data corresponding to the pre-trained visual data as the target preference level data; generating gradient preference data corresponding to the pre-trained visual data based on the cumulative preference logarithm data and the target preference level data; determining the gradient preference data as the initial preference level data corresponding to the pre-trained visual data, so as to update the initial preference level data corresponding to the pre-trained visual data; determining the accumulated preference logarithmic data as initial logarithmic data to update the initial logarithmic data; The processing steps are performed again using the updated respective initial preference level data and the updated initial logarithmic data.

5. The method according to claim 1, wherein The generating target viewing point location data based on the preset virtual viewing area and the user satisfaction information includes: Determining visual data of the viewing point to be optimized based on a preset virtual viewing area; Based on the visual data of the viewing point to be optimized, perform the following update steps: generating, based on the visual data of the viewing point to be optimized and the user satisfaction information, comprehensive data corresponding to the visual data of the viewing point to be optimized as comprehensive data to be optimized; Based on the initial temperature coefficient, generate disturbance data; Determining the sum of the visual data of the viewing point to be optimized and the disturbance data as the visual data of the viewing point to be processed; generating, based on the visual data of the viewing point to be processed and the user satisfaction information, comprehensive data corresponding to the visual data of the viewing point to be processed as comprehensive data to be processed; Determine the difference between the to-be-processed comprehensive data and the to-be-optimized comprehensive data as comprehensive difference data; In response to determining that the integrated difference data satisfies a preset difference condition, determining the preset initial probability data as the viewing point probability data; In response to determining that the integrated difference data does not satisfy the difference condition, performing the following steps: Determining the ratio of the comprehensive difference data to the initial temperature coefficient as comprehensive temperature ratio data; Determining viewing point probability data based on the comprehensive temperature ratio data and a preset exponential coefficient; In response to determining that the determined viewing point probability data satisfies a preset acceptance condition, determining the viewing point visual data to be processed as the viewing point visual data to be optimized, so as to update the viewing point visual data to be optimized; In response to determining that the determined viewing point probability data does not satisfy the acceptance condition, determining the viewing point visual data to be optimized as the viewing point visual data to be optimized, so as to update the viewing point visual data to be optimized; In response to determining that the initial temperature coefficient satisfies a preset temperature coefficient condition, the following steps are performed: Determining the updated viewing point visual data to be optimized as the viewing point visual data; generating target viewing point position data based on the viewing point visual data; In response to determining that the initial temperature coefficient does not satisfy the temperature coefficient condition, performing the following steps: determining the product of the initial temperature coefficient and the preset attenuation coefficient as the initial temperature coefficient to update the initial temperature coefficient; The updating step is performed again using the updated initial temperature coefficient and the updated viewing point visual data to be optimized.

6. The method according to claim 5, wherein: The generating, based on the visual data of the viewing point to be optimized and the user satisfaction information, comprehensive data corresponding to the visual data of the viewing point to be optimized as comprehensive data to be optimized, includes: generating an occlusion detection result based on the visual data of the viewing point to be optimized; generating satisfaction data to be optimized based on the visual data of the viewing point to be optimized and the user satisfaction information; In response to determining that the occlusion detection result meets a preset occlusion condition, performing the following steps: Determine the difference between the satisfaction data to be optimized and the preset baseline penalty coefficient as the penalty difference data to be optimized; Determine the product of a preset negative penalty coefficient and the penalty difference data to be optimized as penalty item data; In response to determining that the occlusion detection result does not meet the occlusion condition, determining preset penalty data as penalty item data; Determining the sum of the satisfaction data to be optimized and the penalty item data as comprehensive data corresponding to the visual data of the viewing point to be optimized; The comprehensive data is determined as the comprehensive data to be optimized.

Citation Information

Patent Citations

  • Method and system for generating virtual and augmented reality

    CN112651288A

  • Real-time generation method of audio and video information adaptive to explanation content

    CN117812439A

  • Information processing apparatus for acquiring actual viewpoint position and orientation and virtual viewpoint position and orientation of user, information processing method, and storage medium

    US20230245379A1

  • Enhanced loading of machine learning models in wireless communications

    US20240414067A1