A data processing method, device, computer, storage medium and program product
Patent Information
- Application Number
- CN202611090871.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2026-07-22
- Publication Date
- 2026-09-22
- Estimated Expiration
- 2046-07-22
AI Technical Summary
[0003]当前机器人仿真与具身智能仿真系统普遍围绕单一仿真处理引擎构建,但随着机器人仿真及具身智能技术的快速发展,仿真对象的对象类型、仿真任务的应用场景、功能需求、精度要求也持续升级,单一仿真处理引擎已经无法满足仿真研发需求,该系统需要引入新的仿真处理引擎
在本申请实施例中,各仿真处理引擎可以按照统一的描述信息数据格式,对其原有的初始描述信息进行格式转换处理,使得不同类型、不同架构的仿真处理引擎具备可统一识别的标准化能力描述(即引擎描述信息)。因此,在获取针对仿真对象的仿真任务以及所述仿真任务对应的任务需求信息之后,可以直接基于任务需求信息与N个仿真处理引擎分别对应的引擎描述信息进行匹配,以从N个仿真处理引擎中,筛选出与仿真任务匹配的目标仿真处理引擎。进而,可以获取由目标仿真处理引擎在图形处理器中执行仿真任务所得到的初始仿真状态数据,直接通过图形处理器对初始仿真状态数据进行统一格式转换处理,即将不同仿真处理引擎所输出的具有差异化的数据格式、排布规则、参数结构的初始仿真状态数据进行标准化整理和处理,得到目标仿真状态数据。这样通过图形处理器基于统一格式的目标仿真状态数据完成画面渲染,生成仿真对象的对象姿态画面,打破了仿真处理引擎与画面渲染逻辑强绑定的架构局限,无需针对系统的大量上层代码进行针对性修改与适配调试,有利于降低对仿真处理引擎的适配改造成本,有利于提高仿真任务的处理效率。
Smart Images

