Data processing method and system, storage medium and computer program product

By obtaining the visual relationship in the three-dimensional scene and saving it as an independent file, the problem of regenerating all image data when the model position or texture changes is solved, and more efficient data processing and transmission is achieved.

CN119540452APending Publication Date: 2025-02-28KE COM (BEIJING) TECHNOLOGY CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411596548.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-08
Publication Date
2025-02-28

AI Technical Summary

Technical Problem

In the three-dimensional spatial image data processing, when the model position or surface texture changes, all image data needs to be regenerated, resulting in large calculation amounts, low efficiency, and large data transmission bandwidth, which consumes a lot of time.

Method used

A data processing method is proposed to obtain the visual relationship between different positions in a three-dimensional scene and the model, and save the scene data and the visual relationship data as different files. If the data is modified, a replacement file is generated and only the corresponding data file is replaced to avoid repeated generation of unchanged data.

Benefits of technology

It reduces the computing volume and transmission bandwidth of image data generation, improves data processing efficiency and transmission speed, and enhances data flexibility and applicability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119540452A_ABST
    Figure CN119540452A_ABST
Patent Text Reader

Abstract

The invention provides a data processing method, a data processing system, a storage medium and a computer program product, and the method comprises the steps: firstly obtaining a visual relation between different positions in a three-dimensional scene and a model contained in the three-dimensional scene, the visual relation being used for representing whether the model in the three-dimensional scene is located in a visual range taking the position as a viewpoint; the scene data of the three-dimensional scene and the data of the visual relation are stored to form corresponding files, the scene data comprise model data, the file storing the scene data and the file storing the data of the visual relation are different files, if the data of the three-dimensional scene is modified, a replacement file is formed through the modified data, and the replacement file is used for replacing the data of the three-dimensional scene. The file containing the data before modification is replaced by the replacement file, and the data before modification forms modified data after being modified.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of computer technology, and in particular to a data processing method, a data processing system, a storage medium, and a computer program product. Background Art

[0002] It is a common method to express and display real or conceptual scenes through images drawn in three-dimensional space, which can achieve the online dissemination of the scene content expressed by the image. An image usually contains multiple models. When browsing in the image space, the models may be blocked by each other, so the models that can be seen from different browsing perspectives may be different. Therefore, the image data will contain model data and data used to indicate the visibility of the corresponding models at different locations.

[0003] In the related art, if the position of some models in the space is changed, or the surface texture of the model is changed, all the image data needs to be regenerated, which makes the image generation computationally large and inefficient. In addition, in the process of transmitting the image data to the display end for display, the occupied bandwidth is also large and the data transmission is time-consuming. Summary of the invention In order to solve at least one of the above technical problems, the present disclosure provides a data processing method, a data processing system, a storage medium and a computer program product.

[0004] In a first aspect, the present disclosure proposes a data processing method, comprising: obtaining a visual relationship between different positions in a three-dimensional scene and a model contained in the three-dimensional scene, the visual relationship being used to indicate whether the model in the three-dimensional scene is located within a visible range with the position as a viewpoint; saving scene data of the three-dimensional scene and data of the visual relationship to form corresponding files, the scene data including model data, and the file storing the scene data and the file storing the data of the visual relationship being different files; and if the data of the three-dimensional scene is modified, forming a replacement file using the modified data, and using the replacement file to replace a file containing the data before the modification, the data before the modification being modified to form the modified data.

[0005] According to some embodiments of the present disclosure, in the visual relationship, different positions in the three-dimensional scene are respectively located in different spatial units of the three-dimensional scene, and one of the spatial units includes one of the different positions in the three-dimensional scene.

[0006] According to some embodiments of the present disclosure, the visual relationship is obtained from a program loaded with a three-dimensional scene.

[0007] According to some embodiments of the present disclosure, before acquiring the visual relationship, the data processing method further includes: enabling a configuration for generating the visual relationship; and generating lighting data of the three-dimensional scene by loading a program with the three-dimensional scene.

[0008] According to some embodiments of the present disclosure, the scene data also includes lighting data.

[0009] According to some embodiments of the present disclosure, the file storing the model data and the file storing the illumination data are different files.

[0010] According to some embodiments of the present disclosure, saving the data of the visual relationship to form a corresponding file includes: saving the data of the visual relationship in a blank scene to obtain a scene with the visual relationship saved; and saving the data of the scene with the visual relationship saved to form a corresponding file.

[0011] According to some embodiments of the present disclosure, the data of the visual relationship includes an index identifier of the model in the three-dimensional scene and an index value corresponding to the index identifier, and the index value is used to indicate whether the model corresponding to the index identifier is within the visible range with the position as the viewpoint.

[0012] According to some embodiments of the present disclosure, the data processing method also includes: obtaining a unique identifier of a model contained in the three-dimensional scene; and establishing and saving a first mapping relationship between the unique identifier and the index identifier, wherein the first mapping relationship is used to cooperate with the visual relationship to determine whether the model corresponding to the unique identifier is within a visible range with the position as the viewpoint.

[0013] According to some embodiments of the present disclosure, the scene data of the three-dimensional scene and the data of the visual relationship are saved to form a corresponding file, including: before saving the data to be saved to form the corresponding file, serializing the data to be saved; and saving the serialized data to form the corresponding file.

[0014] According to some embodiments of the present disclosure, the corresponding file formed as a three-dimensional scene file has a second mapping relationship with the unique identifier of the three-dimensional scene, and the second mapping relationship is used to identify the corresponding three-dimensional scene file based on the unique identifier of the three-dimensional scene.

[0015] According to some embodiments of the present disclosure, replacing a file containing the data before modification with the replacement file includes executing a first replacement step and / or a second replacement step, wherein the first replacement step includes: replacing a file containing the data before modification stored in a database with the replacement file; and the second replacement step includes: sending the replacement file to a receiving end, wherein the replacement file is used to replace a file containing the data before modification previously received by the receiving end.

[0016] According to some embodiments of the present disclosure, the receiving end is used to perform one or more of the following tasks: displaying a corresponding three-dimensional scene by loading the file; and storing the received file.

[0017] According to some embodiments of the present disclosure, the three-dimensional scene includes a house scene, and the model contained in the three-dimensional scene includes objects in the house.

[0018] A second aspect of the present disclosure proposes a data processing system, comprising: a processor and a memory, wherein the memory stores a computer program, and when the computer program is executed by the processor, the processor performs the following processes: obtaining a visual relationship between different positions in a three-dimensional scene and a model contained in the three-dimensional scene, wherein the visual relationship is used to indicate whether the model in the three-dimensional scene is located within a visible range with the position as a viewpoint; saving scene data of the three-dimensional scene and data of the visual relationship to form corresponding files, wherein the scene data includes model data, and the file storing the scene data and the file storing the data of the visual relationship are different files; and if the data of the three-dimensional scene is modified, forming a replacement file using the modified data, and using the replacement file to replace a file containing the data before the modification, wherein the data before the modification is modified to form the modified data.

[0019] A third aspect of the present disclosure provides a readable storage medium, wherein the readable storage medium stores a computer program, and when the computer program is executed by a processor, it is used to implement the method described in any of the above embodiments.

[0020] A fourth aspect of the present disclosure provides a computer program product, which includes a computer program. When the computer program is executed by a processor, it is used to implement at least the method described in any of the above embodiments. BRIEF DESCRIPTION OF THE DRAWINGS

[0021] The accompanying drawings illustrate exemplary embodiments of the present disclosure and together with the description serve to explain the principles of the present disclosure. These drawings are included to provide a further understanding of the present disclosure and are incorporated in and constitute a part of this specification.

[0022] Figure 1 A schematic diagram of an application scenario of a data processing system according to some embodiments of the present disclosure is shown.

[0023] Figure 2 A flowchart diagram of a process for updating a three-dimensional scene of a property using a data processing system according to some embodiments of the present disclosure is shown.

[0024] Figure 3 A schematic diagram of an interactive process for displaying a three-dimensional scene of a house of interest using a data processing system according to some embodiments of the present disclosure is shown.

[0025] Figure 4 A flowchart schematically shows a data processing method according to some embodiments of the present disclosure.

[0026] Figure 5 A schematic diagram of a data processing system using a hardware implementation of a processing system according to some embodiments of the present disclosure is shown. DETAILED DESCRIPTION

[0027] The present disclosure is further described in detail below in conjunction with the accompanying drawings and implementations. It is understood that the specific implementations described herein are only used to explain the relevant content, rather than to limit the present disclosure. It should also be noted that, for ease of description, only the parts related to the present disclosure are shown in the accompanying drawings.

[0028] It should be noted that, in the absence of conflict, the embodiments and features of the embodiments in the present disclosure can be combined with each other. The technical solution of the present disclosure will be described in detail below with reference to the accompanying drawings and in combination with the embodiments.

[0029] Unless otherwise specified, the exemplary embodiments / embodiments shown will be understood as providing exemplary features of various details of some ways in which the technical concept of the present disclosure can be implemented in practice. Therefore, unless otherwise specified, the features of the various embodiments / embodiments can be combined, separated, interchanged and / or rearranged without departing from the technical concept of the present disclosure.

[0030] The terms used herein are for the purpose of describing specific embodiments, rather than being restrictive. As used herein, unless the context clearly indicates otherwise, the singular forms "one (kind, person)" and "said (the)" are also intended to include plural forms. In addition, when the terms "comprise" and / or "include" and their variations are used in this specification, it is explained that there are stated features, integral bodies, steps, operations, parts, assemblies and / or their groups, but it is not excluded that there are or add one or more other features, integral bodies, steps, operations, parts, assemblies and / or their groups. It should also be noted that, as used herein, the terms "substantially", "approximately" and other similar terms are used as approximate terms and not as degree terms, so that they are used to explain the inherent deviations of the measured values, calculated values ​​and / or provided values ​​that will be recognized by those of ordinary skill in the art.

[0031] When generating image data for a three-dimensional image, Precomputed Visibility Volumes (PVV) data can be used to record and represent the visibility relationship between each point in the image space that serves as the starting point of the view and each object model. When simulating the actual scene through the above image data and touring within the scene, the PVV data is used to achieve the occlusion effect between models and the selective rendering of models. Selective rendering refers to rendering only the models that are visible from the current view to reduce resource usage and optimize rendering performance.

[0032] PVV data is usually bound to a specific scene. If the position of the model in the scene needs to be changed, the existing PVV data will be invalid; if the pattern on the surface of the model in the scene needs to be changed, the existing model data will be invalid. Whether only the position has changed or only the pattern has changed, all the above image data including PVV data and model data need to be regenerated, which makes the generation of image data time-consuming and the applicability of image data is also limited. Due to the lack of flexibility, it is difficult to apply in a dynamic environment.

[0033] Figure 1 The following is a schematic diagram of an application scenario of a data processing system according to some embodiments of the present disclosure. In this application scenario, a user terminal 10 (hereinafter referred to as terminal 10) and a server 20 may be included. The user terminal 10 and the server 20 may communicate and transmit data via wired or wireless means. Figure 1The shapes and structures of the user terminal 10 and the server 20 shown in the figure should not be understood as limiting the scope of protection of the present disclosure. In the present disclosure, "terminal" can be different types of electronic devices, for example, the terminal can be a mobile phone, a tablet computer, a laptop computer, a desktop computer or a self-service machine. In addition, the server 20 may include a server or a cloud server with a physical form, and the present disclosure does not limit the type of server.