Figure CN122595647B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, and in particular to a data processing method, apparatus, computer, storage medium and program product. Background Technology
[0002] Robot simulation and embodied intelligence simulation technology are core supporting technologies for robot research and development, embodied intelligence algorithm training and performance verification. They can simulate the motion state, environmental interaction process and sensor data acquisition process of robots (i.e., simulation objects) through simulated virtual scenes, effectively reducing the cost of physical testing, avoiding the risks of physical experiments, and greatly improving the efficiency of intelligent robot research and development iteration.
[0003] Currently, robot simulation and embodied intelligence simulation systems are generally built around a single simulation processing engine. However, with the rapid development of robot simulation and embodied intelligence technologies, the types of simulation objects, the application scenarios of simulation tasks, functional requirements, and accuracy requirements are also constantly being upgraded. A single simulation processing engine can no longer meet the needs of simulation research and development, and the system needs to introduce a new simulation processing engine.
[0004] In practice, it has been found that simulation processing engines are usually deeply coupled with screen rendering logic. When a new simulation processing engine needs to be introduced, a large amount of upper-level code of the system needs to be modified and adapted. The adaptation and transformation costs are high and the iteration cycle is long, resulting in low overall processing efficiency of simulation tasks. Summary of the Invention
[0005] This application provides a data processing method, apparatus, computer, storage medium, and program product that can improve the processing efficiency of simulation tasks.
[0006] One embodiment of this application provides a data processing method, including: Obtain the simulation task for the simulation object and the corresponding task requirements information. Obtain the engine description information for each of the N simulation processing engines. The engine description information is obtained by converting the initial description information in the corresponding simulation processing engine according to the description information data format. N is a positive integer. The task requirement information is matched with the engine description information corresponding to N simulation processing engines to obtain the target simulation processing engine that matches the simulation task among the N simulation processing engines. The initial simulation state data obtained by the target simulation processing engine in the graphics processor is acquired, and the target simulation state data is obtained by performing a unified format conversion on the initial simulation state data through the graphics processor. The target simulation state data is rendered using a graphics processor to obtain the object posture image of the simulation object.
[0007] One embodiment of this application provides a data processing apparatus, including: The information acquisition module is used to acquire simulation tasks for the simulation object and the corresponding task requirements information, and to acquire engine description information for each of the N simulation processing engines. The engine description information is obtained by the corresponding simulation processing engine by converting the initial description information in the simulation processing engine according to the description information data format. N is a positive integer. The engine matching module is used to match the task requirement information with the engine description information corresponding to N simulation processing engines to obtain the target simulation processing engine that matches the simulation task among the N simulation processing engines. The simulation processing module is used to acquire the initial simulation state data obtained by the target simulation processing engine executing simulation tasks in the graphics processor, and to perform unified format conversion processing on the initial simulation state data through the graphics processor to obtain the target simulation state data. The image rendering module is used to render the target simulation state data using a graphics processor to obtain the object posture image of the simulation object.
[0008] In one optional implementation, when the task requirement information is matched with the engine description information corresponding to N simulation processing engines to obtain the target simulation processing engine that matches the simulation task among the N simulation processing engines, the engine matching module can be used to: The task processing conditions of the simulation task are evaluated using task requirement information, and the performance index constraints of the simulation processing engine used to process the simulation task are obtained. Obtain the processing performance metrics corresponding to each of the N simulation processing engines from their respective engine description information; Based on the processing performance indicators corresponding to N simulation processing engines, candidate simulation processing engines that meet the performance indicator constraints are selected from the N simulation processing engines. From the candidate simulation processing engines, determine the target simulation processing engine that matches the simulation task.
[0009] In one alternative implementation, the number of candidate simulation processing engines is K, where K is a positive integer less than or equal to N; When determining a target simulation processing engine that matches the simulation task from among the candidate simulation processing engines, the engine matching module can be used for: When K is 1, the candidate simulation processing engine is determined as the target simulation processing engine that matches the simulation task; When K is greater than 1, the processing performance indicators corresponding to the K candidate simulation processing engines are used to evaluate the processing performance of the K candidate simulation processing engines, and the processing performance scores corresponding to the K candidate simulation processing engines are obtained. The candidate simulation processing engine with the largest processing performance score among the K candidate simulation processing engines is determined as the target simulation processing engine that matches the simulation task.
[0010] In one optional implementation, the number of simulation objects is M, and the task requirement information includes the scene constraint information corresponding to the simulation task, as well as the object description information corresponding to each of the M simulation objects; M is a positive integer; the engine matching module can be used for: When no candidate simulation processing engine that meets the performance constraints is found, the M simulation objects are grouped using the object description information corresponding to the M simulation objects respectively, resulting in A simulation object groups; A is a positive integer. The scene constraint information is fused with the object description information of the simulation objects in the A simulation object groups to obtain the group description information corresponding to the A simulation object groups respectively. The group description information corresponding to each simulation object group is matched with the engine description information corresponding to each of the N simulation processing engines to obtain the simulation processing engine that matches the simulation object group among the N simulation processing engines. The simulation processing engines matched to each of the A simulation object groups are determined as the target simulation processing engines that match the simulation task.
[0011] In one alternative implementation, the number of simulation objects is M, where M is a positive integer; When the task requirement information is matched with the engine description information corresponding to N simulation processing engines to obtain the target simulation processing engine that matches the simulation task among the N simulation processing engines, the engine matching module can be used for: From the task requirements information, obtain the object types corresponding to M simulation objects respectively, and group the M simulation objects according to the object types corresponding to the M simulation objects respectively to obtain at least one object type group; Count the number of simulated objects in each object type group, and determine the object type of the object type group with the largest number of simulated objects as the target object type; From the engine description information corresponding to each of the N simulation processing engines, obtain the processing object type corresponding to each of the N simulation processing engines; the processing object type is used to indicate the object type that is most suitable for the corresponding simulation processing engine. Among the N simulation processing engines, the simulation processing engine whose processing object type is the target object type is determined as the target simulation processing engine that matches the simulation task.
[0012] In one optional implementation, the number of simulation objects is M, and the target simulation state data includes object state data corresponding to each of the M simulation objects, where M is a positive integer; the data processing device further includes: The central processing unit obtains the object identification information corresponding to each of the M simulation objects, obtains the storage location information of each object's state data in the graphics processor, and associates and stores the storage location information corresponding to each object's state data with the object identification information. When rendering the target simulation state data using a graphics processor to obtain the object's pose image, this rendering module can be used for: Based on the storage location information associated with the object identification information of the i-th simulation object, the data reading interface of the graphics processor is accessed to obtain the object state data of the i-th simulation object; i is a positive integer less than or equal to M; Render the image of the i-th simulation object by processing its state data.
[0013] In one optional implementation, when rendering the image of the object state data of the i-th simulation object to obtain the object pose image of the i-th simulation object, the image rendering module can be used for: Obtain the rendering identifier mapping table; the rendering identifier mapping table is used to indicate the one-to-one correspondence between the object identifier information corresponding to M simulation objects and the M rendering instances; Based on the rendering identifier mapping table, among M rendering instances, determine the target rendering instance corresponding to the object identifier information of the i-th simulation object; i is a positive integer less than or equal to M; In the target rendering instance, the object state data of the i-th simulation object is rendered to obtain the object pose image of the i-th simulation object.
[0014] In one alternative implementation, when acquiring initial simulation state data obtained by the target simulation processing engine performing a simulation task in the graphics processor, the simulation processing module can be used to: Through the target simulation processing engine, a simulation virtual environment for processing simulation tasks is constructed in the graphics processor based on task requirement information; The first simulation step data of the simulation object is acquired and transmitted to the target simulation processing engine; the first simulation step data is used to represent the relevant data generated by motion simulation of the simulation object. Using the target simulation processing engine, the simulation object is simulated in the simulation virtual environment using the first simulation step data to obtain the initial simulation state data.
[0015] In one optional implementation, the number of simulation objects is M; M is a positive integer; the number of target simulation processing engines is A, and each target simulation processing engine is used to perform simulation tasks for at least one of the M simulation objects, with one simulation object corresponding to one target simulation processing engine. When acquiring the first simulation step data of the simulation object and transmitting the first simulation step data to the target simulation processing engine, the simulation processing module can be used for: Obtain the first simulation step data corresponding to each of the M simulation objects, and obtain the object coupling relationship data between the M simulation objects; Using object coupling relationship data, the simulation order of M simulation objects is analyzed to obtain the simulation order corresponding to each of the M simulation objects. According to the simulation order corresponding to the M simulation objects, the first simulation step data corresponding to the M simulation objects are transmitted to the target simulation processing engine corresponding to each simulation object in turn.
[0016] In one alternative implementation, the data processing apparatus further includes: Based on the target simulation state data, the simulation task is detected to obtain the task state of the simulation task. When the task status is task execution status, the simulation step prediction is performed on the simulation object based on the target simulation status data to obtain the second simulation step data of the simulation object, and the second simulation step data is transmitted to the target simulation processing engine. Using the target simulation processing engine, the second simulation step data is used to simulate the attitude of the simulation object in the simulation virtual environment until the task state of the simulation task is completed, and the simulation result corresponding to the simulation task is obtained.
[0017] In one alternative implementation, when acquiring initial simulation state data obtained by the target simulation processing engine performing a simulation task in the graphics processor, the simulation processing module can be used to: During the execution of a simulation task by the target simulation processing engine, if an engine switching request is received, the intermediate simulation state data generated by the target simulation processing engine for the simulation task is obtained and stored in the graphics processor. The engine switching request indicates the updated simulation processing engine, and the updated simulation processing engine is used to obtain intermediate simulation state data from the graphics processor; N simulation processing engines include the updated processing engine; By updating the simulation processing engine in the graphics processor, the simulation task continues to be executed based on the intermediate simulation state data to obtain the initial simulation state data, and the initial simulation state data is stored in the graphics processor.
[0018] In one alternative implementation, the data processing apparatus further includes: Obtain the simulation call parameters associated with each of the N simulation processing engines; Data commonality parsing is performed on N simulation call parameters to obtain common parameter information. The common parameter information is then transformed and encapsulated into code logic to obtain the initial engine management model. Based on the common parameter information, the N simulation call parameters are structurally transformed to obtain the engine call parameters corresponding to the N simulation processing engines. The structure of the engine call parameters corresponding to the N simulation processing engines is the standard engine data structure indicated by the common parameter information. Write the engine call parameters corresponding to each of the N simulation processing engines into the initial engine management model to obtain the engine management model; When acquiring initial simulation state data obtained by the target simulation processing engine performing simulation tasks in the graphics processor, this simulation processing module can be used for: The target simulation processing engine is invoked through the target engine in the engine management model. The target simulation processing engine then executes the simulation task in the graphics processor to obtain the initial simulation state data. The target engine invocation parameters are the engine invocation parameters corresponding to the target simulation processing engine.
[0019] One embodiment of this application provides a computer device, including a processor, a memory, and an input / output interface; The processor is connected to a memory and an input / output interface, respectively. The input / output interface is used to receive and output data, the memory is used to store computer programs, and the processor is used to call the computer programs to cause the computer device containing the processor to execute the method in one aspect of the embodiments of this application.
[0020] One aspect of this application provides a computer-readable storage medium storing a computer program adapted to be loaded and executed by a processor, so that a computer device having the processor performs the method of one aspect of this application.
[0021] One aspect of this application provides a computer program product or computer program, which includes computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the methods provided in various optional embodiments of this application. In other words, when the computer instructions are executed by the processor, they implement the methods provided in various optional embodiments of this application.
[0022] Implementing the embodiments of this application will have the following beneficial effects: In this embodiment, each simulation processing engine can perform format conversion processing on its original initial description information according to a unified description information data format, so that simulation processing engines of different types and architectures have a standardized capability description (i.e., engine description information) that can be uniformly identified. Therefore, after obtaining the simulation task for the simulation object and the task requirement information corresponding to the simulation task, the task requirement information can be directly matched with the engine description information corresponding to N simulation processing engines to select the target simulation processing engine that matches the simulation task from the N simulation processing engines. Furthermore, the initial simulation state data obtained by the target simulation processing engine executing the simulation task in the graphics processor can be obtained, and the initial simulation state data can be directly processed by the graphics processor to perform a unified format conversion, that is, to standardize and process the initial simulation state data with different data formats, arrangement rules, and parameter structures output by different simulation processing engines to obtain the target simulation state data. This approach, which uses a graphics processor to render images based on target simulation state data in a unified format and generates images of the simulated objects' poses, breaks the architectural limitations of a strong bond between the simulation processing engine and the rendering logic. It eliminates the need for targeted modifications and adaptations to a large amount of upper-level code in the system, thereby reducing the cost of adapting and modifying the simulation processing engine and improving the processing efficiency of simulation tasks. Attached Figure Description
[0023] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0024] Figure 1 This application provides a data processing system for a data processing method. Figure 2 This is a schematic diagram of a data processing method provided in an embodiment of this application; Figure 3 This is a flowchart illustrating a data processing method provided in an embodiment of this application. Figure 1 ; Figure 4 This is a schematic diagram of a data processing architecture provided in an embodiment of this application; Figure 5 This is a flowchart illustrating a data processing method provided in an embodiment of this application. Figure 2 ; Figure 6This is a schematic diagram of a GPU data synchronization route provided in an embodiment of this application; Figure 7 This is a schematic diagram of a simulation task processing flow provided in an embodiment of this application; Figure 8 This is a schematic diagram of a data processing device provided in an embodiment of this application; Figure 9 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application. Detailed Implementation
[0025] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of this application.
[0026] If this application requires the collection of object data (such as user data), a prompt interface or pop-up window will be displayed before and during the collection process. This prompt interface or pop-up window is used to inform the user that certain data is being collected. The data acquisition steps will only begin after the user confirms the prompt interface or pop-up window; otherwise, the process will end. Furthermore, the acquired user data will be used in reasonable and legal scenarios or for legitimate purposes. Optionally, in scenarios where user data needs to be used but user authorization has not been obtained, authorization can be requested from the user, and the user data can only be used after authorization is granted.
[0027] It is understood that, in the specific embodiments of this application, the user data involved requires user permission or consent when the following embodiments of this application are applied to specific products or technologies, and the collection, use and processing of the relevant data must comply with the relevant laws, regulations and standards of the relevant regions.
[0028] In the embodiments of this application, please refer to Figure 1 , Figure 1 This application provides a data processing system for a data processing method, such as... Figure 1As shown, the data processing system may include a business server 101 and a cluster of terminal devices. The cluster of terminal devices may include terminal devices 102a, 102b, 102c, ..., 102n. Communication connections may exist between the terminal devices in the cluster; for example, there may be a communication connection between terminal devices 102a and 102b, or between terminal devices 102a and 102c. Simultaneously, any terminal device in the cluster may have a communication connection with the business server 101. For example, there may be a communication connection between terminal device 102a and the business server 101. The communication connection method is not limited; it can be established directly or indirectly through wired communication, wireless communication, or other methods. This application does not impose any restrictions on this method.
[0029] Specifically, the business server 101 can obtain simulation task processing requests, which carry simulation tasks for the simulation object and corresponding task requirement information. After obtaining the simulation task processing request, the business server 101 can obtain engine description information corresponding to N simulation processing engines. It should be noted that the above simulation task processing request can be obtained by the business server 101 from any terminal device in the terminal device cluster (such as terminal device 102a).
[0030] Next, the business server 101 can determine the target simulation processing engine from the N simulation processing engines based on the task requirement information and the engine description information corresponding to the N simulation processing engines respectively; the business server 101 can use the target simulation processing engine to execute the simulation task and obtain the target simulation state data; then, the business server 101 can render the target simulation state data to obtain the object posture image of the simulation object.
[0031] It is understood that the business server and terminal device mentioned in the embodiments of this application can also be a computer device. The terminal device mentioned above can be an electronic device, including but not limited to mobile phones, tablets, desktop computers, laptops, handheld computers, in-vehicle devices, augmented reality / virtual reality (AR / VR) devices, head-mounted displays, smart TVs, wearable devices, and other mobile internet devices (MIDs) with network access capabilities. Figure 1As shown, the terminal device can be a mobile phone (as shown in terminal device 102a), a desktop computer (as shown in terminal device 102b), a tablet computer (as shown in terminal device 102c), or a laptop computer (as shown in terminal device 102n), etc. Figure 1 Only a portion of the equipment is listed here. The business servers mentioned above can be independent physical servers, or server clusters or distributed systems composed of multiple physical servers.
[0032] It should be noted that the data processing method provided in this application can be applied to embodied intelligent simulation platforms, robot simulation training systems, digital twin simulation systems, graphics processing unit (GPU) real-time rendering simulation engines, automated data generation platforms, and reinforcement learning training environments. In terms of product form, the data processing method provided in this application can serve as the core engine module of a simulation platform, or it can be integrated into existing systems as a functional component for managing the simulation processing engine and synchronizing with the GPU.
[0033] For details, please see Figure 2 , Figure 2 This is a schematic diagram illustrating a data processing method provided in an embodiment of this application. For example... Figure 2 As shown, the computer device can acquire simulation tasks for the simulation object, as well as the task requirement information corresponding to the simulation task; wherein, the computer device can be as follows: Figure 1 The simulated object can be any terminal device in the business server 101 or terminal device cluster, or a system composed of the business server 101 and terminal devices. The current pose of the simulated object can be found in [reference needed]. Figure 2 The object's pose in screen 21.
[0034] It should be noted that the simulation task can be "to raise the robotic arm of the simulated object to a horizontal position". The task requirements include the object type (such as rigid body type), shape outline, spatial dimensions (such as 1 meter in height), physical material and other information of the simulated object. The task requirements may also include the spatial range, terrain structure and other basic scene information of the simulation virtual scene corresponding to the simulation task, which are used to completely restore the virtual scene in which the simulated object is located.
[0035] The object type is a standardized classification based on the physical motion characteristics, deformation rules, and mechanical interaction logic of the simulation object. Object types can include rigid bodies, joint bodies, collision bodies, deformable bodies (i.e., flexible bodies), fluids, and particles. Rigid body simulation objects can include robot bases, mechanical supports, and environmental walls; flexible body simulation objects can include soft robotic arms and fabrics; and particle simulation objects can include dust, debris, airflow, and smoke.
[0036] After obtaining the task requirement information, the business server can retrieve the engine description information corresponding to the N simulation processing engines deployed on the business server. These include engine description information 1 for simulation processing engine 1, engine description information 2 for simulation processing engine 2, ..., engine description information N for simulation processing engine N. It should be noted that the engine description information indicates the capabilities of the corresponding simulation processing engine; different simulation processing engines can have different processing capabilities. For example, simulation engine 1 can have rigid body dynamics solution capabilities, meaning that simulation engine 1 stores dynamic calculation formulas for solving motion velocity, angular velocity, displacement, rotational torque, collision contact force, and joint constraint force for rigid body simulation objects (such as robotic arms and metal parts); simulation engine 2 can have flexible body dynamics solution capabilities, meaning that simulation engine 2 stores dynamic calculation formulas for solving deformation, nodal displacement, elastic restoring force, tensile damping, and flexible collision force for flexible body simulation objects (such as cloth, film, and flexible connectors); simulation engine N can have fluid dynamics solution capabilities, meaning that simulation engine N stores dynamic calculation formulas for solving flow velocity, pressure field, viscosity resistance, particle diffusion, and fluid-solid interaction force for fluid type simulation objects (such as water and airflow).
[0037] Therefore, based on the object type of the simulation object in the task requirement information and the description information of N engines, the business server can determine that simulation processing engine 1 can be used to execute the simulation task for the simulation object; that is, simulation processing engine 1 is the target simulation processing engine matched with the simulation task. The business server can construct the simulation virtual scene and the simulation object within it in the graphics processor based on the scene basic information such as the spatial range and terrain structure of the simulation virtual scene in the task requirement information, as well as the shape outline, spatial dimensions, and physical materials of the simulation object. The business server can use simulation processing engine 1 to execute the simulation task for the simulation object in the simulation virtual scene in the graphics processor, that is, to raise the robotic arm of the simulation object to a horizontal position. The business server can obtain the current state data (i.e., initial simulation state data) of the simulation object output by simulation processing engine 1 after completing the simulation task for the simulation object. It should be noted that this initial simulation state data can include complete dynamic parameters such as the current spatial displacement, rotation angle, joint torque, movement speed, and collision contact information of the robotic arm.
[0038] The business server can use the graphics processor to perform a unified format conversion on the initial simulation state data to obtain the target simulation state data, and then store the target simulation state data in its original location in the graphics processor. Subsequently, the business server can directly obtain the target simulation state data from the graphics processor and render the target simulation state data to obtain the object posture image of the simulation object after executing the simulation task, as shown in object posture image 22.
[0039] As demonstrated by the above process, based on the task requirements and engine description of the simulation processing engine, a suitable target simulation processing engine can be accurately matched. This enables targeted dynamic solutions for simulation objects of different types, such as rigid bodies, soft bodies, and fluids, effectively addressing the problems of poor adaptability, low solution accuracy, and limited scene adaptation associated with single simulation engines. Simultaneously, the entire process—including simulation virtual scene construction, simulation task solving, simulation state data format conversion, and data storage—is completed within the graphics processing unit (GPU). This achieves in-situ closed-loop processing of simulation calculations, data processing, and data storage, avoiding the latency and performance loss caused by frequent copying and transmission of large amounts of data between the central processing unit (CPU) and the GPU, significantly improving simulation computation efficiency. Furthermore, by standardizing the initial simulation state data to obtain the target simulation state data, the simulation data output standard is unified, facilitating rapid data retrieval for visualization rendering and accurate output of real-time pose images of simulation objects. This contributes to improving the execution efficiency of simulation tasks, scene rendering accuracy, and the overall stability of the simulation system.
[0040] Further, please see Figure 3 , Figure 3 This is a flowchart illustrating a data processing method provided in an embodiment of this application. Figure 1 This data processing method can be executed by a computer device, which can be, for example, Figure 1 The data processing method can be any one of the terminal devices in the business server 101 or terminal device cluster shown, or a system composed of the business server 101 and terminal devices. The following description will use the example of this data processing method being executed by a computer device. This data processing method may include at least the following steps S301-S304: Step S301: Obtain the simulation task for the simulation object and the task requirement information corresponding to the simulation task, and obtain the engine description information corresponding to N simulation processing engines.
[0041] In this embodiment, the computer device can obtain a simulation task processing request. This request may be obtained from a network, or it may be created by an object (i.e., a user) corresponding to the computer device. The computer device can obtain the simulation task for the simulation object and the corresponding task requirement information from the simulation task processing request.
[0042] It should be noted that there can be one or more simulation objects. A simulation object is a physical object with an independent computational state in the simulation task, such as a rigid body object, a part of a robot (such as a joint link), a soft body object, or a collection of particles.
[0043] Rigid bodies are physical entities that maintain a constant shape and structural dimensions without deformation during simulation. They can be used to simulate objects with fixed forms, such as robot bases, mechanical supports, and environmental walls. Soft bodies are physical entities that stretch, bend, and deform during simulation. They can be used to simulate objects made of flexible materials, such as soft robotic arms and fabrics. Particle assemblies are aggregated simulation units composed of a large number of tiny particles. They can be used to simulate dynamic effects of clusters, such as dust debris, airflow smoke, and colliding scattered particles.
[0044] It should be noted that the simulation task refers to the simulation deduction, such as kinematics solving, dynamics calculation, attitude update, collision detection, and environmental interaction configured for the above-mentioned simulation object; for example, the simulation task can be "the simulation object moves forward 10 meters", or "simulation object 1 collides with simulation object 2", etc.
[0045] It should be noted that the task requirement information may include object description information of the simulation object, scene description information corresponding to the simulation task, and scene constraint information. The object description information may include the object type, shape outline, spatial dimensions, physical material, and structural properties of the corresponding simulation object. The object type may include rigid body, joint body, collider, deformable body (i.e., flexible body), fluid, and particle types. The rigid body object mentioned above is a rigid body type simulation object, the robot component mentioned above is a joint body type simulation object, and the particle set mentioned above is a particle type simulation object. Additionally, fluid type simulation objects may include water, liquid media, and airflow.
[0046] The scene description information can be used to indicate the basic information of the simulation virtual scene corresponding to the simulation task, such as the spatial range, terrain structure, obstacle distribution, environmental interaction rules, scene topology, and global physical environment parameters, so as to fully restore the virtual environment in which the simulation task is located.
[0047] The scene constraint information can be used to indicate the number of joints, colliders, soft bodies, fluid objects, contact density, simulation step size, solution accuracy requirements, GPU state export requirements, contact information output requirements, real-time rendering requirements, and user-specified processing engine preferences for the simulation object.
[0048] Optionally, the aforementioned task requirement information can be obtained from data such as scene files, asset description files, user configuration files, runtime interface parameters, graphical interface settings, or default data in computer devices. For example, when loading a robot model, information on rigid bodies, joints, colliders, and actuators can be read from the robot model's model description; when loading soft or deformable objects, mesh, constraints, material parameters, and deformation solution requirements can be read; in reinforcement learning tasks, the number of parallel environments, observation fields, and training step size can be read from the task configuration.
[0049] It should be noted that the simulation processing engine refers to the underlying engine or solver used to solve the physical state of the simulation object. It can be understood as an implementation module with capabilities such as rigid body dynamics, joint dynamics, soft body, fluid dynamics, collision detection, and constraint solving. In this embodiment of the application, the simulation processing engine can also be referred to as the physics backend or physics engine.
[0050] The physical state of the simulation object refers to the set of state parameters that fully characterize the physical motion and spatial properties of the simulation object at any moment during the simulation process. These parameters mainly include the simulation object's position, attitude, velocity, angular velocity, forces, joint angles, deformation parameters, particle distribution, collision contact state, and other dynamic and kinematic parameters. N is a positive integer, meaning the number of simulation processing engines can be one or more.
[0051] Each simulation engine stores initial description information. Each corresponding simulation engine can convert the initial description information according to its data format to obtain engine description information. Both the initial description information and the engine description information can be used to reflect the simulation engine's own solving capabilities and backend identifiers, but their data formats are different.
[0052] The backend identifiers can include "physx", "newton", "mujoco", "warp", etc.; one backend identifier corresponds to one simulation processing engine. The self-solving capabilities can specifically include rigid body dynamics solving, joint dynamics solving, flexible body dynamics solving, fluid dynamics solving, collision detection, contact solving, constraint solving, GPU acceleration, GPU state export, contact information export, differentiable simulation, batch environment support, deterministic solving, and real-time output capabilities.
[0053] It should be noted that the initial description information refers to the underlying raw capability data set by each simulation processing engine during factory or native configuration. This initial description information can be defined independently by each simulation processing engine vendor. However, due to differences in the definition logic and conventions of different vendors regarding these raw parameters, the initial description information of different simulation processing engines suffers from inconsistencies in fields, naming conventions, data structures, and parameter redundancy.
[0054] Therefore, the core of format conversion processing lies in standardizing, regularizing, eliminating redundancy, and normalizing parameters of the initial description information according to a pre-defined unified description information data format. This allows differentiated raw parameters to be uniformly encapsulated into structured and standardized engine description information, ensuring that the capability dimensions, parameter fields, and capability identifiers of all simulation processing engines maintain a consistent standard. In this way, computer equipment does not need to adapt differentiated native data parsing logic for different manufacturers and types of simulation processing engines, nor does it require developing dedicated identification, matching, and scheduling code for each simulation processing engine. This helps reduce the access cost and system coupling of multiple simulation processing engines.
[0055] Step S302: Match the task requirement information with the engine description information corresponding to each of the N simulation processing engines to obtain the target simulation processing engine that matches the simulation task among the N simulation processing engines.
[0056] In this embodiment of the application, the computer device can match the task requirement information with the engine description information corresponding to N simulation processing engines. This can be understood as the computer device selecting the simulation processing engine whose self-solving capability, as indicated by the engine description information, can cover all the requirements of the simulation task from the N simulation processing engines based on the object type, contact density, and solution accuracy requirements of the simulation object indicated by the task requirement information, and using it as the target simulation processing engine that matches the simulation task.
[0057] For example, if the simulation object consists of rigid bodies and colliders, the computer can identify a simulation engine with rigid body dynamics and collision solving capabilities as the target simulation engine. Similarly, if the simulation object contains a large number of robot joints, the computer can identify a simulation engine with strong joint solving capabilities as the target simulation engine.
[0058] In one embodiment, step S302 may include the following steps: the computer device may use task requirement information to evaluate the task processing conditions of the simulation task, that is, the computer device may perform deduction based on the task requirement information to predict the capabilities required by the simulation processing engine to process the simulation task, thereby obtaining performance index constraints.
[0059] It should be noted that performance constraints are capability limitations imposed on the simulation engine selected to handle the simulation task. For example, if the task requirement information indicates that the simulation object is a rigid body, then the simulation engine used to handle the task must have rigid body dynamics solving capabilities, resulting in the performance constraint "the simulation engine used to handle the simulation task must have rigid body dynamics solving capabilities." As another example, if the task requirement information indicates that the contact density of the simulation task is a certain threshold, then the simulation engine used to handle the task must have contact solving capabilities, resulting in the performance constraint "the simulation engine used to handle the simulation task must have contact solving capabilities."
[0060] Next, the computer device can obtain the processing performance indicators corresponding to each of the N simulation processing engines from the engine description information. It should be noted that these processing performance indicators represent the capabilities of the corresponding simulation processing engine. For example, if the processing performance indicator of a simulation processing engine is "rigid body dynamics solution, collision detection, and state data export," then this means that the simulation processing engine possesses rigid body dynamics solution capabilities, collision detection capabilities, and state data export capabilities.
[0061] It should be noted that performance metric constraints can be used to indicate the capabilities required of the simulation processing engine to handle the simulation task, while processing performance metrics can be used to indicate the capabilities of the simulation processing engine. When the capabilities indicated by the processing performance metrics of a simulation processing engine are the same as those indicated by the performance metric constraints, then that simulation processing engine can be used to handle the simulation task.
[0062] Based on this, the computer device can select candidate simulation processing engines from the N simulation processing engines based on the processing performance indicators corresponding to each engine. That is, the computer device can analyze whether each simulation processing engine can be used to process the simulation task based on its capabilities, thereby selecting candidate simulation processing engines from the N engines that can be used to process the simulation task. It should be noted that the number of candidate simulation processing engines is K, where K is a positive integer less than or equal to N.
[0063] When the number of candidate simulation processing engines is 1, i.e., K is 1, it indicates that only one of the N simulation processing engines can be used to process the simulation task. The computer device can directly identify this candidate simulation processing engine as the target simulation processing engine matching the simulation task. When the number of candidate simulation processing engines is greater than 1 and K is greater than 1, the computer device can use the processing performance indicators corresponding to the K candidate simulation processing engines to evaluate their processing performance. That is, it combines multi-dimensional data such as the solution accuracy, real-time rate, scene contact density, GPU computing power usage, and data export speed of the candidate simulation processing engines to perform quantitative scoring and comprehensive comparison, obtaining the processing performance scores corresponding to the K candidate simulation processing engines. The computer device can identify the B candidate simulation processing engines with the highest corresponding processing performance scores among the K candidate simulation processing engines as the target simulation processing engines matching the simulation task, where B is a positive integer less than or equal to K. For example, when B is 1, the candidate simulation processing engine with the highest corresponding processing performance score among the K candidate simulation processing engines can be directly identified as the target simulation processing engine matching the simulation task.
[0064] In one embodiment, a computer device may have N simulation processing engines, each with its own corresponding processing performance indicators. If none of the N simulation processing engines meets the performance constraints, then none of the N engines can be used independently to process the simulation task. For example, the task requirements may indicate that the simulation processing engine used to process the simulation task must have rigid body dynamics solving capabilities, fluid dynamics solving capabilities, and high-precision differentiable simulation capabilities. However, among the N simulation processing engines, some may only support rigid body dynamics solving and high-precision differentiable simulation capabilities, but lack fluid dynamics solving capabilities, while others may only support fluid dynamics solving and high-precision differentiable simulation capabilities, but not rigid body dynamics solving capabilities.
[0065] The computer device can group M simulation objects into A simulation object groups, where A is a positive integer. The grouping process can be based on information such as the object description information, dynamic solution type, simulation region, simulation level, and user tags of the simulation objects. Specifically, taking object description information as the grouping basis, the computer device can determine the object type of each of the M simulation objects based on their respective object description information, and group simulation objects of the same type into one simulation object group, resulting in A simulation object groups. For example, a rigid robot body and rigid obstacles can be grouped into one simulation object group; flexible cables, cloth, or soft grippers can be grouped into another; and fluids such as liquids or airflows can be grouped into yet another.
[0066] Next, the computer device can fuse the scene constraint information with the object description information of the simulation objects in each of the A simulation object groups to obtain the group description information corresponding to each of the A simulation object groups. It should be noted that the group description information includes the object description information of the simulation objects in the corresponding simulation object group, the scene description information corresponding to the simulation task, and the scene constraint information, etc.
[0067] The computer device can match the group description information corresponding to each simulation object group with the engine description information corresponding to each of the N simulation processing engines. That is, the computer device can use the group description information to evaluate the task processing conditions for the simulation objects in the corresponding simulation object group, obtaining the performance index constraints for the simulation processing engines used to process the simulation objects in the corresponding simulation object group. The computer device can obtain the processing performance indicators corresponding to each of the N simulation processing engines from the engine description information; based on the processing performance indicators corresponding to the N simulation processing engines, it can select A simulation processing engines from the N simulation processing engines that meet the performance index constraints for each of the A simulation object groups; wherein, one simulation object group is matched with one simulation processing engine, and the simulation processing engines matched for different simulation object groups are not the same.
[0068] Optionally, after dividing the simulation objects into A groups, the engine allocation method for these A groups can employ a rule mapping table, a capability matching table, a user configuration table, or runtime scoring results. For example, the computer device can first filter available simulation processing engines based on a "object type → simulation processing engine" mapping table, and then select a target engine from the filtered available engines based on performance and accuracy scores. Alternatively, the computer device can also allow users to explicitly specify in a configuration file which simulation processing engine will solve a simulation object of a certain object type. In this way, different simulation processing engines are responsible for the physical solution of their corresponding simulation objects.
[0069] In one embodiment, step S302 may further include the following steps: the computer device can obtain the object types corresponding to the M simulation objects from the task requirement information, i.e., from the object description information corresponding to the M simulation objects respectively; the computer device can group the M simulation objects according to the object types corresponding to the M simulation objects respectively, that is, group the simulation objects with the same object type among the M simulation objects into one simulation object group, to obtain at least one object type group. Specifically, if all M simulation objects are of the same object type, then one object type group is obtained; if there are simulation objects of different object types among the M simulation objects, then at least two object type groups are obtained.
[0070] Furthermore, the computer device can count the number of simulated objects in each object type group and determine the object type of the object type group with the largest number of simulated objects as the target object type. The computer device can obtain the processing object types corresponding to the N simulation processing engines from their respective engine description information; then, the computer device can determine the simulation processing engine among the N simulation processing engines whose processing object type is the target object type as the target simulation processing engine that matches the simulation task.
[0071] It should be noted that the processing object type indicates the object type most suitable for the corresponding simulation engine. The specific processing object type is determined by the dynamics solving capabilities of the corresponding simulation engine; for example, if the simulation engine has rigid body dynamics solving capabilities, it indicates that the processing object type of that simulation engine is a rigid body type. As another example, if the simulation engine has both rigid body dynamics solving capabilities and fluid dynamics capabilities, it indicates that the processing object types of that simulation engine are both rigid body and fluid types.
[0072] Step S303: Obtain the initial simulation state data obtained by the target simulation processing engine executing the simulation task in the graphics processor, and perform unified format conversion processing on the initial simulation state data through the graphics processor to obtain the target simulation state data.
[0073] In this embodiment, obtaining the initial simulation state data obtained by the target simulation processing engine executing simulation tasks in the graphics processor can be understood as follows: the computer device can call the target simulation processing engine to execute simulation tasks (such as raising the robotic arm of the simulation object, rotating the head of the simulation object, etc.) on the simulation object in the graphics processor, and obtain the initial simulation state data; at this time, the initial simulation state data is located in the graphics processor. Then, the computer device can directly perform a unified format conversion on the initial simulation state data located in the graphics processor through the graphics processor to obtain the target simulation state data; the target simulation state data is also located in the graphics processor.
[0074] It should be noted that unified format conversion processing refers to the process of standardizing and processing initial simulation state data output by different simulation processing engines, which have different data formats, layout rules, parameter structures, and storage forms. This results in inconsistent state output specifications for simulation objects such as rigid bodies, joints, flexible bodies, fluids, and particles across different simulation processing engines. Initial simulation state data suffers from inconsistencies in data dimensions, field definitions, GPU array layouts, and state output granularity. This application addresses these issues by using pre-defined unified data conversion rules to align fields, standardize dimensions, unify structures, and normalize data in the initial simulation state data output by various engines. This transforms the diverse native state data from multiple engines into a universal, standard, and universally parsable target simulation state data format.
[0075] It should be noted that both the initial simulation state data and the target simulation state data are used to reflect the motion information of the simulated object during the execution of the simulation task, as well as the position coordinates of the simulated object in the virtual simulation scene after completing the simulation motion simulation. The motion information may include at least one of the following: rotation quaternion, scaling vector, linear velocity, angular velocity, joint position, joint velocity, contact point, contact normal, and contact impulse.
[0076] Step S304: The target simulation state data is rendered using a graphics processor to obtain the object posture image of the simulation object.
[0077] In this embodiment, the computer device can directly render the target simulation state data located in the graphics processor to obtain the object posture image of the simulation object. It should be noted that the image rendering can be implemented based on a simulation rendering engine. A simulation rendering engine refers to a functional module used to complete scene drawing, model mapping, posture restoration, and image output. The simulation rendering engine has capabilities such as 3D scene construction, simulation model loading, posture coordinate mapping, lighting and texture rendering, and dynamic image refresh.
[0078] In one embodiment, a data processing architecture may be deployed in a computer device; the computer device may refer to Figure 1 The business server 101 is shown above. For a schematic diagram of the data processing architecture described above, please refer to [link to diagram]. Figure 4 , Figure 4 This is a schematic diagram of a data processing architecture provided in an embodiment of this application. This data processing architecture can be used to implement the data processing method in this application.
[0079] like Figure 4 As shown, the data processing architecture includes an application layer (which can be functionally referred to as the "Embodied Intelligent Simulation Engine"), a unified physical backend abstraction interface, a backend manager, a state synchronization scheduler, multiple physical backends, and a simulation rendering engine. The application layer manages the unified physical backend abstraction interface, the backend manager, and the state synchronization scheduler; specifically, it is primarily responsible for completing processes such as simulation task creation, simulation virtual scene loading, simulation step initiation, and reading observation data (i.e., target simulation state data).
[0080] It should be noted that the Unified Physical Backend Abstraction Interface (UPI) is a series of standardized interfaces defined by this data processing architecture. The interface types of the UPI include at least the following types: simulation stepping, state data acquisition, simulation scene construction, and simulation control. Optionally, the interface types of the UPI may also include simulation object creation, collision query, and GPU data export.
[0081] Specifically, the simulation scenario construction interface controls the physical backend (i.e., the simulation processing engine) to create the simulation virtual scenario corresponding to the simulation task; the simulation object creation interface controls the simulation processing engine to create simulation objects in the created simulation virtual scenario; the simulation control interface controls the execution flow of the simulation processing engine to perform simulation tasks on simulation objects in the simulation environment; and the simulation stepping interface controls the progression speed or duration of the simulation time when the simulation processing engine executes simulation tasks. By establishing a unified physical backend abstract interface independent of specific simulation processing engines, the application layer code does not depend on specific simulation processing engines such as PhysX, Newton, MuJoCo, and Warp. Furthermore, by employing plugin registration, backend identifiers, and capability declaration mechanisms, different simulation processing engines can be accessed, queried, instantiated, and switched on demand.
[0082] It should be noted that, in addition to being dynamically loaded as a plugin based on a unified physical backend abstract interface, the aforementioned simulation processing engine can also be integrated into the application layer via static linking, script binding, remote services, or inter-process communication. As long as it exposes a unified abstract interface to the application layer and provides standard state export or adaptation capabilities, it is considered a replaceable implementation.
[0083] The interface for obtaining state data is used to retrieve initial simulation state data from the simulation processing engine during the execution of simulation tasks. The collision query interface is used to query whether a collision has occurred between simulation objects during the execution of simulation tasks by the simulation processing engine. The interface for exporting GPU data is used to directly export target simulation state data from the GPU. The unified physics backend abstraction interface may also include a description information retrieval interface, which is used to retrieve the engine description information corresponding to the simulation processing engine. Each simulation processing engine can be specifically adapted to the above interfaces, thereby achieving the goal of encapsulating different simulation processing engines as plugins through the unified physics backend abstraction interface. This allows application layer code to control and manage the effects of different simulation processing engines without relying on the specific code logic of different simulation processing engines.
[0084] It should be noted that multiple physical backends can include Physical Backend 1 and Physical Backend 2. Each physical backend can be used to implement an abstract interface, that is, to implement the aforementioned unified physical backend abstract interface; and each physical backend can also be used to implement image processor data adaptation, that is, to establish data adaptation with the image processor. In addition, each physical backend can also set up extensible modules according to its own processing logic to implement the personalized processing logic of that physical backend.
[0085] It should be noted that the backend manager is used to manage engine description information and to schedule and manage simulation processing engines based on the unified physical backend abstraction interface. The backend manager implements functions such as the backend registry, backend factory, and capability declaration. Specifically, the backend registry is a list recording the engine description information corresponding to each simulation processing engine. The backend factory is used to schedule and manage simulation processing engines based on the unified physical backend abstraction interface. For example, after receiving task requirement information, the backend factory can determine the target simulation processing engine matching the simulation task from among N simulation processing engines based on the task requirement information and the information recorded in the backend registry. The capability declaration component provides an interface for obtaining description information and a standardized data format (i.e., description information data format). The backend manager can provide a capability declaration service to each simulation processing engine based on the capability declaration component. This can be understood as each simulation processing engine, by implementing the description information data format provided by the acquisition interface based on the initial description information, declares its own identifier and capability set to the computer device.
[0086] It should be noted that the state synchronization scheduler runs on the GPU and is used to perform identifier mapping, GPU parallel computing, format conversion coordination, and rendering engine updates. Identifier mapping refers to defining a globally unique Entity ID (hereinafter referred to as object identification information) for each simulation object. The usage and function of object identification information will be explained below and will not be repeated here. GPU parallel computing refers to setting up a thread group in the GPU for each simulation object to perform parallel, unified format conversion processing on the initial object state data of that simulation object in the initial simulation state data. Rendering engine updates refer to the synchronous transmission of the target simulation state data to the simulation rendering engine after obtaining the target simulation state data, so that the simulation rendering engine can perform image rendering processing.
[0087] It should be noted that the simulation rendering engine provides a graphics processor batch update interface, which is used to receive target simulation state data synchronously transmitted to the simulation rendering engine. The simulation rendering engine can also perform graphics processor data distribution and graphics interface encapsulation. Graphics interface encapsulation refers to the simulation rendering engine's ability to uniformly abstract and encapsulate various heterogeneous graphics programming interfaces at the underlying level, constructing a standardized rendering interface layer that can be universally called at the upper level. Graphics processor data distribution refers to the process by which the simulation rendering engine, after receiving the batch target simulation state data synchronously output by the GPU, classifies, splits, and renders the batch target simulation state data according to the Entity ID mapping relationship of the simulation objects.
[0088] In this embodiment, each simulation processing engine can perform format conversion processing on its original initial description information according to a unified description information data format, so that simulation processing engines of different types and architectures have a standardized capability description (i.e., engine description information) that can be uniformly identified. Therefore, after obtaining the simulation task for the simulation object and the task requirement information corresponding to the simulation task, the task requirement information can be directly matched with the engine description information corresponding to N simulation processing engines to select the target simulation processing engine that matches the simulation task from the N simulation processing engines. Furthermore, the initial simulation state data obtained by the target simulation processing engine executing the simulation task in the graphics processor can be obtained, and the initial simulation state data can be directly processed by the graphics processor to perform a unified format conversion, that is, to standardize and process the initial simulation state data with different data formats, arrangement rules, and parameter structures output by different simulation processing engines to obtain the target simulation state data. This approach, which uses a graphics processor to render images based on target simulation state data in a unified format and generates images of the simulated objects' poses, breaks the architectural limitations of a strong bond between the simulation processing engine and the image rendering logic. It eliminates the need for targeted modifications and adaptations to a large amount of upper-level code in the system, thereby reducing the cost of adapting and modifying the simulation processing engine and improving the overall processing efficiency of simulation tasks.
[0089] Further, please see Figure 5 , Figure 5 This is a flowchart illustrating a data processing method provided in an embodiment of this application. Figure 2 This data processing method can be executed by a computer device, which can be, for example, Figure 1 The data processing method can be any one of the terminal devices in the business server 101 or terminal device cluster shown, or a system composed of the business server 101 and terminal devices. The following description will use the example of this data processing method being executed by a computer device. This data processing method may include at least the following steps S501-S504: Step S501: Obtain the simulation task for the simulation object and the task requirement information corresponding to the simulation task, and obtain the engine description information corresponding to N simulation processing engines.
[0090] In this embodiment of the application, the specific implementation process of step S501 can be found in [reference needed]. Figure 3 The specific process described in step S301 is not repeated here.
[0091] Step S502: Match the task requirement information with the engine description information corresponding to each of the N simulation processing engines to obtain the target simulation processing engine that matches the simulation task among the N simulation processing engines.
[0092] In this embodiment of the application, the specific implementation process of step S501 can be found in [reference needed]. Figure 3 The specific process described in step S301 is not repeated here.
[0093] Step S503: Obtain the initial simulation state data obtained by the target simulation processing engine executing the simulation task in the graphics processor. Perform a unified format conversion on the initial simulation state data through the graphics processor to obtain the target simulation state data. The number of simulation objects is M, and the target simulation state data includes the object state data corresponding to each of the M simulation objects, where M is a positive integer.
[0094] In one embodiment, step S503 may include the following steps: The computer device, through the target simulation processing engine, constructs a simulation virtual scene for processing simulation tasks in the graphics processor based on the basic scene information such as the spatial range, terrain structure, obstacle distribution, environmental interaction rules, scene topology, and global physical environment parameters of the simulation virtual scene in the task requirement information, as well as the shape outline, spatial size, physical material, and structural attributes of the simulation objects in the object description information.
[0095] The computer equipment can acquire the first simulation step data of the simulated object. It should be noted that this first simulation step data represents relevant data generated during motion simulation of the simulated object. Specifically, it represents relevant data generated during motion simulation of the simulated object in the current simulation cycle, such as the motion duration of the motion simulation (also known as the simulation step length) and the motion offset of the simulated object (e.g., moving 1 meter to the left, rotating 30 degrees counterclockwise, or rising 0.5 meters vertically). This first simulation step data can be generated by the simulation observation engine based on the simulation task.
[0096] It should be noted that the simulation observation engine can refer to a simulation step prediction model used to perform intelligent calculations such as environmental perception, behavioral decision-making, reinforcement learning iteration, and anomaly detection.
[0097] The computer device can transmit the first simulation step data to the target simulation processing engine. The target simulation processing engine then uses the first simulation step data to simulate the motion of the simulation object in the simulation virtual scene. That is, based on the simulation step length indicated by the first simulation step data, the motion offset indicated by the first simulation step data is executed on the simulation object to obtain the initial simulation state data.
[0098] It should be noted that the initial simulation state data is used to reflect the motion information of the simulated object during the simulation process, as well as the position coordinates of the simulated object in the virtual simulation scene after the simulation is completed. The motion information may include at least one of the following: rotation quaternion, scaling vector, linear velocity, angular velocity, joint position, joint velocity, contact point, contact normal, and contact impulse.
[0099] In one embodiment, the number of simulation objects is M, where M is a positive integer; the number of target simulation processing engines is A. Each target simulation processing engine is used to perform simulation tasks on at least one of the M simulation objects, and one simulation object corresponds to one target simulation processing engine. That is, simulation objects are bound to target simulation processing engines one-to-one. Any simulation object is assigned to a single target simulation processing engine to complete simulation deductions such as dynamics solving and collision detection. Different simulation objects can be assigned to different target simulation processing engines for parallel computation, and the same target simulation processing engine can undertake the simulation computation work of one or more simulation objects.
[0100] The process of transmitting the first simulation step data to the target simulation processing engine can include the following steps: After acquiring the first simulation step data corresponding to each of the M simulation objects, the computer device can acquire the object coupling relationship data between the M simulation objects. It should be noted that the object coupling relationship data is used to record the physical constraints, collision associations, transmission linkages, fluid interactions, and other dependencies between different simulation objects. Specifically, it includes identification markers such as whether there are contact constraints, joint transmission bindings, soft-body and rigid-body attachments, fluid-solid force coupling, and particle-carrier collision linkages between simulation objects. It also records the logical order of data dependencies between coupled simulation objects. Specifically, if the object coupling relationship data indicates that two simulation objects have coupled interactions, the simulation derivations for these two simulation objects cannot be calculated independently and in parallel. The simulation derivation for the subsequent simulation object must be completed after the simulation derivation for the preceding simulation object is finished.
[0101] Therefore, the computer device can use object coupling relationship data to parse the simulation order of M simulation objects and obtain the simulation order corresponding to each of the M simulation objects. The computer device can then transmit the first simulation step data corresponding to each of the M simulation objects to the target simulation processing engine corresponding to each simulation object in turn, according to the simulation order corresponding to each of the M simulation objects.
[0102] In one embodiment, after obtaining the target simulation state data, the computer device can perform task state detection on the simulation task. This can be understood as the computer device determining whether the simulation task should enter the next round of simulation based on the target simulation state data, thereby obtaining the task state of the simulation task.
[0103] It should be noted that the detection content of the task status detection may include at least one of the following: whether the current simulation step size has reached the set end time, whether the current simulation step number (i.e. the number of simulations) has reached the maximum number of steps, whether the number of training times of reinforcement learning has reached the maximum number of steps, whether the simulation task has been completed, whether the user has issued a pause or stop command, whether the system has detected an unrecoverable error, and whether the backend solution status is valid.
[0104] The detection basis for task status detection may include at least one of the following: target simulation status data, global simulation operation records, human-computer interaction instruction information, and reinforcement learning training log data.
[0105] When the computer device determines that the task status is the task execution status, that is, the simulation task can enter the next round of simulation, the computer device can use the simulation observation engine to predict the simulation step of the simulation object based on the target simulation status data. That is, predict the relevant data (such as motion offset) generated by the motion simulation of the simulation object in the next round of simulation step, and obtain the second simulation step data of the simulation object.
[0106] It should be noted that the second simulation step data is also used to represent the relevant data generated by motion simulation of the simulation object. Specifically, the second simulation step data is used to represent the relevant data generated by motion simulation of the simulation object in the next round of simulation.
[0107] The computer device can transmit the second simulation step data to the target simulation processing engine. In this way, the target simulation processing engine uses the second simulation step data to simulate the posture of the simulation object in the simulation virtual scene. That is, based on the simulation step length indicated by the second simulation step data, the motion offset indicated by the second simulation step data is executed on the simulation object until the task status of the simulation task is completed, and the simulation result corresponding to the simulation task is obtained.
[0108] When the computer determines that the task status is completed, meaning that the simulation task does not need to proceed to the next round of simulation, the computer can determine the target simulation status data as the simulation result corresponding to the simulation task.
[0109] In one embodiment, the data processing method provided in this application further includes the ability to switch between simulation processing engines.
[0110] Specifically, step S503 may further include the following process: During the execution of a simulation task by the target simulation processing engine, if the computer device receives an engine switching request, the computer device can obtain the intermediate simulation state data generated by the target simulation processing engine for the simulation task and store the intermediate simulation state data in the graphics processor. The engine switching request may be initiated by the user, or it may be automatically generated by the computer device based on real-time operating metrics.
[0111] It should be noted that the conditions for triggering the automatic generation engine switching request of computer equipment include at least one of the following: the computing power load of the target simulation processing engine exceeds the preset load threshold, the solution accuracy is consistently lower than the required standard of the simulation task, frequent solution divergence or numerical instability occurs, the memory resource usage reaches the upper limit, the target simulation processing engine does not support the addition of new simulation object types, and potential operational failure risks are detected in the target simulation processing engine.
[0112] It should be noted that intermediate simulation state data refers to the standardized simulation state set stored inside the graphics processor after being processed by a unified format at the current simulation iteration node. It contains complete information such as the real-time position, attitude, joint angle, deformation parameters, fluid and particle distribution, collision contact force, cumulative simulation duration, current iteration step, and object coupling constraint parameters of all simulation objects. It completely records the physical running state of all simulation objects before switching simulation processing engines, and serves as the baseline initial data for the new simulation processing engine to continue calculations after the switch.
[0113] The computer device can obtain the updated simulation processing engine indicated by the engine switching request. This updated simulation processing engine is one of N simulation processing engines, meaning the N simulation processing engines include the updated engine. The computer device can continue executing simulation tasks in the graphics processing unit (GPU) based on intermediate simulation state data by updating the simulation processing engine. Specifically, the computer device can use the updated simulation processing engine to construct a simulated virtual scene for processing simulation tasks, based on the basic scene information (spatial extent, terrain structure, obstacle distribution, environmental interaction rules, scene topology, global physical environment parameters, etc.) and the object description information (shape outline, spatial dimensions, physical materials, structural attributes, etc.) of the simulated virtual scene, along with the intermediate simulation state data. The simulation task continues to be executed in this simulated virtual scene, obtaining initial simulation state data, which is then stored in the GPU. This allows users to switch between different simulation processing engines within the same scene asset and application code, comparing the differences in stability, speed, and realism between different simulation processing engines.
[0114] For example, a simulation task involves a robotic arm grasping fabric and pushing fluid balls. The initially matched target simulation processing engine is Simulation Processing A. Simulation Processing A excels at solving rigid body dynamics and joint dynamics problems, but its computational power ceiling is relatively low for solving flexible body dynamics and fluid dynamics problems. When the simulation task reaches step 500, the number of fluid particles in the virtual simulation scene increases significantly, and the video memory usage of Simulation Processing Engine A reaches its limit, causing the frame rate to drop continuously. At this point, the computer can automatically generate an engine switching request, which instructs the use of Simulation Processing Engine B as the updated simulation processing engine. The computer device can first read the intermediate simulation state data output by simulation processing A at the current 500th step. This intermediate simulation state data includes the joint angles of the robotic arm, the deformation profile of the cloth, the position of the fluid ball, the scene terrain, and global physical parameters. This intermediate simulation state data is saved in place within the graphics processor. Then, simulation processing engine B is called, reusing the original scene space, obstacles, materials, and other basic configurations. Combining the intermediate simulation state data, it directly restores the real-time poses of all objects corresponding to step 500, without resetting the scene or re-simulating from scratch. Simulation processing engine B then continues to complete the soft body and fluid coupling solution from step 501 onwards. The entire process continuously outputs a new round of initial simulation state data, with no pose discontinuities or simulation time resets to zero, achieving seamless engine switching.
[0115] In one embodiment, the simulation call parameters associated with different simulation processing engines are not the same. This can be understood as the calling interfaces, input parameter fields, parameter names, data types, data transmission order, and optional configuration items natively provided by each simulation processing engine may have different definitions. For example, some simulation processing engines focus on rigid body solution configuration, and their simulation call parameters include joint damping and collision iteration count; other simulation processing engines carry a large number of unique parameters such as fluid viscosity and particle sampling step size. Thus, the parameter names, value ranges, and unit standards in the simulation call parameters associated with different simulation processing engines are not uniform, making it impossible to directly complete cross-simulation processing engine scheduling using the same set of parameter logic.
[0116] Therefore, computer devices can provide an engine management model, which offers a set of common parameter information. This common parameter information defines standardized parameter names, input fields, data types, and data transmission order for each call parameter. When each simulation processing engine is deployed on the computer device, it needs to perform a structured transformation of its own simulation call parameters based on the common parameter information to obtain the corresponding engine call parameters, and then add these engine call parameters to the engine management model. In other words, the call interface, input fields, parameter names, data types, data transmission order, and optional configuration items natively provided by each simulation processing engine are structured and unified. In this way, the computer device can call the simulation processing engine through the engine management model based on the engine call parameters stored in the engine management model.
[0117] Optionally, the aforementioned engine management model and common parameter information can also be generated automatically. The generation process may include the following steps: The computer device can obtain the simulation call parameters associated with N simulation processing engines respectively; perform data commonality parsing on the N simulation call parameters, that is, in the N simulation call parameters, filter and extract common parameters that need to be configured for calling all simulation processing engines and have general adaptability; standardize the field name, data type, value range, physical unit, transmission order and default filling rules of the common parameters; and automatically generate standardized common parameter information based on the standardized common parameters.
[0118] The computer equipment can perform code logic conversion and encapsulation processing on common parameter information. This involves compiling the common parameter information into code according to a structured data format recognizable by computer programs, encapsulating the compiled common parameter information, and outputting an initial engine management model with basic scheduling capabilities. Based on the common parameter information, the computer equipment can perform structured conversion on N simulation call parameters to obtain engine call parameters corresponding to N simulation processing engines. The structure of these engine call parameters for each of the N simulation processing engines is the standard engine data structure indicated by the common parameter information. The computer equipment can then write the engine call parameters corresponding to the N simulation processing engines into the initial engine management model to obtain the engine management model.
[0119] Based on this, when obtaining the initial simulation state data obtained by the target simulation processing engine executing simulation tasks in the graphics processor, the following process can be included: The computer device can call the target simulation processing engine (i.e., the engine call parameters corresponding to the target simulation processing engine) through the target engine call parameters in the engine management model, and execute the simulation task in the graphics processor through the target simulation processing engine to obtain the initial simulation state data.
[0120] Step S504: The central processing unit obtains the object identification information corresponding to each of the M simulation objects, obtains the storage location information of each object's state data in the graphics processor, and associates and stores the storage location information corresponding to each object's state data with the object identification information.
[0121] In this embodiment, the computer device can obtain object identification information corresponding to M simulated objects through the CPU. The computer device can obtain the storage location information of each object's state data in the graphics processor, sequentially associate the storage location information corresponding to each object's state data with the object identification information, and store the associated storage location information and object identification information corresponding to each object's state data in the central processing unit.
[0122] It should be noted that the object identification information (Entity ID) is a globally unique identification code assigned to each simulation object, and the object identification information is globally unique; that is, the object identification information corresponding to each simulation object is different.
[0123] Step S505: Based on the storage location information associated with the object identification information of the i-th simulation object, access the data reading interface of the graphics processor to obtain the object state data of the i-th simulation object.
[0124] In this embodiment of the application, the computer device can obtain storage location information associated with the object identification information of the i-th simulated object from the central processing unit; then, based on the storage location information associated with the object identification information of the i-th simulated object, it can access the data reading interface of the graphics processor to obtain the object state data of the i-th simulated object from the storage space indicated by the storage location information in the graphics processor.
[0125] Step S506: Render the image of the object state data of the i-th simulation object to obtain the object posture image of the i-th simulation object.
[0126] In this embodiment, the computer device can simulate a rendering engine in the graphics processor to render the object state data of the i-th simulated object, thereby obtaining the object pose image of the i-th simulated object. The computer device can sequentially execute the above steps S505 and S506 for M simulated objects to obtain the object pose images corresponding to the M simulated objects respectively.
[0127] In one embodiment, a simulation rendering engine is deployed in the computer device. This simulation rendering engine is a functional module used to complete scene rendering, model mapping, pose reconstruction, and image output. The simulation rendering engine can create rendering instances in the GPU, with each rendering instance used to render an image of a simulated object. When the number of simulated objects is M, the simulation rendering engine can create M instances in the GPU, with each rendering instance used to render an image of one of the M simulated objects. Additionally, the computer device stores a rendering identifier mapping table; this rendering identifier mapping table indicates the one-to-one correspondence between the object identifier information corresponding to each of the M simulated objects and the M rendering instances.
[0128] Based on this, step S506 above may include the following process: The computer device can obtain a rendering identifier mapping table; based on the one-to-one correspondence between the object identifier information corresponding to the M simulated objects indicated by the rendering identifier mapping table and the M rendering instances, among the M rendering instances, the rendering instance corresponding to the object identifier information of the i-th simulated object is determined as the target rendering instance; where i is a positive integer less than or equal to M. Furthermore, the computer device can render the image of the object state data of the i-th simulated object in the target rendering instance to obtain the object pose image of the i-th simulated object.
[0129] It should be noted that a rendering instance can refer to a lightweight rendering execution unit independently opened up within the GPU by the simulation rendering engine. A rendering instance has an independent model cache, texture buffer, pose calculation pipeline and output frame cache, which is used to bind a single simulation object and independently complete the pose calculation, model mapping, lighting and shadow rendering and pixel image output of the simulation object.
[0130] In one embodiment, this application implements a data processing system for handling simulation tasks. This data processing system may include the simulation processing engine, simulation rendering engine, and simulation observation engine mentioned above. The simulation processing engine is the physical backend for handling simulation tasks; the simulation rendering engine is a virtual module that can perform the screen rendering operations in steps S304 and 506. The simulation observation engine is a simulation step prediction model used to perform intelligent calculations such as environmental perception, behavior decision-making, reinforcement learning iteration, and anomaly detection; specifically, it can be used to generate the first simulation step data and the second simulation step data mentioned above.
[0131] Please see Figure 6 , Figure 6 This is a schematic diagram of a GPU data synchronization route provided in an embodiment of this application. Figure 6As shown, the GPU data synchronization path comprises five stages: the processing engine layer, the graphics processor data adaptation layer, the cross-framework sharing layer, the rendering engine layer, and the observation layer. The processing engine layer controls the target simulation processing engine to execute simulation tasks within the GPU, thereby obtaining initial simulation state data (including graphics processor physical state, rigid body pose, and joint state data). Specifically, the rigid body pose data and joint state data refer to the rigid body pose data and joint state data of the simulated object.
[0132] The graphics processing unit (GPU) data adaptation layer performs the unified format conversion process described above, enabling functions such as video memory buffering, parallel format conversion, and unified intermediate formatting. Specifically, parallel format conversion refers to the process where a GPU data adapter (GPU Kernel) can be configured for each simulation engine. The GPU data adapter converts the initial object state data corresponding to multiple simulation objects matched by the corresponding simulation engine. This conversion can be performed in parallel by multiple GPU threads or thread groups, meaning parallel format conversion is applied to the initial object state data corresponding to multiple simulation objects. For each simulation object, the corresponding GPU thread or thread group performs format conversion on the initial object state data, transforming it into a unified intermediate format to obtain the object state data of that simulation object. Furthermore, the object state data of this simulation object is stored in the standard intermediate state buffer (video memory buffer) within the graphics processor.
[0133] Specifically, a GPU data adapter (i.e., GPU Kernel) can be configured for each simulation processing engine to convert the internal data format of the corresponding simulation processing engine into a unified intermediate state on the GPU side. At the same time, the GPU Kernel performs parallel format conversion and rearrangement of the initial object state data of multiple simulation objects, which helps to reduce the CPU per-entity synchronization overhead in large-scale simulation scenarios.
[0134] It should be noted that the unified intermediate format can include different fields depending on the scenario. In a rigid body rendering scenario, it can include at least Entity ID, position vector, rotation quaternion, scaling vector, and visibility identifier; in a robot control scenario, it can also include joint position, joint velocity, driving torque, and joint constraints; in a physics learning scenario, it can also include observation data such as contact point, normal, contact impulse, linear velocity, and angular velocity.
[0135] The cross-frame sharing layer is used to perform zero-copy forwarding of standardized object state data stored in the standard intermediate state buffer across modules and frames. This cross-frame sharing layer only transmits memory tensor structure descriptors (such as DLPack descriptors), external graphics processor memory handles, or tensor metadata, such as video memory data addresses, hardware device identifiers, data types, tensor shapes, memory step sizes, memory lifecycle management information, etc. The cross-frame sharing layer only transmits pointers and does not copy the object state data of multiple simulation objects to the central processing unit in batches, which helps to avoid bandwidth loss and synchronization delay caused by large-scale data transmission across hardware.
[0136] The rendering engine layer (i.e., the processing layer where the simulation rendering engine resides) provides an external graphics processor data import interface (i.e., an external GPU data import interface) and a graphics processor batch update interface (i.e., a GPU batch update interface) to achieve rendering buffer synchronization. Specifically, the external GPU data import interface receives the GPU memory descriptor or handle of the standard intermediate state buffer and synchronously stores it in the rendering buffer, thereby achieving rendering buffer synchronization; the GPU batch update interface updates the transformation matrix, visibility, or instance attributes of multiple rendering instances at once on the GPU side according to the Entity ID mapping table, thus avoiding the need for the CPU to call the rendering object update interface one by one.
[0137] The observation layer interfaces with various deep learning frameworks, enabling in-situ reading and input adaptation of observation data on the GPU. This deep learning framework can directly convert standard intermediate state buffers into tensors via tensor exchange protocols such as DLPack, thus achieving tensor conversion and using it as input to the neural network. In this way, reinforcement learning, imitation learning, or policy evaluation modules can directly read observation data on the GPU side, eliminating the need for a central processing unit. This simplifies the format conversion and inter-device copying process before simulation state data enters the neural network.
[0138] It should be noted that when the computer device does not support GPU-side zero-copy sharing, it can degenerate into a CPU-intermediate synchronization method, but still retain the unified physical backend abstract interface, Entity ID mapping and state synchronization scheduler; this degradation scheme can be used as a compatibility path, not the optimal implementation.
[0139] Specifically, the CPU-intermediate synchronization method refers to the process where, after the target simulation processing engine executes the simulation task in the graphics processing unit (GPU) and obtains the initial simulation state data, the computer device can retrieve the initial simulation state data from the GPU via the CPU. Furthermore, the computer device can use the CPU to obtain the object identification information corresponding to each of the M simulation objects, and associate and store the object state data corresponding to each object state data with the object identification information in the CPU. The computer device can then retrieve the object state data associated with the object identification information of the i-th simulation object from the CPU and transmit it to the simulation rendering engine. The computer device can then use the simulation rendering engine to render the image of the i-th simulation object's object state data in the GPU, obtaining the object pose image of the i-th simulation object.
[0140] Please see Figure 7 , Figure 7 This is a schematic diagram of a simulation task processing flow provided in an embodiment of this application. For example... Figure 7 As shown, the above processing flow may include the following steps: Step S701: Read the task requirement information.
[0141] In this embodiment of the application, after the computer device starts the processing flow of the simulation task, the computer device can obtain the simulation task for the simulation object and the task requirement information corresponding to the simulation task.
[0142] Step S702: Process engine capability matching.
[0143] In this embodiment, after obtaining task requirement information, the computer device can retrieve engine description information corresponding to N simulation processing engines from the backend registry. Based on the task requirement information and the engine description information corresponding to the N simulation processing engines, it performs capability matching between the simulation task and the simulation processing engines. That is, among the N simulation processing engines, it queries and finds candidate simulation processing engines that can be independently used to process the simulation task. For example, if the simulation object is mainly composed of rigid bodies and colliders, simulation processing engines with rigid body dynamics and collision solving capabilities are preferentially matched; if the simulation object contains a large number of robot joints, simulation processing engines with strong joint solving capabilities are preferentially matched; if the simulation object contains soft bodies, cloth, or deformable objects, simulation processing engines that support finite element method or other soft body solving capabilities are preferentially matched.
[0144] Step S703: Whether to use a single processing engine.
[0145] In this embodiment, if a candidate simulation processing engine that can be independently used to process the simulation task is found among the N simulation processing engines, it indicates that the simulation task can be executed using a single processing engine, and step S704 continues. If no candidate simulation processing engine that can be independently used to process the simulation task is found among the N simulation processing engines, it indicates that the simulation task can be executed using multiple processing engines, and step S705 continues.
[0146] Step S704: Select the optimal processing engine.
[0147] In this embodiment, when K candidate simulation processing engines that can be independently used to process the simulation task are found among N simulation processing engines, the computer device can select the optimal simulation processing engine from the K candidate engines. The optimal simulation processing engine can be the simulation processing engine with the highest performance index score among the K candidate simulation processing engines. The evaluation criteria for the performance index score may include functional matching degree, simulation stability, solution accuracy, single-step simulation time, GPU state export capability, contact information integrity, parallel environment throughput, memory usage, synchronization cost with the simulation rendering engine or observation layer, historical running performance data, and user-specified priority, etc.
[0148] Computer equipment can assign individual weights to each evaluation criterion and perform a comprehensive score for the simulation processing engine based on each criterion and its corresponding weight. For example, in reinforcement learning training scenarios, the weights of evaluation criteria such as parallel throughput and GPU state export capability can be increased; in Sim-to-Real accuracy evaluation scenarios, the weights of evaluation criteria such as joint solution accuracy and contact stability can be increased; and in real-time visualization scenarios, the weights of evaluation criteria such as single-step time and rendering synchronization efficiency can be increased.
[0149] Step S705: Select the multi-processor engine combination.
[0150] In this embodiment, if no K candidate simulation processing engines suitable for independently processing the simulation task are found among the N simulation processing engines, the computer device can group the M simulation objects into A simulation object groups, and select a matching simulation processing engine for each simulation object group. The specific processing procedure can be found above and will not be repeated here.
[0151] Step S706: Establish identifier mapping.
[0152] In this embodiment, after selecting the target simulation processing engine, the computer device can assign a globally unique Entity ID (i.e., object identification information) to each simulation object and establish mapping relationships between simulation objects and Entity IDs, Entity IDs and rendering instances, and Entity IDs and observations. For multi-processing engine combinations, different simulation processing engines can internally name or distinguish simulation objects using their own object indexes, handles, or pointers, but externally they are all associated with a unified intermediate buffer through Entity IDs. Thus, the simulation rendering engine and deep learning framework do not need to be aware of which specific simulation processing engine solves a particular simulation object; they can accurately complete image rendering and observation data extraction simply by querying the preset mapping relationships between Entity IDs and rendering instances, and Entity IDs and observations, completely shielding the heterogeneous differences in the internal indexes of multiple simulation processing engines.
[0153] Step S707: Perform simulation stepping.
[0154] In this embodiment, the computer device can acquire object coupling relationship data between M simulation objects; using the object coupling relationship data, the simulation order of the M simulation objects is parsed to obtain the simulation order corresponding to each of the M simulation objects; the computer device can then transmit the first simulation step data corresponding to each of the M simulation objects to the target simulation processing engine corresponding to each simulation object in sequence according to the simulation order corresponding to each of the M simulation objects. The target simulation processing engine then performs simulation stepping on the corresponding simulation object in the GPU based on the first simulation step data of that simulation object to obtain initial object state data; this process continues until the computer device acquires the initial object state data corresponding to each of the M simulation objects, i.e., the initial simulation state data.
[0155] Step S708, data adaptation and format conversion.
[0156] In this embodiment of the application, after the simulation step is completed, the computer device can use the GPU to perform data adaptation and format conversion (i.e., uniform format conversion) on the initial simulation state data to obtain the target simulation state data.
[0157] Step S709: Synchronize with the rendering engine and observation framework.
[0158] In this embodiment, the computer device shares the target simulation state data on the GPU side with the simulation rendering engine and the deep learning framework through DLPack, CUDA external memory handle, graphics API external memory extension or equivalent mechanisms.
[0159] Step S710: Continue simulation?
[0160] In this embodiment, the computer device can perform task status detection on the simulation task to obtain the task status of the simulation task. When the computer device determines that the task status is the task execution status, the computer device can perform simulation step prediction on the simulation object based on the target simulation status data, that is, predict the relevant data (such as motion offset) generated by the motion simulation of the simulation object in the next simulation step, and obtain the second simulation step data of the simulation object; continue to execute step S707 based on the second simulation step data; when the computer device determines that the task status is the task completion status, it indicates that the simulation task processing is completed, that is, the computer device can end the processing flow of the simulation task.
[0161] In this embodiment, each simulation processing engine can perform format conversion processing on its original initial description information according to a unified description information data format, so that simulation processing engines of different types and architectures have a standardized capability description (i.e., engine description information) that can be uniformly identified. Therefore, after obtaining the simulation task for the simulation object and the task requirement information corresponding to the simulation task, the task requirement information can be directly matched with the engine description information corresponding to N simulation processing engines to select the target simulation processing engine that matches the simulation task from the N simulation processing engines. Furthermore, the initial simulation state data obtained by the target simulation processing engine executing the simulation task in the graphics processor can be obtained, and the initial simulation state data can be directly processed by the graphics processor to perform a unified format conversion process, that is, to standardize and process the initial simulation state data with different data formats, arrangement rules, and parameter structures output by different simulation processing engines to obtain the target simulation state data. The target simulation state data includes the object state data corresponding to M simulation objects.
[0162] After obtaining the target simulation state data, the CPU can acquire the object identification information corresponding to each of the M simulation objects, and obtain the storage location information of each object's state data in the GPU. The storage location information corresponding to each object's state data is then associated with the object identification information. Based on the storage location information associated with the object identification information of the i-th simulation object, the GPU's data read interface can be accessed to obtain the object state data of the i-th simulation object. Subsequently, the object state data of the i-th simulation object is rendered to obtain the object pose image of the i-th simulation object. This establishes a GPU-end-to-end data synchronization path, directly converting, standardizing, and distributing the state data generated by the target simulation processing engine within the GPU. This avoids the traditional "GPU→CPU→GPU" relay path, reducing performance losses caused by cross-chip data transmission, data copying, and secondary format parsing, and also reducing data transmission latency and system resource consumption. Furthermore, this eliminates the need for targeted modifications and adaptations to a large amount of upper-level code, reducing the cost of adapting and modifying the simulation processing engine and improving the overall processing efficiency of the simulation task.
[0163] Further, please see Figure 8 , Figure 8 This is a schematic diagram of a data processing device provided in an embodiment of this application. The data processing device 800 may include: an information acquisition module 81, an engine matching module 82, a simulation processing module 83, and a screen rendering module 84.
[0164] The information acquisition module 81 is used to acquire simulation tasks for the simulation object and the task requirements information corresponding to the simulation tasks, and to acquire engine description information corresponding to N simulation processing engines respectively; the engine description information is obtained by the corresponding simulation processing engine according to the description information data format, and the initial description information in the simulation processing engine is converted by the corresponding simulation processing engine; N is a positive integer. Engine matching module 82 is used to match the task requirement information with the engine description information corresponding to N simulation processing engines to obtain the target simulation processing engine that matches the simulation task among the N simulation processing engines. The simulation processing module 83 is used to acquire the initial simulation state data obtained by the target simulation processing engine executing simulation tasks in the graphics processor, and to obtain the target simulation state data by performing a unified format conversion on the initial simulation state data through the graphics processor. The image rendering module 84 is used to render the target simulation state data through the graphics processor to obtain the object posture image of the simulation object.
[0165] In one optional implementation, when the task requirement information is matched with the engine description information corresponding to each of the N simulation processing engines to obtain the target simulation processing engine that matches the simulation task among the N simulation processing engines, the engine matching module 82 can be used to: The task processing conditions of the simulation task are evaluated using task requirement information, and the performance index constraints of the simulation processing engine used to process the simulation task are obtained. Obtain the processing performance metrics corresponding to each of the N simulation processing engines from their respective engine description information; Based on the processing performance indicators corresponding to N simulation processing engines, candidate simulation processing engines that meet the performance indicator constraints are selected from the N simulation processing engines. From the candidate simulation processing engines, determine the target simulation processing engine that matches the simulation task.
[0166] In one alternative implementation, the number of candidate simulation processing engines is K, where K is a positive integer less than or equal to N; When a target simulation processing engine matching the simulation task is determined from the candidate simulation processing engines, the engine matching module 82 can be used to: When K is 1, the candidate simulation processing engine is determined as the target simulation processing engine that matches the simulation task; When K is greater than 1, the processing performance indicators corresponding to the K candidate simulation processing engines are used to evaluate the processing performance of the K candidate simulation processing engines, and the processing performance scores corresponding to the K candidate simulation processing engines are obtained. The candidate simulation processing engine with the largest processing performance score among the K candidate simulation processing engines is determined as the target simulation processing engine that matches the simulation task.
[0167] In one optional implementation, the number of simulation objects is M, and the task requirement information includes the scene constraint information corresponding to the simulation task, as well as the object description information corresponding to each of the M simulation objects; M is a positive integer; the engine matching module 82 can be used for: When no candidate simulation processing engine that meets the performance constraints is found, the M simulation objects are grouped using the object description information corresponding to the M simulation objects respectively, resulting in A simulation object groups; A is a positive integer. The scene constraint information is fused with the object description information of the simulation objects in the A simulation object groups to obtain the group description information corresponding to the A simulation object groups respectively. The group description information corresponding to each simulation object group is matched with the engine description information corresponding to each of the N simulation processing engines to obtain the simulation processing engine that matches the simulation object group among the N simulation processing engines. The simulation processing engines matched to each of the A simulation object groups are determined as the target simulation processing engines that match the simulation task.
[0168] In one alternative implementation, the number of simulation objects is M, where M is a positive integer; When the task requirement information is matched with the engine description information corresponding to N simulation processing engines to obtain the target simulation processing engine that matches the simulation task among the N simulation processing engines, the engine matching module 82 can be used for: From the task requirements information, obtain the object types corresponding to M simulation objects respectively, and group the M simulation objects according to the object types corresponding to the M simulation objects respectively to obtain at least one object type group; Count the number of simulated objects in each object type group, and determine the object type of the object type group with the largest number of simulated objects as the target object type; From the engine description information corresponding to each of the N simulation processing engines, obtain the processing object type corresponding to each of the N simulation processing engines; the processing object type is used to indicate the object type that is most suitable for the corresponding simulation processing engine. Among the N simulation processing engines, the simulation processing engine whose processing object type is the target object type is determined as the target simulation processing engine that matches the simulation task.
[0169] In one optional implementation, the number of simulation objects is M, and the target simulation state data includes object state data corresponding to each of the M simulation objects, where M is a positive integer; the data processing device further includes: The central processing unit obtains the object identification information corresponding to each of the M simulation objects, obtains the storage location information of each object's state data in the graphics processor, and associates and stores the storage location information corresponding to each object's state data with the object identification information. When the graphics processor renders the target simulation state data to obtain the object posture image of the simulation object, the rendering module 84 can be used for: Based on the storage location information associated with the object identification information of the i-th simulation object, the data reading interface of the graphics processor is accessed to obtain the object state data of the i-th simulation object; i is a positive integer less than or equal to M; Render the image of the i-th simulation object by processing its state data.
[0170] In one optional implementation, when rendering the object state data of the i-th simulation object to obtain the object pose image of the i-th simulation object, the rendering module 84 can be used for: Obtain the rendering identifier mapping table; the rendering identifier mapping table is used to indicate the one-to-one correspondence between the object identifier information corresponding to M simulation objects and the M rendering instances; Based on the rendering identifier mapping table, among M rendering instances, determine the target rendering instance corresponding to the object identifier information of the i-th simulation object; i is a positive integer less than or equal to M; In the target rendering instance, the object state data of the i-th simulation object is rendered to obtain the object pose image of the i-th simulation object.
[0171] In one alternative implementation, when acquiring initial simulation state data obtained by the target simulation processing engine performing a simulation task in the graphics processor, the simulation processing module 83 can be used to: Through the target simulation processing engine, a simulation virtual environment for processing simulation tasks is constructed in the graphics processor based on task requirement information; The first simulation step data of the simulation object is acquired and transmitted to the target simulation processing engine; the first simulation step data is used to represent the relevant data generated by motion simulation of the simulation object. Using the target simulation processing engine, the simulation object is simulated in the simulation virtual environment using the first simulation step data to obtain the initial simulation state data.
[0172] In one optional implementation, the number of simulation objects is M; M is a positive integer; the number of target simulation processing engines is A, and each target simulation processing engine is used to perform simulation tasks for at least one of the M simulation objects, with one simulation object corresponding to one target simulation processing engine. When acquiring the first simulation step data of the simulation object and transmitting the first simulation step data to the target simulation processing engine, the simulation processing module 83 can be used for: Obtain the first simulation step data corresponding to each of the M simulation objects, and obtain the object coupling relationship data between the M simulation objects; Using object coupling relationship data, the simulation order of M simulation objects is analyzed to obtain the simulation order corresponding to each of the M simulation objects. According to the simulation order corresponding to the M simulation objects, the first simulation step data corresponding to the M simulation objects are transmitted to the target simulation processing engine corresponding to each simulation object in turn.
[0173] In one alternative implementation, the data processing apparatus further includes: Based on the target simulation state data, the simulation task is detected to obtain the task state of the simulation task. When the task status is task execution status, the simulation step prediction is performed on the simulation object based on the target simulation status data to obtain the second simulation step data of the simulation object, and the second simulation step data is transmitted to the target simulation processing engine. Using the target simulation processing engine, the second simulation step data is used to simulate the attitude of the simulation object in the simulation virtual environment until the task state of the simulation task is completed, and the simulation result corresponding to the simulation task is obtained.
[0174] In one alternative implementation, when acquiring initial simulation state data obtained by the target simulation processing engine performing a simulation task in the graphics processor, the simulation processing module 83 can be used to: During the execution of a simulation task by the target simulation processing engine, if an engine switching request is received, the intermediate simulation state data generated by the target simulation processing engine for the simulation task is obtained and stored in the graphics processor. The engine switching request indicates the updated simulation processing engine, and the updated simulation processing engine is used to obtain intermediate simulation state data from the graphics processor; N simulation processing engines include the updated processing engine; By updating the simulation processing engine in the graphics processor, the simulation task continues to be executed based on the intermediate simulation state data to obtain the initial simulation state data, and the initial simulation state data is stored in the graphics processor.
[0175] In one alternative implementation, the data processing apparatus further includes: Obtain the simulation call parameters associated with each of the N simulation processing engines; Data commonality parsing is performed on N simulation call parameters to obtain common parameter information. The common parameter information is then transformed and encapsulated into code logic to obtain the initial engine management model. Based on the common parameter information, the N simulation call parameters are structurally transformed to obtain the engine call parameters corresponding to the N simulation processing engines. The structure of the engine call parameters corresponding to the N simulation processing engines is the standard engine data structure indicated by the common parameter information. Write the engine call parameters corresponding to each of the N simulation processing engines into the initial engine management model to obtain the engine management model; When acquiring the initial simulation state data obtained by the target simulation processing engine performing simulation tasks in the graphics processor, the simulation processing module 83 can be used for: The target simulation processing engine is invoked through the target engine in the engine management model. The target simulation processing engine then executes the simulation task in the graphics processor to obtain the initial simulation state data. The target engine invocation parameters are the engine invocation parameters corresponding to the target simulation processing engine.
[0176] In this embodiment, each simulation processing engine can perform format conversion processing on its original initial description information according to a unified description information data format, so that simulation processing engines of different types and architectures have a standardized capability description (i.e., engine description information) that can be uniformly identified. Therefore, after obtaining the simulation task for the simulation object and the task requirement information corresponding to the simulation task, the task requirement information can be directly matched with the engine description information corresponding to N simulation processing engines to select the target simulation processing engine that matches the simulation task from the N simulation processing engines. Furthermore, the initial simulation state data obtained by the target simulation processing engine executing the simulation task in the graphics processor can be obtained, and the initial simulation state data can be directly processed by the graphics processor to perform a unified format conversion process, that is, to standardize and process the initial simulation state data with different data formats, arrangement rules, and parameter structures output by different simulation processing engines to obtain the target simulation state data. The target simulation state data includes the object state data corresponding to M simulation objects.
[0177] After obtaining the target simulation state data, the CPU can acquire the object identification information corresponding to each of the M simulation objects, and obtain the storage location information of each object's state data in the GPU. The storage location information corresponding to each object's state data is then associated with the object identification information. Based on the storage location information associated with the object identification information of the i-th simulation object, the GPU's data read interface can be accessed to obtain the object state data of the i-th simulation object. Subsequently, the object state data of the i-th simulation object is rendered to obtain the object pose image of the i-th simulation object. This establishes a GPU-end-to-end data synchronization path, directly converting, standardizing, and distributing the state data generated by the target simulation processing engine within the GPU. This avoids the traditional "GPU→CPU→GPU" relay path, reducing performance losses caused by cross-chip data transmission, data copying, and secondary format parsing, and also reducing data transmission latency and system resource consumption. Furthermore, this eliminates the need for targeted modifications and adaptations to a large amount of upper-level code, reducing the cost of adapting and modifying the simulation processing engine and improving the overall processing efficiency of the simulation task.
[0178] Please see Figure 9 , Figure 9 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application. Figure 9As shown, the computer device 900 in this embodiment may include a processor 901, a network interface 904, and a memory 905. Furthermore, the computer device 900 may also include a user interface 903 and at least one communication bus 902. The communication bus 902 is used to enable communication between these components. The user interface 903 may include a display screen and a keyboard; optionally, the user interface 903 may also include a standard wired interface or a wireless interface. The network interface 904 may optionally include a standard wired interface or a wireless interface (such as a Wi-Fi interface). The memory 905 may be high-speed RAM or non-volatile memory, such as at least one disk storage device. Optionally, the memory 905 may also be at least one storage device located remotely from the processor 901. Figure 9 As shown, the memory 905, which is a computer-readable storage medium, may include an operating system, a network communication module, a user interface module, and computer programs.
[0179] The network interface 904 provides network communication elements; the user interface 903 is mainly used to provide an input interface for users; and the processor 901 can be used to call computer programs stored in the memory 905, specifically for execution. Figure 3 and Figure 5 Each step in the embodiments.
[0180] In this embodiment, each simulation processing engine can perform format conversion processing on its original initial description information according to a unified description information data format, so that simulation processing engines of different types and architectures have a standardized capability description (i.e., engine description information) that can be uniformly identified. Therefore, after obtaining the simulation task for the simulation object and the task requirement information corresponding to the simulation task, the task requirement information can be directly matched with the engine description information corresponding to N simulation processing engines to select the target simulation processing engine that matches the simulation task from the N simulation processing engines. Furthermore, the initial simulation state data obtained by the target simulation processing engine executing the simulation task in the graphics processor can be obtained, and the initial simulation state data can be directly processed by the graphics processor to perform a unified format conversion process, that is, to standardize and process the initial simulation state data with different data formats, arrangement rules, and parameter structures output by different simulation processing engines to obtain the target simulation state data. The target simulation state data includes the object state data corresponding to M simulation objects.
[0181] After obtaining the target simulation state data, the CPU can acquire the object identification information corresponding to each of the M simulation objects, and obtain the storage location information of each object's state data in the GPU. The storage location information corresponding to each object's state data is then associated with the object identification information. Based on the storage location information associated with the object identification information of the i-th simulation object, the GPU's data read interface can be accessed to obtain the object state data of the i-th simulation object. Subsequently, the object state data of the i-th simulation object is rendered to obtain the object pose image of the i-th simulation object. This establishes a GPU-end-to-end data synchronization path, directly converting, standardizing, and distributing the state data generated by the target simulation processing engine within the GPU. This avoids the traditional "GPU→CPU→GPU" relay path, reducing performance losses caused by cross-chip data transmission, data copying, and secondary format parsing, and also reducing data transmission latency and system resource consumption. Furthermore, this eliminates the need for targeted modifications and adaptations to a large amount of upper-level code, reducing the cost of adapting and modifying the simulation processing engine and improving the overall processing efficiency of the simulation task.
[0182] Furthermore, it should be noted that embodiments of this application also provide a computer-readable storage medium storing a computer program adapted to be loaded and executed by the processor. Figure 3 and Figure 5 For details on the methods provided in each step, please refer to the document. Figure 3 and Figure 5 The implementation methods provided for each step are not repeated here. Furthermore, the beneficial effects of using the same method are also not repeated. For technical details not disclosed in the computer-readable storage medium embodiments involved in this application, please refer to the description of the method embodiments of this application. As an example, a computer program may be deployed to execute on a single computer device, or on multiple computer devices located in one location, or on multiple computer devices distributed across multiple locations and interconnected via a communication network.
[0183] The computer-readable storage medium can be the apparatus provided in any of the foregoing embodiments or the internal storage unit of the computer device, such as the hard disk or memory of the computer device. The computer-readable storage medium can also be an external storage device of the computer device, such as a plug-in hard disk, smart media card (SMC), secure digital (SD) card, flash card, etc., provided on the computer device. Furthermore, the computer-readable storage medium can include both internal storage units and external storage devices of the computer device. The computer-readable storage medium is used to store the computer program and other programs and data required by the computer device. The computer-readable storage medium can also be used to temporarily store data that has been output or will be output.
[0184] This application also provides a computer program product or computer program, which includes computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform... Figure 3 and Figure 5 The methods provided are among the various optional methods available in the code, so they will not be elaborated upon here.
[0185] The terms "first," "second," etc., in the specification, claims, and drawings of this application are used to distinguish different objects, not to describe a specific order. Furthermore, the term "comprising," and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, apparatus, product, or device that includes a series of steps or units is not limited to the listed steps or modules, but may optionally include steps or modules not listed, or may optionally include other step units inherent to these processes, methods, apparatuses, products, or devices.
[0186] In the embodiments of this application, the terms "module" or "unit" refer to a computer program or part of a computer program that has a predetermined function and works with other related parts to achieve a predetermined goal, and can be implemented wholly or partially using software, hardware (such as processing circuitry or memory), or a combination thereof. Similarly, a processor (or multiple processors or memory) can be used to implement one or more modules or units. Furthermore, each module or unit can be part of an overall module or unit that includes the functionality of that module or unit.
[0187] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of each example have been generally described in terms of functionality. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementations should not be considered beyond the scope of this application.
[0188] The methods and related apparatus provided in this application are described with reference to the method flowcharts and / or structural diagrams provided in this application. Specifically, each block of the method flowchart and / or structural diagram, as well as combinations of 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, special-purpose computer, embedded processor, or other programmable device to create a machine, such that the instructions, which execute via the processor of the computer or other programmable device, generate instructions for implementing the process. Figure 1 A schematic diagram of one or more processes and / or structures. Figure 1 The computer program instructions may be stored in a computer-readable storage medium that can direct a computer or other programmable device to function in a particular manner, causing the instructions stored in the computer-readable storage medium to produce an article of manufacture including the instruction means, or to be transmitted via a computer-readable storage medium. The computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.). The instruction means is implemented in the process. Figure 1 A schematic diagram of one or more processes and / or structures. Figure 1 The functions specified in one or more boxes. These computer program instructions may also be loaded onto a computer or other programmable device to cause a series of operational steps to be performed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable device for implementing the process. Figure 1 A process or multiple processes and / or structures illustrate the steps of the functions specified in one or more boxes.
[0189] The steps in the method of this application embodiment can be adjusted, combined, or deleted according to actual needs.
[0190] The modules in the device of this application embodiment can be merged, divided, and deleted according to actual needs.
[0191] The above-disclosed embodiments are merely preferred embodiments of this application and should not be construed as limiting the scope of this application. Therefore, any equivalent variations made in accordance with the claims of this application shall still fall within the scope of this application.
Claims
1. A data processing method, characterized in that, include: Obtain the simulation task for the simulation object and the task requirement information corresponding to the simulation task; obtain the engine description information corresponding to N simulation processing engines respectively. The engine description information is obtained by the corresponding simulation processing engine through format conversion of the initial description information in the simulation processing engine according to the description information data format. N is a positive integer; The task requirement information is matched with the engine description information corresponding to the N simulation processing engines to obtain the target simulation processing engine that matches the simulation task among the N simulation processing engines. The initial simulation state data obtained by the target simulation processing engine executing the simulation task in the graphics processor is acquired, and the target simulation state data is obtained by performing a unified format conversion on the initial simulation state data through the graphics processor. The graphics processor renders the target simulation state data to obtain the object posture image of the simulation object.
2. The method according to claim 1, characterized in that, The step of matching the task requirement information with the engine description information corresponding to the N simulation processing engines to obtain the target simulation processing engine that matches the simulation task among the N simulation processing engines includes: The task requirements information is used to evaluate the task processing conditions of the simulation task, and the performance constraints of the simulation processing engine used to process the simulation task are obtained. Obtain the processing performance indicators corresponding to the N simulation processing engines from the engine description information corresponding to the N simulation processing engines respectively; Based on the processing performance indicators corresponding to the N simulation processing engines, candidate simulation processing engines that meet the performance indicator constraints are selected from the N simulation processing engines. From the candidate simulation processing engines, a target simulation processing engine that matches the simulation task is determined.
3. The method according to claim 2, characterized in that, The number of candidate simulation processing engines is K, where K is a positive integer less than or equal to N; The step of determining the target simulation processing engine that matches the simulation task from the candidate simulation processing engines includes: When K is 1, the candidate simulation processing engine is determined as the target simulation processing engine that matches the simulation task. When K is greater than 1, the processing performance indicators corresponding to the K candidate simulation processing engines are used to evaluate the processing performance of the K candidate simulation processing engines, and the processing performance scores corresponding to the K candidate simulation processing engines are obtained. The candidate simulation processing engine with the largest processing performance score among the K candidate simulation processing engines is determined as the target simulation processing engine that matches the simulation task.
4. The method according to claim 2, characterized in that, The number of simulation objects is M, and the task requirement information includes the scene constraint information corresponding to the simulation task, and the object description information corresponding to each of the M simulation objects. M is a positive integer; The method further includes: When no candidate simulation processing engine that meets the performance index constraints is selected, the M simulation objects are grouped using the object description information corresponding to the M simulation objects respectively, resulting in A simulation object groups; A is a positive integer. The scene constraint information is fused with the object description information of the simulation objects in the A simulation object groups to obtain the group description information corresponding to the A simulation object groups respectively; The group description information corresponding to each simulation object group is matched with the engine description information corresponding to each of the N simulation processing engines to obtain the simulation processing engine that matches the simulation object group among the N simulation processing engines; The simulation processing engines matched to the A groups of simulation objects are determined as the target simulation processing engines that match the simulation task.
5. The method according to claim 1, characterized in that, The number of simulation objects is M, where M is a positive integer; The step of matching the task requirement information with the engine description information corresponding to the N simulation processing engines to obtain the target simulation processing engine that matches the simulation task among the N simulation processing engines includes: From the task requirement information, obtain the object types corresponding to M simulation objects respectively, and group the M simulation objects according to the object types corresponding to the M simulation objects respectively to obtain at least one object type group; Count the number of simulated objects in each object type group, and determine the object type of the object type group with the largest number of simulated objects as the target object type; The processing object type corresponding to each of the N simulation processing engines is obtained from the engine description information corresponding to each of the N simulation processing engines; the processing object type is used to indicate the object type that is most suitable for the corresponding simulation processing engine. Among the N simulation processing engines, the simulation processing engine whose processing object type is the target object type is determined as the target simulation processing engine that matches the simulation task.
6. The method according to claim 1, characterized in that, The number of simulation objects is M, and the target simulation state data includes the object state data corresponding to each of the M simulation objects, where M is a positive integer. The method further includes: The central processing unit obtains the object identification information corresponding to each of the M simulation objects, obtains the storage location information of each object's state data in the graphics processor, and associates and stores the storage location information corresponding to each object's state data with the object identification information. The step of rendering the target simulation state data using the graphics processor to obtain the object posture image of the simulation object includes: Based on the storage location information associated with the object identification information of the i-th simulation object, the data reading interface of the graphics processor is accessed to obtain the object state data of the i-th simulation object; i is a positive integer less than or equal to M; The object state data of the i-th simulation object is rendered to obtain the object posture image of the i-th simulation object.
7. The method according to claim 6, characterized in that, The step of rendering the object state data of the i-th simulation object to obtain the object pose image of the i-th simulation object includes: Obtain the rendering identifier mapping table; the rendering identifier mapping table is used to indicate the one-to-one correspondence between the object identifier information corresponding to M simulation objects and M rendering instances; Based on the rendering identifier mapping table, among the M rendering instances, the target rendering instance corresponding to the object identifier information of the i-th simulation object is determined; i is a positive integer less than or equal to M; In the target rendering instance, the object state data of the i-th simulation object is rendered to obtain the object pose image of the i-th simulation object.
8. The method according to claim 1, characterized in that, The step of acquiring the initial simulation state data obtained by the target simulation processing engine executing the simulation task in the graphics processor includes: Through the target simulation processing engine, a simulation virtual scene for processing the simulation task is constructed in the graphics processor based on the task requirement information; The first simulation step data of the simulation object is obtained, and the first simulation step data is transmitted to the target simulation processing engine; the first simulation step data is used to represent the relevant data generated by motion simulation for the simulation object; Using the target simulation processing engine, the simulation object is simulated in the simulation virtual scene using the first simulation step data to obtain initial simulation state data.
9. The method according to claim 8, characterized in that, The number of simulation objects is M; M is a positive integer; the number of target simulation processing engines is A, and each target simulation processing engine is used to execute the simulation task for at least one of the M simulation objects, with one simulation object corresponding to one target simulation processing engine. The step of acquiring the first simulation step data of the simulation object and transmitting the first simulation step data to the target simulation processing engine includes: Obtain the first simulation step data corresponding to each of the M simulation objects, and obtain the object coupling relationship data between the M simulation objects; Using the object coupling relationship data, the simulation order of the M simulation objects is analyzed to obtain the simulation order corresponding to each of the M simulation objects; According to the simulation order corresponding to the M simulation objects, the first simulation step data corresponding to the M simulation objects are transmitted to the target simulation processing engine corresponding to each simulation object in sequence.
10. The method according to claim 8, characterized in that, The method further includes: Based on the target simulation state data, the simulation task is detected to obtain the task state of the simulation task. When the task status is task execution status, the simulation object is predicted for simulation step based on the target simulation status data to obtain the second simulation step data of the simulation object, and the second simulation step data is transmitted to the target simulation processing engine. Using the target simulation processing engine, the second simulation step data is used to simulate the posture of the simulation object in the simulation virtual scene until the task status of the simulation task is completed, and the simulation result corresponding to the simulation task is obtained.
11. The method according to claim 1, characterized in that, The step of acquiring the initial simulation state data obtained by the target simulation processing engine executing the simulation task in the graphics processor includes: During the execution of the simulation task by the target simulation processing engine, if an engine switching request is received, the intermediate simulation state data generated by the target simulation processing engine for the simulation task is obtained, and the intermediate simulation state data is stored in the graphics processor. Obtain the updated simulation processing engine indicated by the engine switching request, and obtain the intermediate simulation state data from the graphics processor through the updated simulation processing engine; the N simulation processing engines include the updated processing engine; The updated simulation processing engine in the graphics processor continues to execute the simulation task based on the intermediate simulation state data to obtain initial simulation state data, and stores the initial simulation state data in the graphics processor.
12. The method according to claim 1, characterized in that, The method further includes: Obtain the simulation call parameters associated with the N simulation processing engines respectively; Data commonality parsing is performed on N simulation call parameters to obtain common parameter information. The common parameter information is then transformed and encapsulated to obtain the initial engine management model. Based on the common parameter information, the N simulation call parameters are respectively structured and transformed to obtain the engine call parameters corresponding to the N simulation processing engines; the structure of the engine call parameters corresponding to the N simulation processing engines is the standard engine data structure indicated by the common parameter information. The engine call parameters corresponding to the N simulation processing engines are written into the initial engine management model to obtain the engine management model; The step of acquiring the initial simulation state data obtained by the target simulation processing engine executing the simulation task in the graphics processor includes: The target simulation processing engine is invoked using the target engine invocation parameters in the engine management model. The simulation task is then executed in the graphics processor by the target simulation processing engine to obtain initial simulation state data. The target engine invocation parameters are the engine invocation parameters corresponding to the target simulation processing engine.
13. A data processing apparatus, characterized in that, include: The information acquisition module is used to acquire the simulation task for the simulation object and the task requirement information corresponding to the simulation task, and to acquire the engine description information corresponding to N simulation processing engines respectively; the engine description information is obtained by the corresponding simulation processing engine by converting the initial description information in the simulation processing engine according to the description information data format. N is a positive integer; The engine matching module is used to match the task requirement information with the engine description information corresponding to the N simulation processing engines respectively, so as to obtain the target simulation processing engine that matches the simulation task among the N simulation processing engines. The simulation processing module is used to acquire the initial simulation state data obtained by the target simulation processing engine executing the simulation task in the graphics processor, and to perform a unified format conversion on the initial simulation state data through the graphics processor to obtain the target simulation state data. The image rendering module is used to render the target simulation state data through the graphics processor to obtain the object posture image of the simulation object.
14. A computer device, characterized in that, It includes a memory and a processor, the memory storing a computer program, and the processor executing the computer program to implement the method of any one of claims 1 to 12.
15. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program adapted to be loaded and executed by a processor to cause a computer device having the processor to perform the method of any one of claims 1 to 12.
16. A computer program product, characterized in that, Includes a computer program that, when executed by a processor, implements the method of any one of claims 1 to 12.
Citation Information
Patent Citations
Auxiliary generation software for digital Botiger design
CN122333565A
Simulation method based on epoch
KR101918051B1