[0034] Terminology explanation: Viewpoint: The position of the camera in a 3D model scene.

[0035] View frustum: A geometric concept used to describe the visible range of a 3D camera. In 3D rendering, the view frustum defines the area of ​​space that the camera can "see".

[0036] Precomputed Visibility Volumes (PVV) data: is an optimization technology used in real-time rendering engines, mainly used to improve rendering efficiency and reduce draw calls, especially for scenes with a large number of static geometric bodies. The engine analyzes the geometric structure of the scene to obtain the visual relationship (visibility relationship) between each camera position in the scene and each model object in the scene, thereby obtaining PVV data. The PVV data can be used to determine the model objects that can be seen and the model objects that cannot be seen in the frustum area with the camera position as the viewpoint. When the scene is applied and displayed, when the user moves to different positions, the engine can quickly find the stored PVV data, and use the visibility information in the PVV data to render only the model objects visible from the current perspective, thereby saving a lot of computing resources.

[0037] Serialization: refers to the conversion of primitive data types into a storable or transmittable format that can be used to store data in the software in memory to disk.

[0038] Deserialization: refers to the process of restoring serialized data to its original data type, which can be used to read the contents of the disk into memory and enable the software to load.

[0039] PAK: A compressed file format.

[0040] StaticMesh: A model used to represent an object in a modeling program.

[0041] Figure 2 A flowchart diagram of a process for updating a three-dimensional scene of a property using a data processing system according to some embodiments of the present disclosure is shown. Figure 2The detailed description is for a clearer understanding of the technical solution of the present disclosure and should not be considered as a limitation of the protection scope of the present disclosure. In the process of implementing the technical idea of ​​the present disclosure, one or some steps may be omitted, or other alternatives may be adopted.

[0042] See also Figure 2 In step 101, the modeling program of the UnrealEngine platform is opened on the server side 20 by executing a pre-written script program and the three-dimensional scene data of the house A1 is loaded into the modeling program. The three-dimensional scene data of the house can be displayed as a 3D model scene of the house after being loaded by the modeling program. For example, the model scene of the house A1 includes indoor models such as wall a1, bed a2, wardrobe a3, and also includes outdoor models such as potted plants a4 and recliner a5, for a total of n models. The model space of the house A1 can be evenly divided into m spatial units, and one spatial unit is a cell. The 3D model scene can restore the layout of the real house as well as the indoor and outdoor facilities and environment, and can be used to display the real-life housing situation online in VR on the terminal 10 for users to view.

[0043] In step 102, the script program turns on a switch for generating PVV data in the modeling program.

[0044] In step 103, the script program controls the modeling program to perform lighting construction on the 3D model scene to obtain lighting data. After the lighting construction is completed, since the switch for generating PVV data is in the on state, the modeling program will automatically calculate the PVV data by calculating the shadow of the model. The PVV data of house A1 corresponds to m visible relationship data, and each visible relationship data corresponds to one of the m cells in the model space of house A1. A visible relationship data contains a visible data ID (Visibility ID) as an index identifier and a corresponding index value. The visible data ID is represented by V, and one model corresponds to one visible data ID, and different models have different visible data IDs. The index value corresponding to the visible data ID is represented by v, and the index value v is used to indicate whether the model a corresponding to the index identifier V can be observed when the current cell is used as the viewpoint. There are n index identifiers V in total (V1~V n ), corresponding to model objects a1~a n A visible relation data contains n visible data IDs and n index values.

[0045] In step 104, the script program reads the PVV data from the current world level of the modeling program, and the current world level is loaded with the current 3D scene data to be processed. The world level is a specific environment or scene of the Unreal Engine platform, and the entire VR house viewing plan is loaded through the world level.

[0046] In step 105, the script program controls the modeling program to declare a new blank level (the level does not contain any model content) and saves the read PVV data into the blank level.

[0047] In step 106, the script program obtains the visual data ID and hash value of each model by traversing all static meshes in the world level of the modeling program, thereby obtaining the mapping relationship between the visual data ID and the hash value, which can be called the first mapping relationship. A static mesh is a model in the scene. A model corresponds to a hash value, and the hash values ​​of different models are different. The hash value can be used as a unique identifier of the model. The difference between the visual data ID and the hash value is that the hash value can be directly calculated through the data of the model object, and the data length of the hash value is longer than the visual data ID. Therefore, using the visual data ID to represent the model in the application process of the three-dimensional scene can reduce resource usage.

[0048] In step 107, the script program serializes the data of the three-dimensional scene to obtain a PAK file. The data of the three-dimensional scene includes a blank level with PVV data, data of the first mapping relationship, model data, and illumination data. Among them, the data of the blank level and the data of the first mapping relationship together form a PAK file after serialization, each model forms a PAK file after serialization, and the illumination data forms a PAK file after serialization, totaling n+2 files.

[0049] In step 108, the script program stores the PAK file in the database and establishes a mapping relationship between the PAK file and the scene ID of the corresponding 3D scene, which can be called a second mapping relationship. One 3D scene corresponds to one scene ID, and different 3D scenes have different scene IDs.

[0050] The above steps 101 to 108 are the process of generating the three-dimensional scene data of the house. The three-dimensional scene data of multiple houses can be generated by repeatedly executing steps 101 to 108. The script program can be installed in the server 20, or installed in other terminals other than the server 20 and the terminal 10, and the above steps 101 to 108 are implemented by communicating with the server 20 and the terminal 10.

[0051] In step 109, after a house source information is updated, the house layout of the house source or the position of the objects in the scene changes, for example, the wardrobe in the living room is moved, and the three-dimensional scene data is modified according to the modified house source information. At this time, the main body of the wardrobe has not changed, but the position has changed. Therefore, the data to be modified can only include the data and lighting data of the blank level corresponding to the house source, and the PAK file of the PVV data and lighting data of the blank level is regenerated, and the new PAK file is used as a replacement file to replace the corresponding original PAK file in the database. Both the model data and the first mapping relationship data can use the original PAK file in the database.

[0052] Figure 2 In the illustrated embodiment, since the model data, lighting data and PVV data are stored separately and form separate files, when the house information changes and is modified, only the data that needs to be adjusted accordingly due to the changes can be regenerated and stored, and the data that is not affected by the changes does not need to be regenerated, which improves the update efficiency of the three-dimensional scene data and reduces the resource usage when the data is modified. For example, the positions of all models in the scene have not changed, but the style of the table has changed, and the volume of the table has not changed. In this case, the data to be modified can only include the model data, and the PAK file of the model data is regenerated, and the new PAK file is used as a replacement file to replace the corresponding original PAK file in the database. The PVV data, lighting data and the first mapping relationship data can all use existing files in the database.

[0053] Figure 3 A schematic diagram of an interactive process of using a data processing system to display a three-dimensional scene of an interested house in some embodiments of the present disclosure is shown. Figure 3 , steps 201 to 208 can be sequentially Figure 2 Steps 101 to 108 are the same as in the above, and are used to generate the three-dimensional scene data of the house. For details, please refer to the above Figure 2 The description is omitted here. Among them, the execution order of step 104, step 105 and step 106 can be in a certain order ( Figure 3 As shown), it can also be executed in parallel ( Figure 2 as shown).

[0054] In step 209, the user opens the APP through the terminal 10 and browses the house information. When the user sees the house information of interest, he clicks the corresponding button or control to view the three-dimensional scene of the house of interest. The terminal 10 stores the scene IDs of the three-dimensional scenes of multiple houses. In response to the user's click, the scene ID of the three-dimensional scene of the house of interest is determined and sent to the server 20.

[0055] In step 210 , the server 20 determines the PAK file of the house of interest from the database through the received scenario ID and the second mapping relationship, and sends the PAK file of the house of interest to the terminal 10 .

[0056] In step 211, after receiving the PAK file of the house of interest, the terminal 10 deserializes the PAK file to obtain the three-dimensional scene data of the house of interest, including the data of the blank level, the data of the first mapping relationship, the model data and the lighting data.

[0057] In step 212, the terminal 10 loads the three-dimensional scene data, obtains the hash values ​​of n models by traversing all static meshes in the scene, obtains the corresponding relationship between the n models and the n visual data IDs through the first mapping relationship, and obtains information on whether the n models are visible when any cell in the m cells is observed as a viewpoint in combination with the PVV data in the blank level, refreshes the level of the loaded scene to apply this information so that the occlusion effect in the scene takes effect, and displays the three-dimensional scene of the house of interest. After the three-dimensional scene is displayed, the user can control the viewpoint (camera) to move in the three-dimensional scene by operating the terminal 10. Whenever the camera moves to a new cell, the terminal 10 will render the visible model in the scene based on the PVV data corresponding to the new cell, and the invisible model that is blocked and cannot be observed from the new cell does not need to be rendered, saving the hardware resources occupied by the three-dimensional scene when it is applied and improving the response speed to the user operation.

[0058] The above steps 209 to 212 are a process for a user to obtain and view the three-dimensional scene data of a house of interest.

[0059] In step 213, if a house source information is updated, the house layout of the house source or the position of the object in the scene has changed, for example, the wardrobe in the living room has moved, then the three-dimensional scene data is modified according to the modified house source information. At this time, the main body of the wardrobe has not changed, but the position has changed. Therefore, the data to be modified can only include the data and lighting data of the blank level corresponding to the house source, and the PAK file of the PVV data and lighting data of the blank level is regenerated, and then the new PAK file is sent to the terminal 10 to replace the corresponding original PAK file. At the same time, the new PAK file can also be used as a replacement file to replace the corresponding original PAK file in the database. Both the model data and the first mapping relationship data can use existing files in the database.

[0060] In step 214, the terminal 10 receives the new PAK file and replaces the previously received PVV data file and the illumination data file, and then displays the updated three-dimensional scene through the new PAK file, thereby displaying the latest and most accurate scene content. Among them, when the terminal 10 displays the three-dimensional scene, it can be achieved by loading the scene data in the PAK file in the level. There can be only one level in the terminal 10. When the user clicks on a certain house at time T1 to view the three-dimensional scene of the house, the file of the house will be loaded into the level; when the user clicks on another house at time T2 to view the three-dimensional scene of the other house, the file of the other house will be loaded into the same level. That is, the scene will change with the house selected by the user, and the level can remain unchanged.

[0061] The above steps 213 and 214 are the process of updating the three-dimensional scene content of the house for the user.

[0062] Figure 3 The process shown can also be applied to the process of providing a house decoration design plan to a user. For example, after the user proposes a house design requirement and provides information such as the house area and apartment type, the designer designs a corresponding three-dimensional scene according to the user's needs, and uses a model to replace the physical object to simulate the designed house decoration effect for the user. At this time, the designer generates a PAK file of the house decoration plan through steps 201 to 208, and then sends it to the user's terminal 10 through the server 20. After the user loads the PAK file through an APP or other means at the terminal 10 and views the designed three-dimensional scene, the user can make modification suggestions to the designer. If the scene data modification involved in the modification suggestion only includes the modification of the model data, for example, the user requires the style of the furniture to be changed so that the color tone of the indoor furniture is unified, then the designer can modify the static mesh only according to the modification suggestion and regenerate the PAK file of the model data, and then only send the newly generated PAK file of the model data to the user. When the user views the three-dimensional scene modified by the designer, when the terminal 10 loads the three-dimensional scene file, the new PAK file is used to replace the original PAK file of the model data, and other PAK files continue to use the original PAK file cached locally in the terminal 10. This can reduce the amount of calculation and resource usage of the server 20 , and can also reduce the amount of data transmission and occupied bandwidth between the server 20 and the terminal 10 .

[0063] In addition, by providing users with a three-dimensional real-life model when they want to view the real scene of the house, online real-life roaming can be achieved. Users can move within the scene to better view the house. Compared with taking 360-degree panoramic photos at a limited number of locations in the house and providing users with two-dimensional plane photos at a limited number of locations, the three-dimensional real-life model has better display effect and authenticity, and can realize changes to the corresponding scene content when the house information is changed.

[0064] Figure 4 A schematic diagram showing a flow chart of a data processing method according to some embodiments of the present disclosure is shown. Figure 4 The present disclosure provides a data processing method M300, which can be applied to the server. The data processing method M300 may include the following steps S310, S320 and S330.

[0065] S310, obtaining visual relationships between different positions in the three-dimensional scene and models included in the three-dimensional scene, wherein the visual relationship is used to indicate whether the model in the three-dimensional scene is located within a visual range with the position as a viewpoint.

[0066] S320, the scene data of the three-dimensional scene and the data of the visual relationship are saved to form corresponding files, wherein the scene data includes model data, and the file storing the scene data and the file storing the data of the visual relationship are different files.

[0067] S330, if the data of the three-dimensional scene is modified, a replacement file is formed by the modified data, and the replacement file is used to replace the file containing the data before the modification, wherein the data before the modification is modified to form the modified data.

[0068] According to the data processing method proposed in the embodiment of the present disclosure, the view cone is calculated offline in the scene construction stage to generate a series of visibility data. The visibility data is used to quickly determine which objects are visible, thereby reducing the computational burden of rendering; the PVV data, model data, and lighting data are saved separately. After the scene data is updated, only the files corresponding to the updated data can be generated and the corresponding original files can be replaced. For the data not affected by the update, there is no need to generate new files, so that data of different scenes can be saved and loaded independently, which improves the update efficiency, reduces the amount of calculation and resource usage, and also improves the data flexibility, applicability and reliability, and facilitates the management and use of files.

[0069] The three-dimensional scene can be an indoor scene or an outdoor scene, such as a museum, a shopping mall, a park, a tourist attraction, etc., or a combination of indoor and outdoor scenes.

[0070] The scene space of a three-dimensional scene contains many positions that can be used as viewpoints. Within the visible range of the position point as the viewpoint, some model objects can be observed, and some model objects cannot be observed due to being blocked by other model objects. By obtaining the visual relationship of the three-dimensional scene, it is possible to determine which models in the scene can be observed and which models cannot be observed. The visual relationship data can be PVV data.

[0071] For a constructed 3D scene W1, suppose the scene W1 contains 30 model objects a1~a 30 , each model data of W1 can be saved separately as files f1~f 30 , save the PVV data of W1 as a separate file f 31 When scene W1 needs to be modified, if only a small adjustment is made to the position of the model and the style of the model is not modified, a new file f can be generated after the modification is completed. 31 ' and replace the original file f 31 , no need to regenerate new files f1'~f 30 '; If only the style of the model is changed and the position of the model is not adjusted, only new files f1'~f 30 ' and replace the original files f1~f 30 , no need to regenerate a new file f 31 '; If the style and position of the model are changed, a new file f1'~f is generated after the modification is completed 31 ' and replace the original files f1~f 31 The file can be saved in PAK format.

[0072] It is understandable that step S310, step S320 and step S330 may be executed by a pre-written script or file processing program.

[0073] In the above visual relationship, different positions in the three-dimensional scene can be located in different spatial units of the three-dimensional scene, and one spatial unit includes one position among the different positions in the three-dimensional scene. The spatial unit can be obtained by uniformly gridding the space of the three-dimensional scene. For example, the spatial size of the three-dimensional scene W1 is 400*500*600, and the size of a cell is set to 1*1*1, then W1 can contain 400*500*600 spatial units, one spatial unit is one cell, one cell contains one viewpoint and corresponds to one visual relationship, and 400*500*600 visual relationships form the PVV data of the scene W1.

[0074] When obtaining the visual relationship, the visual relationship may be obtained from a program loaded with a three-dimensional scene. The program loaded with the three-dimensional scene may be a modeling program of the Unreal Engine platform. Unreal Engine has a good effect in terms of the authenticity and image quality of the restoration of the three-dimensional model scene, and can restore the real scene more realistically.

[0075] Before obtaining the visual relationship through step S310, the data processing method M300 may further include the following steps: enabling the configuration for generating the visual relationship; and generating the illumination data of the three-dimensional scene by loading the program with the three-dimensional scene. The configuration for generating the visual relationship may be a switch in the program for controlling whether to generate PVV data. Enabling the configuration is to turn on the switch. After the switch is turned on, the illumination data of the three-dimensional scene is generated. Then, the modeling program can obtain the PVV data by calculating the shadow of the model when calculating the illumination data.

[0076] The scene data may also include illumination data. The file storing the model data may be a different file from the file storing the illumination data. The file storing the illumination data may be denoted as f 32 .

[0077] In step S320, the method of saving the data of the visual relationship to form a corresponding file may include the following steps: saving the data of the visual relationship into a blank scene by loading a program with a three-dimensional scene to obtain a scene with the visual relationship saved; and saving the data of the scene with the visual relationship saved to form a corresponding file.

[0078] Take the modeling program of the Unreal Engine platform as an example. When the modeling program loads a 3D scene, the 3D scene is loaded into the world level of the program. Since PVV data does not support separate saving, if you want to directly save PVV data, you need to modify the source code of the modeling program. Therefore, a blank scene is used to save the visual relationship data (PVV data). The blank scene can be a blank level in the modeling program. When saving PVV data, the visual relationship data is saved in a newly created blank level through a script program or a file processing program.

[0079] The data of the visual relationship may include the index identifier of the model in the three-dimensional scene and the index value corresponding to the index identifier. The index value is used to indicate whether the model corresponding to the index identifier is within the visible range with the position as the viewpoint. The index identifier may be a visual data ID (Visibility ID). For the 400*500*600 PVV data corresponding to the 400*500*600 spatial units in the scene W1, each PVV data may contain 30 visual data IDs and 30 index values. The 30 visual data IDs correspond to the 30 models in the scene W1, and the 30 index values ​​indicate whether the 30 models are visible when the current spatial unit is the viewpoint.

[0080] Since the model data and visual data are saved as different files when they are saved as files, when they are sent to the receiving end to load and display the 3D scene, it may be necessary to obtain the mapping relationship between the visual data ID and the model, otherwise it may not be possible to determine which visual data ID corresponds to which model. Therefore, the mapping relationship between the visual data ID and the model can be established in advance and a file can be generated and sent to the receiving end, so that the 3D scene content can be correctly displayed when the 3D scene file is loaded.

[0081] The data processing method M300 may also include the following steps: obtaining the unique identifier of the model contained in the three-dimensional scene; and establishing a first mapping relationship between the unique identifier and the index identifier, the first mapping relationship being used to cooperate with the visual relationship to determine whether the model corresponding to the unique identifier is within the visible range with the position as the viewpoint and save it.

[0082] The unique identifier can be a hash value of the model. Both the hash value and the visual data ID can be used to uniquely identify the model. The hash value represents the model and the visual data ID to establish a first mapping relationship. The first mapping relationship combined with the PVV data can determine which of the 30 models are visible models and which models are invisible models. The first mapping relationship data can be saved separately to form a file, or the first mapping relationship data can be saved together with the PVV data to form a file. 31 .

[0083] In step S320, the method of saving the scene data and visual relationship data of the three-dimensional scene to form a corresponding file may also include the following steps: serializing the data to be saved before saving the data to form a corresponding file; and saving the serialized data to form a corresponding file.

[0084] The data to be saved include the above-mentioned model data, the above-mentioned illumination data, the above-mentioned PVV data and the above-mentioned first mapping relationship data. These data can be serialized before being saved and generating files, so that the original data can be transmitted between different environments and restored to the original data type at the receiving end. The saved file can be called a three-dimensional scene file. The three-dimensional scene files corresponding to scene W1 include 32, namely, the above-mentioned f1~f 30 .

[0085] In order to accurately determine which 3D scene corresponding to the scene file needs to be used when using the 3D scene file, after the PAK file is saved, the corresponding file formed as a 3D scene file can have a second mapping relationship with the unique identifier of the 3D scene. The second mapping relationship is used to identify the corresponding 3D scene file based on the unique identifier of the 3D scene.

[0086] The unique identifier of the three-dimensional scene is the scene ID of the three-dimensional scene. There is a second mapping relationship between the scene files corresponding to the three-dimensional scene and the scene ID. The scene files corresponding to the three-dimensional scene are accurately identified through the scene ID.

[0087] In step S330, the method of replacing the file containing the data before modification with the replacement file may include only executing the first replacement step, or only executing the second replacement step, or simultaneously executing the first replacement step and the second replacement step. The first replacement step includes: replacing the file containing the data before modification stored in the database with the replacement file. The second replacement step includes: sending the replacement file to the receiving end, the replacement file is used to replace the file containing the data before modification previously received by the receiving end. The receiving end is used to perform one or more of the following tasks: displaying the corresponding three-dimensional scene by loading the above-mentioned file; storing the above-mentioned received file.

[0088] When the receiving end can be used to store the received PAK file (3D scene file), the receiving end can be configured with a database. The server sends the updated replacement file (the replacement file is also a PAK file) to the receiving end, and the receiving end saves the replacement file to the database. For details, see Figure 2 The process shown.

[0089] When the receiving end can be used to load the PAK file and display the 3D scene, the receiving end can respond to the user's request to view the 3D scene as a client. The server sends the updated replacement file (the replacement file is also a PAK file) to the client, and the client displays the modified 3D scene based on the scene ID and the replacement file. For details, see Figure 3 The process shown.

[0090] When the receiving end is a client, when multiple clients click on the same three-dimensional scene at the same time in the hope of viewing the three-dimensional scene, the replacement file can be shared among different users through network distribution, so that multiple different clients can view the same three-dimensional scene at the same time, enhancing the sharing of data and facilitating distribution and use among multiple terminals or users.

[0091] In addition, the client can dynamically load 3D scene data and only load the 3D scene files that are currently desired to be viewed, without having to download scene files of all 3D scenes in the database to the client locally, which enhances the flexibility and adaptability of the system and enables the system to run efficiently in different scenarios.

[0092] The three-dimensional scene may include a house scene, and the model contained in the three-dimensional scene may include objects in the house.

[0093] When the data processing method M300 is applied to house search, the user finds a house of interest through the client, and sends a 3D scene viewing request to the server through the client. The server determines the 3D scene file based on the scene ID contained in the 3D scene viewing request and sends it to the client. The client receives the 3D scene file, deserializes the file, and determines whether each model is visible within the visible range of each viewpoint, and then loads the deserialized data and refreshes the level to display the 3D scene.

[0094] When applying the data processing method M300 to the decoration design of an empty house, the user proposes design requirements to the designer through the client. After the designer completes the design of the three-dimensional scene of the house, the designer sends the corresponding three-dimensional scene file to the client. After the user loads these files through the client and displays the three-dimensional scene, the designer proposes modification suggestions to the designer. After the designer modifies the three-dimensional scene, the PAK file related to the modified content is regenerated. For data not related to the modified content, no new PAK file is generated, and the newly generated PAK file is sent to the client to replace the original PAK file cached locally by the client. The user loads the replacement file and the unreplaced PAK file through the client, deserializes the file, and determines whether each model is visible within the visible range of each viewpoint, and then loads the deserialized data and refreshes the level to display the three-dimensional scene.

[0095] Figure 5 A schematic diagram of a data processing system using a hardware implementation of a processing system according to some embodiments of the present disclosure is shown. Figure 5The data processing system 1000 provided in the present disclosure includes a processor 1200 and a memory 1300. The processor 1200 may be a central processing unit (CPU). The processor 1200 may also be other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, or a combination of the above chips.

[0096] The memory 1300 can be used as a non-transitory computer-readable storage medium, and can be used to store non-transitory software programs, non-transitory computer executable programs and modules, such as program instructions of the computer program in the embodiment of the present disclosure. The processor 1200 executes various functional applications and data processing of the data processing system and implements the data processing method by running the non-transitory software programs, instructions and modules stored in the memory 1300.

[0097] The memory 1300 may include a program storage area and a data storage area, wherein the program storage area may store an operating system and an application required by at least one function; the data storage area may store data created by the processor 1200, such as model data, illumination data, mapping relationship data, PVV data, etc. In addition, the memory 1300 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one disk storage device, a flash memory device, or other non-volatile solid-state storage device. In some embodiments, the memory 1300 may optionally include a memory remotely arranged relative to the processor 1200, and these remote memories may be connected to the processor 1200 via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0098] The memory 1300 stores a computer program. When the computer program is executed by the processor 1200, the processor 1200 may perform the following steps to implement the data processing method.

[0099] S310, obtaining visual relationships between different positions in the three-dimensional scene and the models included in the three-dimensional scene. The visual relationship is used to indicate whether the model in the three-dimensional scene is located within a visible range with the position as a viewpoint. Step S310 can be implemented by the visual relationship acquisition module 1002.

[0100] S320, the scene data of the three-dimensional scene and the data of the visual relationship are saved to form corresponding files. The scene data includes model data, and the file storing the scene data and the file storing the data of the visual relationship are different files. Step S320 can be implemented by the data saving module 1004.

[0101] S330, if the data of the three-dimensional scene is modified, a replacement file is formed by the modified data, and the file containing the data before the modification is replaced by the replacement file. The data before the modification is modified to form the modified data. Step S330 can be implemented by the file replacement module 1006.

[0102] It should be noted that the details not disclosed in the data processing system 1000 of this embodiment can refer to the details disclosed in the data processing method M300 of the above-mentioned embodiment proposed in the present disclosure, and will not be repeated here.

[0103] The system 1000 may include corresponding modules for executing each or several steps in the above flowchart. Therefore, each step or several steps in the above flowchart may be executed by the corresponding module, and the system may include one or more modules in these modules. The module may be one or more hardware modules specially configured to execute the corresponding steps, or implemented by a processor configured to execute the corresponding steps, or stored in a computer-readable medium for implementation by a processor, or implemented by some combination.

[0104] The hardware structure can be implemented using a bus architecture. The bus architecture can include any number of interconnecting buses and bridges, depending on the specific application and overall design constraints of the hardware. The bus 1100 connects various circuits including one or more processors 1200, memory 1300, and / or hardware modules together. The bus 1100 can also connect various other circuits 1400 such as peripherals, voltage regulators, power management circuits, external antennas, etc.

[0105] The bus 1100 may be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Component (EISA) bus, etc. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, the figure only uses one connecting line, but does not mean that there is only one bus or one type of bus.

[0106] The present disclosure also provides a readable storage medium, in which a computer program is stored. When the computer program is executed by a processor, it is used to implement the method of any of the above embodiments.

[0107] For the purposes of this specification, a "readable storage medium" may be any device that can contain, store, communicate, propagate or transport a program for use with or in conjunction with an instruction execution system, apparatus or device. More specific examples (a non-exhaustive list) of readable storage media include the following: an electrical connection with one or more wires (electronic device), a portable computer disk case (magnetic device), a random access memory (RAM), a read-only memory (ROM), an erasable and programmable read-only memory (EPROM or flash memory), a fiber optic device, and a portable read-only memory (CDROM).

[0108] The present disclosure also provides a computer program product, and the method of the present disclosure can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When the computer program or instruction is loaded and executed, the process or function of the present disclosure is executed in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a network device, a user device, a core network device, an OAM or other programmable device.

[0109] The computer program or instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer program or instructions may be transmitted from one website, computer, server or data center to another website, computer, server or data center by wired or wireless means. The computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or data center that integrates one or more available media. The available medium may be a magnetic medium, such as a floppy disk, a hard disk, or a magnetic tape; it may also be an optical medium, such as a digital video disk; it may also be a semiconductor medium, such as a solid-state drive. The computer-readable storage medium may be a volatile or non-volatile storage medium, or may include both volatile and non-volatile types of storage media.

[0110] Those skilled in the art will appreciate that the embodiments of the present disclosure may be provided as methods, systems, or computer program products. Therefore, the present disclosure may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Furthermore, the present disclosure may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0111] The present disclosure is described with reference to flowcharts and / or block diagrams of methods, devices (systems), and computer program products according to the present disclosure. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0112] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.

[0113] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.

[0114] In the description of this specification, the description with reference to the terms "one embodiment / method", "some embodiments / methods", "specific examples", or "some examples" etc. means that the specific features, structures, materials or characteristics described in conjunction with the embodiment / method or example are included in at least one embodiment / method or example of the present disclosure. In this specification, the schematic representations of the above terms are not necessarily the same embodiment / method or example. Moreover, the specific features, structures, materials or characteristics described may be combined in a suitable manner in any one or more embodiments / methods or examples. In addition, those skilled in the art may combine and combine the different embodiments / methods or examples described in this specification and the features of the different embodiments / methods or examples, unless they are contradictory.

[0115] In addition, the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one of the features. In the description of the present disclosure, "plurality" means at least two, such as two, three, etc., unless otherwise clearly and specifically defined.

[0116] Those skilled in the art should understand that the above embodiments are only for the purpose of clearly illustrating the present disclosure, and are not intended to limit the scope of the present disclosure. For those skilled in the art, other changes or modifications may be made based on the above disclosure, and these changes or modifications are still within the scope of the present disclosure.

Claims

1. A data processing method, characterized in that: include: Acquire a visual relationship between different positions in a three-dimensional scene and a model included in the three-dimensional scene, wherein the visual relationship is used to indicate whether the model in the three-dimensional scene is located within a visible range with the position as a viewpoint; The scene data of the three-dimensional scene and the data of the visual relationship are saved to form corresponding files, wherein the scene data includes model data, and the file storing the scene data and the file storing the data of the visual relationship are different files; as well as If the data of the three-dimensional scene is modified, a replacement file is formed by the modified data, and the replacement file is used to replace the file containing the data before the modification, and the data before the modification is modified to form the modified data.

2. The data processing method according to claim 1, characterized in that: In the visual relationship, different positions in the three-dimensional scene are respectively located in different spatial units of the three-dimensional scene, and one of the spatial units includes one of the different positions in the three-dimensional scene.

3. The data processing method according to claim 1, characterized in that: The visual relationship is obtained from a program loaded with a three-dimensional scene.

4. The data processing method according to claim 1, characterized in that: Before acquiring the visual relationship, the data processing method further includes: enabling configuration for generating visual relationships; and The illumination data of the three-dimensional scene is generated by loading a program with the three-dimensional scene.

5. The data processing method according to claim 1 or 4, characterized in that: The data of the visual relationship is saved to form a corresponding file, including: Saving the data of the visual relationship in a blank scene to obtain a scene in which the visual relationship is saved; and The data of the scene with the visual relationship is saved to form a corresponding file.

6. The data processing method according to claim 1, characterized in that: The data of the visual relationship includes an index identifier of a model in the three-dimensional scene and an index value corresponding to the index identifier, wherein the index value is used to indicate whether the model corresponding to the index identifier is within a visible range with the position as a viewpoint.

7. The data processing method according to claim 6, characterized in that: The data processing method further includes: Obtaining a unique identifier of a model included in the three-dimensional scene; and A first mapping relationship between the unique identifier and the index identifier is established and saved, wherein the first mapping relationship is used to cooperate with the visual relationship to determine whether the model corresponding to the unique identifier is located within a visible range with the position as a viewpoint.

8. The data processing method according to claim 1, characterized in that: The scene data of the three-dimensional scene and the data of the visual relationship are saved to form corresponding files, including: Before the data to be saved is saved to form a corresponding file, the data to be saved is serialized; and The serialized data is saved to form corresponding files.

9. The data processing method according to claim 1, characterized in that: The corresponding file formed as a three-dimensional scene file has a second mapping relationship with the unique identifier of the three-dimensional scene, and the second mapping relationship is used to identify the corresponding three-dimensional scene file according to the unique identifier of the three-dimensional scene.

10. The data processing method according to claim 1, characterized in that: Replacing the file containing the data before modification with the replacement file includes executing a first replacement step and / or a second replacement step, wherein the first replacement step includes: replacing the file containing the data before modification stored in a database with the replacement file; and the second replacement step includes: sending the replacement file to a receiving end, wherein the replacement file is used to replace the file containing the data before modification previously received by the receiving end.

11. The data processing method according to claim 10, characterized in that: The receiving end is used to perform one or more of the following tasks: displaying the corresponding three-dimensional scene by loading the file; and storing the received file.

12. A data processing system, characterized in that: include: A processor and a memory, wherein the memory stores a computer program. When the computer program is executed by the processor, the processor performs the following process: Acquire a visual relationship between different positions in a three-dimensional scene and a model included in the three-dimensional scene, wherein the visual relationship is used to indicate whether the model in the three-dimensional scene is located within a visible range with the position as a viewpoint; The scene data of the three-dimensional scene and the data of the visual relationship are saved to form corresponding files, wherein the scene data includes model data, and the file storing the scene data and the file storing the data of the visual relationship are different files; as well as If the data of the three-dimensional scene is modified, a replacement file is formed by the modified data, and the replacement file is used to replace the file containing the data before the modification, and the data before the modification is modified to form the modified data.

13. A readable storage medium, characterized in that: The readable storage medium stores a computer program, and when the computer program is executed by a processor, the computer program is used to implement the method according to any one of claims 1 to 11.

14. A computer program product, characterized in that The computer program product comprises a computer program, which is used to implement at least the method according to any one of claims 1 to 11 when executed by a processor.