Object processing method
The object processing method maintains scene object morphology post-collision by using GPU-based collision recording and CPU-side effects, addressing the issue of rapid transformation and improving realism and immersion in virtual environments.
Patent Information
- Application Number
- CN202411351746.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-26
- Publication Date
- 2024-12-27
AI Technical Summary
Existing virtual scene technologies fail to maintain the shape of scene objects post-collision, leading to reduced realism and immersive experience due to rapid transformation of object morphology.
An object processing method that determines object movement data, adjusts morphology parameters upon collision, and maintains the scene object's state using GPU-based collision recording and simulation, combined with CPU-side effects.
Preserves the morphology of scene objects post-collision, enhancing realism and providing a more immersive experience by accurately simulating object destruction and deformation.
Smart Images

Figure CN119185934A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of this specification relate to the field of computer technology, and more particularly to an object processing method. One or more embodiments of this specification also relate to a computing device, a computer-readable storage medium, and a computer program product. Background Art
[0002] With the continuous development of computer technology, many institutions or companies can build virtual scenes for users, so that users can control specific objects in the virtual scenes to perform various operations. For example, game scenes are built for users, so that users can control game characters in the game scenes to perform various game operations, or virtual reality (VR) scenes are built for users.
[0003] When the user is currently controlling a specific object to move in the virtual scene, a collision may occur with a scene object in the virtual scene, resulting in the scene object being broken, displaced, or undergoing other shape adjustments; however, the shape resulting from the collision cannot be preserved for a long time, and the shape of the scene object can easily be transformed into the shape before the collision, which greatly reduces the realism of the virtual scene and fails to provide the user with an immersive experience. Summary of the invention
[0004] In view of this, an embodiment of this specification provides an object processing method. One or more embodiments of this specification also relate to an object processing device, a computing device, a computer-readable storage medium and a computer program product to solve the technical defects existing in the prior art.
[0005] According to a first aspect of an embodiment of this specification, there is provided an object processing method, including:
[0006] Determining object movement data of a target object, wherein the object movement data is data generated when the target object moves in a virtual scene;
[0007] In a case where it is determined based on the object movement data that the target object collides with a scene object in the virtual scene, determining a morphology adjustment parameter corresponding to the scene object;
[0008] Using the morphology adjustment parameters to adjust the morphology of the scene object, and determining object state information corresponding to the scene object;
[0009] Based on the object state information, the state of the scene object in the virtual scene is maintained.
[0010] According to a second aspect of an embodiment of this specification, there is provided an object processing device, including:
[0011] A data determination module is configured to determine object movement data of a target object, wherein the object movement data is data generated when the target object moves in a virtual scene;
[0012] a parameter determination module configured to determine a morphology adjustment parameter corresponding to the scene object when it is determined that the target object collides with a scene object in the virtual scene based on the object movement data;
[0013] a morphology adjustment module, configured to perform morphology adjustment on the scene object using the morphology adjustment parameters, and determine object state information corresponding to the scene object;
[0014] The form preservation module is configured to preserve the form of the scene object in the virtual scene based on the object state information.
[0015] According to a third aspect of an embodiment of this specification, a computing device is provided, including:
[0016] Memory and processor;
[0017] The memory is used to store computer programs / instructions, and the processor is used to execute the computer programs / instructions. When the computer programs / instructions are executed by the processor, the steps of the above method are implemented.
[0018] According to a fourth aspect of the embodiments of this specification, a computer-readable storage medium is provided, which stores a computer program / instruction, and the steps of the above method are implemented when the computer program / instruction is executed by a processor.
[0019] According to a fifth aspect of the embodiments of this specification, a computer program product is provided, comprising a computer program / instruction, which implements the steps of the above method when executed by a processor.
[0020] The object processing method provided by one or more embodiments of the present specification can, when it is determined based on object movement data that a target object collides with a scene object in a virtual scene, use a morphology adjustment parameter for the scene object to adjust the morphology of the scene object; and after the morphology adjustment, the object state information corresponding to the scene object can be recorded, and subsequently, based on the object state information, the morphology of the scene object can be maintained in the virtual scene as the morphology adjusted after the collision, thereby avoiding the problem that the morphology caused by the collision cannot be preserved for a long time and the morphology of the scene object can easily be transformed into the morphology before the collision, thereby improving the realism of the virtual scene and providing users with a better immersive experience. BRIEF DESCRIPTION OF THE DRAWINGS
[0021] Figure 1It is an application schematic diagram of an object processing method provided by an embodiment of this specification;
[0022] Figure 2 is a flow chart of an object processing method provided by an embodiment of this specification;
[0023] Figure 3 is a schematic diagram of a scene object in an object processing method provided by an embodiment of this specification;
[0024] Figure 4 is a schematic diagram of an RT map in an object processing method provided by an embodiment of this specification;
[0025] Figure 5 It is a schematic diagram of tree resource processing in an object processing method provided by an embodiment of this specification;
[0026] Figure 6 It is a schematic diagram of a Blender baking VAT map process in an object processing method provided in one embodiment of this specification;
[0027] Figure 7 It is a schematic diagram of information included in a VAT map in an object processing method provided by an embodiment of this specification;
[0028] Figure 8 is a schematic diagram of random interaction directions of tree destruction in an object processing method provided by an embodiment of the present specification;
[0029] Fig. 9 It is a schematic diagram of a vegetation type destruction status recording method in an object processing method provided in one embodiment of this specification;
[0030] Fig.10 It is a schematic diagram of a method for recording the destruction status of an object type in an object processing method provided by an embodiment of the present specification;
[0031] Fig.11 is a processing flow chart of an object processing method provided by an embodiment of this specification;
[0032] Fig.12 It is a structural block diagram of a computing device provided by an embodiment of this specification. DETAILED DESCRIPTION
[0033] Many specific details are described in the following description to facilitate a full understanding of this specification. However, this specification can be implemented in many other ways than those described herein, and those skilled in the art can make similar generalizations without violating the connotation of this specification, so this specification is not limited to the specific implementation disclosed below.
[0034] The terms used in one or more embodiments of this specification are only for the purpose of describing specific embodiments, and are not intended to limit one or more embodiments of this specification. The singular forms of "a", "said" and "the" used in one or more embodiments of this specification and the appended claims are also intended to include plural forms, unless the context clearly indicates other meanings. It should also be understood that the term "and / or" used in one or more embodiments of this specification refers to and includes any or all possible combinations of one or more associated listed items.
[0035] It should be understood that although the terms first, second, etc. may be used to describe various information in one or more embodiments of this specification, this information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other. For example, without departing from the scope of one or more embodiments of this specification, the first may also be referred to as the second, and similarly, the second may also be referred to as the first. Depending on the context, the word "if" as used herein may be interpreted as "at the time of" or "when" or "in response to determining".
[0036] In addition, it should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in one or more embodiments of this specification are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of the relevant countries and regions, and provide corresponding operation entrances for users to choose to authorize or refuse.
[0037] First, the terms involved in one or more embodiments of this specification are explained.
[0038] SpeedTree: is a 3D tree modeling software.
[0039] RT (Render Texture): refers to rendering texture map.
[0040] Vertex Animation Texture: Vertex animation texture.
[0041] Blender: is a 3D graphics software.
[0042] With the continuous development of computer technology, many institutions or companies can build virtual scenes for users, so that users can control specific objects in the virtual scenes to perform various operations. For example, game scenes are built for users, so that users can control game characters in the game scenes to perform various game operations.
[0043] In most realistic games, many objects are placed on the game terrain, such as trees, billboards, cars, boxes, cement blocks, paint buckets, and other debris. In the game, players are supported to interact with objects in the terrain environment, which can deepen the player's sense of immersion and experience the fun of the game world. Interactive operations include but are not limited to destruction interactions, such as tree destruction interactions, grass destruction interactions, and scene object destruction interactions.
[0044] Among them, for tree destruction interaction:
[0045] In a tree destruction interaction scheme provided in this specification, players or weapons are supported to interact with trees in the scene. These interactions use CPU-based collision detection and physics engines to simulate the process of tree destruction and collapse. For example, players can chop down trees with weapons such as axes and swords. Trees in the scene not only support players to interact directly with tools, but also support players to attack with shells.
[0046] However, the disadvantages of this interaction scheme are: it is not suitable for multiplayer games and large-scale bullet interactions. In multiplayer games, the number of bullets in the same area is often very large, and the calculation of physical collision detection has a large performance overhead. At the same time, there is a certain limit on the number of trees placed on the screen.
[0047] Among them, for grass destruction interaction:
[0048] In a grass destruction interaction solution provided in this manual, when the player runs in the grass, he can push the grass to move. When the player moves away, the grass will bounce back to its original position in a natural way. These games use a Render Texture (hereinafter referred to as RT) to draw the player's trajectory, and this trajectory record will fade with the distance of the player. As the distance from the player increases, the displacement value of the grass will decrease.
[0049] However, the disadvantage of this interactive solution is that the destruction state cannot be maintained. The resolution of the Render Texture is limited and does not cover the entire scene. Therefore, after the player moves for a period of time, the movement of the grass will bounce back, making the destruction state unable to be maintained.
[0050] Among them, the destruction interaction for scene objects:
[0051] In a scene object destruction interactive solution provided in this manual, players can destroy objects such as tables and chairs placed in the scene. After the table is hit, there will be exaggerated particle effects to show the destruction effect, and the table collapses into the appearance of a broken object. This operation needs to be implemented using the CPU-side physical collision detection and model switching method. When a collision is detected, the complete model is switched to the broken model, and exaggerated particle effects are played to cover the switching process.
[0052] However, the disadvantage of this interactive solution is that in order to show the real effect, the particle special effects also need to enable collision, and a large number of particles need to rely on the physics engine, which has certain restrictions on the number. The interactive objects on the screen are inversely proportional to the performance. When there are too many objects, the pressure on the CPU side collision detection increases, and there may also be problems such as collision delay.
[0053] Based on this, in this specification, an object processing method is provided. One or more embodiments of this specification also involve an object processing device, a computing device, a computer-readable storage medium and a computer program product, which are described in detail one by one in the following embodiments.
[0054] See also Figure 1 , Figure 1 A schematic diagram of an application of an object processing method provided according to an embodiment of the present specification is shown. Figure 1 It can be seen that when the user is playing the game on the client, the client's GPU will use the global RT to record the response of the collision event in the interactive area, and sample the RT through the shader. After determining the collision event by judging the sampling value, the GPU is used to perform destruction simulation output, where the destruction simulation according to the type includes vegetation destruction simulation (axial rotation),
[0055] Small object destruction simulation (axial rotation and displacement), large object destruction simulation (VAT baking animation); at the same time, the GPU and CPU sides will buffer the destruction status, the GPU side will maintain the destruction debris according to the destruction status, and the CPU side will play the sound effects and special effects of the destruction animation.
[0056] See also Figure 2 , Figure 2 A flowchart of an object processing method provided according to an embodiment of the present specification is shown, which specifically includes the following steps.
[0057] Step 202: Determine object movement data of a target object, wherein the object movement data is data generated when the target object moves in a virtual scene.
[0058] Among them, the target object can be understood as an object moving in a virtual scene; the target object can be a game object controlled by a game player (such as a game character, a mecha, a car, an airplane, etc.), the target object can be a virtual character moving in a virtual scene (such as an NPC, a mecha model), or the target object can be a model moving in a virtual scene under the control of a game player (for example, a shell, a bullet, an arrow, etc.); in one or more embodiments of the present specification, the target object can be a mecha model.
[0059] A virtual scene can be understood as a virtualized scene created using computer technology. For example, the virtual scene can be a game scene, a game world, a game terrain, a game map, a virtual reality (VR) scene, etc.
[0060] The object movement data may be understood as data recording the movement trajectory of the target object in the virtual scene. For example, the object movement data may be an object movement map, or the object movement data may be movement coordinate data of the target object.
[0061] In one or more embodiments provided in this specification, before determining whether a target object collides with a scene object, it is necessary to record the object movement data of the target object in the virtual scene, and the specific implementation method is as follows.
[0062] Before determining the object movement data of the target object, the method further includes:
[0063] Determining the moving track coordinates of the target object in the virtual scene; and determining the scene coordinates of the virtual scene;
[0064] Determine the scene coordinates that are consistent with the moving track coordinates in the scene coordinates as collision coordinates, and determine the scene coordinates that are inconsistent with the moving track coordinates in the scene coordinates as non-collision coordinates;
[0065] Based on the collision coordinates and the non-collision coordinates, object movement data of the target object is determined.
[0066] The moving track coordinates may be understood as coordinate information corresponding to the moving track during the movement of the target object in the virtual scene. The moving track coordinates may be two-dimensional coordinates or three-dimensional coordinates.
[0067] The scene coordinates may be understood as coordinate information of a virtual scene, and the scene coordinates may be two-dimensional coordinates or three-dimensional coordinates.
[0068] The collision coordinates can be understood as coordinate information used to identify that a target object collides with a scene object at a current position, and the non-collision coordinates can be understood as coordinate information used to identify that a target object collides with a scene object at a current position; the collision coordinates and non-collision coordinates can be two-dimensional coordinates or three-dimensional coordinates.
[0069] Specifically, when the target object moves in the virtual scene, the moving track coordinates of the target object in the virtual scene can be recorded, and the scene coordinates of the virtual scene can be determined;
[0070] The real-time detection detects the moving track coordinates and the scene coordinates, and determines the scene coordinates that are consistent with the moving track coordinates as the collision coordinates, and the collision coordinates are used to identify that the target object and the scene object have collided in the current coordinates;
[0071] The scene coordinates that are inconsistent with the moving track coordinates are determined as non-collision coordinates, and the non-collision coordinates are used to indicate that the target object and the scene object do not collide in the current coordinates;
[0072] The recorded collision coordinates and non-collision coordinates are used as object movement data of the target object.
[0073] In the above embodiment, the collision coordinates and non-collision coordinates between the target object and the scene object are recorded to obtain the object movement data of the target object, so that it is convenient to timely determine whether a collision has occurred between the target object and the scene object, so as to timely adjust the morphology of the scene object.
[0074] In one or more embodiments provided in this specification, the object movement of the target object can be recorded by mapping, so as to facilitate the subsequent determination of a collision between the target object and the scene object. The specific implementation method is as follows.
[0075] The object movement data is an object movement map;
[0076] The determining the object movement data of the target object based on the collision coordinates and the non-collision coordinates includes:
[0077] Determine a collision value for generating the object movement map based on the collision coordinates, and determine a non-collision value for generating the object movement map based on the non-collision coordinates;
[0078] Based on the collision value, obtaining a collision direction parameter and a collision time parameter between the target object and the scene object;
[0079] Using the collision direction parameter as a first texture channel parameter, and using the collision time parameter as a second texture channel parameter;
[0080] An object movement map is generated based on the collision value, the non-collision value, the first map channel parameter, and the second map channel parameter.
[0081] The object movement map can be understood as a map that records the movement of the target object in the virtual scene. The object movement map can be a global RT map or a trailing map.
[0082] The collision value can be understood as the value for constructing the moving map of the object. The collision value can be 0, 1, or any value designed according to actual needs (such as 2, 50, etc.), without any restriction; the non-collision value can be understood as the value for constructing the moving map of the object. The non-collision value can be 0, 1, or any value designed according to actual needs (such as 2, 50, etc.), without any restriction; it should be noted that the collision value is different from the non-collision data.
[0083] Taking the application of the object processing method provided in this specification in the scene destruction task based on the vegetation data system as an example, the object processing method is explained. The target object can be a mecha or a shell, the scene object is a tree or object in the game scene, and the object movement map is an RT map.
[0084] Based on this, this method can record collision events in the interactive area through RT maps. The specific implementation method is as follows:
[0085] Design an interactive box that moves with the player, limiting the interaction to all objects within 200 meters of the main player.
[0086] The resolution of the RT (RT texture) is designed to be 1024*1024; the RT map (RT texture) consists of two channels. The R channel is used to record the direction information of the player and the weapon in the world (i.e. the collision direction parameter); the G channel is used to record the time of the collision (i.e. the collision time parameter), which is used to control the playback of the destruction animation.
[0087] The information recorded on the RT channel mainly includes the following two types:
[0088] The velocity (direction vector) generated during a collision is converted into an angle with the fixed world direction (i.e., the collision direction parameter) and stored in the R channel of the RT graph.
[0089] The time taken for the collision (i.e., the collision time parameter) is stored in the G channel of the RT graph, where the Time graph controls the playback of the destruction animation.
[0090] A global RT is used to record the responses to all collision events in the world, including terrain collision events caused by the main player walking by (player trails), terrain collision events caused by other players walking by (other players' trails), and large-scale collision events caused by weapons such as shells colliding with the terrain (shell impact range traces).
[0091] Furthermore, the method controls the recording of different types of collision events according to the enumeration information.
[0092] For the main player and other players: the trajectory walked by the player is marked as 1, and the place not walked is marked as 0, and a moving Trail graph is obtained.
[0093] The player's Velocity is recorded in each frame, and the calculated Velocity information is superimposed on the R channel of the Trial graph. At the same time, the trail graph is judged in each frame. Once the trajectory information is > 0, a certain value is added to the G channel of RT to obtain the time of the collision. A Time graph that controls the playback of animations can drive the playback of interactive animations such as trees and objects that are destroyed.
[0094] Shells: The range trace map of shells controls the destructive interaction when weapons attack. The range trace of the shells colliding with the terrain is marked as 1, and the place where there is no shell collision is marked as 0, and a Trial map of the shell's impact range is obtained. According to the Velocity of the incoming shells, the calculated Velocity information is superimposed on the R channel of the Trial map. At the same time, the trail map is judged every frame. Once the trajectory information is > 0, a certain value is added to the G channel of RT, and a Time map that controls the animation playback is obtained.
[0095] It should be noted that RT maps can be referenced Figure 4 , Figure 4 is a schematic diagram of an RT map in an object processing method provided by an embodiment of this specification, wherein, Figure 4 As shown, the white circular trajectory represents the range trajectory of the shell, which controls the shell destruction interaction, and the remaining white route trajectories are the player's movement trajectories.
[0096] In one or more embodiments provided in this specification, before the target object collides with the scene object, the scene object needs to be produced according to actual needs, and the specific implementation method is as follows.
[0097] Before determining the object movement data of the target object, the method further includes:
[0098] Based on the object creation parameters for the scene object, construct a plurality of scene sub-objects corresponding to the scene object based on the object creation parameters;
[0099] A sub-object fusion strategy is determined according to the object type of the scene object, and based on the sub-object fusion strategy, each scene sub-object is fused to obtain the scene object.
[0100] The scene object can be understood as a model created in a virtual scene, and the scene object can interact with the target object; for example, the scene object can be a moving virtual character (such as an NPC) in a virtual scene, and the scene object can be an object resource in a virtual scene); in one or more embodiments provided in this specification, the resources in the game scene are mainly divided into three types: vegetation (trees, shrubs, etc.), small objects (telephone poles, street lights, wires, etc.), and large objects (containers, cars, etc.). These three types cover almost all types of objects placed on the terrain of the scene. Figure 3 As shown, Figure 3 It is a schematic diagram of a scene object in an object processing method provided by an embodiment of this specification.
[0101] In one or more embodiments provided in this specification, the method supports extended tools for interactive processing of scene objects (models), which is convenient in function and reduces the operating cost of artists, and can be used in conjunction with other engines.
[0102] The object creation parameters may be understood as attribute parameters for creating the scene object, such as object height, object quantity, object size, and the like.
[0103] A scene sub-object can be understood as a plurality of sub-objects that construct a scene object. For example, when the scene object is a tree, the scene sub-object can be a sub-object such as leaves and branches of the tree, and the scene object of the tree can be formed by the sub-objects such as leaves and branches.
[0104] The sub-object fusion strategy can be understood as a strategy for fusing multiple scene sub-objects to obtain a scene object; for example, the sub-object fusion strategy can be a splicing strategy, a copy strategy, etc.
[0105] Continuing with the above example, for different types of resources such as vegetation, small objects, and large objects, different interactive processing extension tools are supported to reduce the operating costs of artists.
[0106] Among them, resource processing for vegetation:
[0107] The artist creates the model Mesh in SpeedTree, then stores the IDs of multiple sub-objects in the model UV, and exports two data type maps (such as Figure 5 As shown, Figure 5 1 is a schematic diagram of tree resource processing in an object processing method provided by an embodiment of the present specification.) This facilitates interactive animation simulation processing using a single pivot point and direction vector for each element in the vertex shader.
[0108] Among them, resource processing for small objects:
[0109] Most small object assets do not require extra conversion, but there are special treatments for resources such as wires and poles. In the big world, there are usually very complex power systems. The pole system is generated by procedural splicing, which can accurately control the spacing, number, deflection of the poles, random sway of the wires, etc.
[0110] Among them, resource processing for large objects:
[0111] Vertex Animation Texture (VAT) is mainly used in the game to simulate rigid body motion. Since the interactive objects in the scene are composed of fragments from the beginning (such as wooden boxes, sundries, etc.), these are input into Blender as models. After simulating the destruction animation in Blender, the mesh data and VAT texture are exported to the game engine (such as Figure 6 As shown, Figure 6 1 is a schematic diagram of a Blender baking VAT map process in an object processing method provided in an embodiment of this specification. Then, the physical motion is calculated by reading this VAT map in the vertex shader.
[0112] It should be noted that the storage method of baked VAT textures is to store IDs by fragmented blocks, so the final animation capacity is: number of blocks * animation length * 2 (position + rotation). Bake both position and rotation information into the same texture (such as Figure 7 As shown, Figure 7 is a schematic diagram of information contained in a VAT map in an object processing method provided by an embodiment of this specification. The main information includes: Pos position, Rot rotation, Origin initial position and rotation, Total Frame total number of frames, fps frame rate, geoCount number of blocks, sample_step sampling frequency.
[0113] All of the above resources are managed through the same interactive system. Different destruction interaction simulations are performed according to type classification, and all interaction information can be uniformly recorded and obtained.
[0114] Step 204: When it is determined based on the object movement data that the target object collides with a scene object in the virtual scene, a morphology adjustment parameter corresponding to the scene object is determined.
[0115] The morphology adjustment parameter may be understood as a parameter for adjusting the morphology of the scene object. For example, the morphology adjustment parameter may be a rotation angle, a position of the object after collision, and the like.
[0116] In one or more embodiments provided in this specification, determining the object movement data of the target object includes:
[0117] Determining current position information of the target object in the virtual scene, and determining current object movement data from the object movement data based on the current position information;
[0118] The step of determining, based on the object movement data, that the target object collides with a scene object in the virtual scene comprises:
[0119] When it is determined that the current object movement data includes a collision value, it is determined that the target object collides with a scene object in the virtual scene.
[0120] The current position information may be understood as the coordinate information of the target object in the virtual scene.
[0121] Continuing with the above example, in the process of implementing destruction interaction, a global RT will be used to record all collision events in the interaction area. Afterwards, the GPU's vertex shader and ComputeShader will be used to sample this global RT according to the world coordinates. If the sampled value is 0, it means there is no collision, and the above operation will be repeated; if the sampled value is greater than 0, it means that a collision is "detected", so that the destruction animation simulation according to different types can be quickly started in the vertex shader.
[0122] Among them, in the process of sampling RT (i.e. coordinate conversion), since the corresponding projection matrix and the transformation between the world space are defined in the interactive space of RT, the distance moved by the player in each frame is used to determine how many pixels should be moved in the projection space when converted to the distance advanced in the world space. And this global RT map is sampled by updating the forward value of UV each frame. When sampling each object, its axis point position needs to be converted from the world coordinate to the interactive space for sampling. For example, for tree-type objects, the sampling axis point position is directly below. For objects such as telephone poles and wires that are destroyed simultaneously, two axis points need to be sampled, namely the left axis point and the right axis point.
[0123] In one or more embodiments provided in this specification, when it is determined that a collision occurs, a simulation of a destruction animation is started in a vertex shader according to different types, and the specific implementation method is as follows.
[0124] The determining of the morphology adjustment parameter corresponding to the scene object includes:
[0125] Determining the object type of the scene object, and determining the object parameters to be adjusted from the object attribute parameters of the scene object;
[0126] Determining a target parameter calculation strategy from a plurality of parameter calculation strategies according to the object type;
[0127] Based on the target parameter calculation strategy and the parameters of the object to be adjusted, the morphological adjustment parameters corresponding to the scene object are calculated and obtained.
[0128] Among them, the object type can be immediately the type of scene object. In one or more embodiments provided in this specification, three object types are provided, namely plant objects (such as vegetation), small objects (such as small objects such as wooden boxes and tables), and large objects (such as large objects such as houses and buildings).
[0129] The object parameter to be adjusted may be understood as a parameter in the object parameters of the scene object that needs to be adjusted. For example, the object parameter to be adjusted may be an object position coordinate, an object angle, and the like.
[0130] The parameter calculation strategy can be understood as a strategy for calculating morphological adjustment parameters. In one or more embodiments provided in this specification, different types of scene objects may correspond to different types of parameter calculation strategies, including but not limited to plant object parameter calculation strategies (such as axial rotation animation strategies), small object parameter calculation strategies (such as axial rotation + displacement animation strategies), large object parameter calculation strategies (such as VAT displacement animation strategies), etc.
[0131] Using the above example, if the value of the sampled global RT is greater than 0, it means there is a collision and vertex animation needs to be used to simulate the destruction movement. According to the classification of resource types, there are three types of destruction simulation movements: vegetation (corresponding to the strategy of using simple axial rotation animation), small objects (corresponding to the strategy of using simple axial rotation + displacement animation), and large objects (corresponding to the strategy of using VAT displacement animation).
[0132] By using the strategies corresponding to the above-mentioned various types of objects, the corresponding morphological adjustment parameters are adaptively calculated, so that the morphological adjustment of various types of objects can be performed accurately and vividly to obtain vivid scene objects.
[0133] In one or more embodiments provided in the present specification, during the simulation of vegetation destruction movement, the movement of a tree being destroyed and falling can be simulated. The object needs to be rotated a certain angle around its own pivot point, thereby vividly adjusting the morphology of the plant object. The specific implementation method is as follows.
[0134] The object parameter to be adjusted is the object position, the scene object is a plant object, and the target parameter calculation strategy is a plant object parameter calculation strategy;
[0135] The step of calculating and obtaining the morphological adjustment parameter corresponding to the scene object based on the target parameter calculation strategy and the parameter of the object to be adjusted includes:
[0136] Determining a rotation axis and a rotation angle corresponding to the plant object parameter calculation strategy, wherein the rotation axis includes a randomly generated rotation axis, and the rotation angle includes a randomly generated rotation angle;
[0137] Creating a rotation matrix based on the rotation axis, and multiplying the object position by the rotation matrix to obtain a collision position of the plant object;
[0138] The collision position and the rotation angle are used as the morphology adjustment parameters corresponding to the plant object.
[0139] Using the above example, the process of simulating the destruction and fall of a tree (i.e., a plant object) can be: rotate the object around its own pivot point by a certain angle. The animation formula for axial rotation is:
[0140] RotateAboutAxi s(f loat3 Orignal Pos it ion,f loat3 Axi s,f loatRotat ion).
[0141] The basic inputs of the above formula include the original position, the rotation axis, and the rotation angle. Among them, float3 refers to the calculation function that converts the parameters into a two-dimensional vector containing three floating-point numbers;
[0142] Among them, the principle of axial rotation (RotateAboutAxis) is to create a rotation matrix according to the rotation axis. The position of destruction (i.e. collision position) can be calculated by multiplying its own position with the rotation matrix.
[0143] In order to make all trees in the big world have different movement speeds and movement axes, this method adds some random movement information based on this basic formula. It is necessary to convert the two input variables Axis (rotation axis) and Rotation (rotation angle) into random variables. The random value can be obtained based on the Noise information sampled from the coordinates in the world. The obtained random value affects the movement Rotation to control the speed of tree collapse.
[0144] The sampling range of Noi se information can be: float Sampling range: remap (0,1) to (-1, 1);
[0145] In the process of generating random rotation angles, a control parameter can be used to control the angle range of random rotation. The control parameter is: RandomTreeAngleInfluence(30°);
[0146] The angle offset of the random rotation angle can be: angleOffset = SampleOrigin*
[0147] RandomTreeAngleI nf l uence;
[0148] It should be noted that the rotation direction can be (x, 0, z), thereby ignoring the influence of the Y axis.
[0149] Random rotation angle (Axis) = rotateAboutY_Degree (InteractVector, angleOffset).
[0150] like Figure 8 As shown, Figure 8 It is a schematic diagram of the random interaction direction of tree destruction in an object processing method provided by an embodiment of the present specification. The random interaction direction of tree destruction represents the basic rotation direction and the rotation direction after randomization, thereby vividly simulating the shape of the plant after being destroyed.
[0151] In one or more embodiments provided in this specification, the destruction motion simulation for small objects is as follows.
[0152] The object parameter to be adjusted is the sub-object position of the collision sub-object in the scene object, the scene object is a small object, and the target parameter calculation strategy is a small object parameter calculation strategy;
[0153] The step of calculating and obtaining the morphological adjustment parameter corresponding to the scene object based on the target parameter calculation strategy and the parameter of the object to be adjusted includes:
[0154] Determining a rotation axis and a rotation angle corresponding to the small object parameter calculation strategy, wherein the rotation axis includes a randomly generated rotation axis, and the rotation angle includes a randomly generated rotation angle;
[0155] Creating a rotation matrix based on the rotation axis, and multiplying the sub-object position of the collision sub-object by the rotation matrix to obtain a collision position of the collision sub-object;
[0156] Determine an associated sub-object in the small object that is associated with the collision sub-object, a sub-object pivot point and a sub-object length of the associated sub-object, and determine a sub-object height of the collision sub-object;
[0157] Based on the sub-object position, the sub-object axis point, the sub-object length, and the sub-object height, calculate and obtain the collision position and collision direction of the associated sub-object;
[0158] The collision position of the collision sub-object, the rotation angle of the collision sub-object, the collision position of the associated sub-object, and the collision direction of the associated sub-object are used as the shape adjustment parameters corresponding to the small object.
[0159] The collision sub-object is a sub-object in the small object that collides with the target object, and the associated sub-object can be understood as a sub-object in the small object that is associated with the collision sub-object; the collision sub-object and the associated sub-object are both part of the small object.
[0160] Continuing with the above example, taking a model of electric wires and electric poles (i.e. small objects) as an example, for the electric pole (collision sub-object), the same axial rotation animation as the tree (i.e.) can simulate the effect after being destroyed; that is to say, the above-mentioned plant object parameter calculation strategy is used to calculate the collision position and rotation angle of the electric pole.
[0161] After the electric pole falls to the ground, the electric wire (that is, the associated child object) also needs to trigger the falling effect; the simulation of the destruction effect of the electric wire is mainly based on the displacement animation calculated according to the position of its own axis point.
[0162] First, several different position information are solved based on the known recorded parameters.
[0163] Known parameters: pivot1 (pivot point of the wire), width (wire length), height (pole height); among them, the pivot point of the wire is the sub-object pivot point, the wire length can be the sub-object length, and the pole height can be the sub-object height of the collision sub-object.
[0164] The process of parameter solution is:
[0165] For Pivot2 (the point where the right end of the wire meets the pole), it can be calculated using the following formula:
[0166] f loat3(0,0,0)+f loat3(0,height,width*0.5f);
[0167] Among them, float3 refers to a calculation function that converts a parameter into a two-dimensional vector containing three floating-point numbers.
[0168] For Pivot3 (the point where the left end of the wire meets the pole), the following formula can be used to calculate:
[0169] f loat3(0,0,0)-f loat3(0,height,width*0.5f).
[0170] Secondly, calculate the falling motion distance Mask, which can be calculated using the following formula:
[0171] f loat Di stanceToPivot=di stance(ObjectPos it ion,Pivot2 / Pivot3) / width;
[0172] Among them, ObjectPos it ion refers to the position of the telephone pole, and distance() refers to the calculation function for calculating the distance Mask.
[0173] Finally, the falling position (i.e., the collision position of the associated sub-object) in the Y direction (i.e., the collision direction of the associated sub-object) is calculated based on the obtained distance Mask, which can be calculated using the following formula:
[0174] OutPos it ion.y=ObjectPos it ion.y+(Di stanceToPivot)*YOffset(height);
[0175] In the above embodiment, for small objects, the collision position of the collision sub-object in the small object and the rotation angle of the collision sub-object are calculated, as well as the collision position of the associated sub-object in the small object and the collision direction of the associated sub-object are calculated, and these are used as morphology adjustment parameters to adjust the morphology of the small object, thereby vividly simulating the morphology of the small object after being destroyed.
[0176] In one or more embodiments provided in this specification, for the destruction motion simulation of large objects, a physical motion simulation calculation method can be used: the calculation is mainly divided into three steps (rotation calculation + pivot point position + displacement calculation), and the specific implementation method is as follows.
[0177] The object parameters to be adjusted are mapping parameters of the scene object, the scene object is a large object, and the target parameter calculation strategy is a large object parameter calculation strategy;
[0178] The step of calculating and obtaining the morphological adjustment parameter corresponding to the scene object based on the target parameter calculation strategy and the parameter of the object to be adjusted includes:
[0179] Determining an object position, a rotation angle, and an object pivot point of the large object from the mapping parameters;
[0180] The displacement of the object position is calculated to obtain a displacement parameter, and the displacement parameter, the rotation angle and the object axis point are used as the morphological adjustment parameter corresponding to the large object.
[0181] Using the above example, in the process of simulating the destruction motion of a large object, the physical motion simulation calculation is mainly divided into three parameters to calculate (rotation + pivot point position + displacement parameter). For details, please refer to the following formula:
[0182] outPos it ion=VAT_RotateVector(pos it ion-pivot,rot)+pivot+offset;
[0183] Step 1: Displacement calculation.
[0184] This solution takes into account that the position information and rotation angle information of the broken blocks are stored in the same texture, so it is necessary to offset the UV (ie UV coordinates) when sampling. The position information can be the object position.
[0185] The position information of the broken blocks is stored in the first half of the texture, so UV only needs to calculate the value in the range of (0-0.5); use the calculated UV to sample the VAT texture, convert the sampled position into the Unity coordinate system, and then obtain the displacement parameters. The specific steps are shown in the following formula:
[0186] Translate_uv=UV1*f loat2(0.4999,1)+f loat2(0,frame);
[0187] In the above formula, UV1 is the second set of UV coordinates of the model (UV0 represents the first set of UV coordinates of the model), float2 refers to the calculation function that converts the parameters into a two-dimensional vector containing two floating-point numbers; frame refers to a frame of the VAT map.
[0188] The sampling position information may be: VATMap.Load(int(Translate_uv,0)); wherein int(Translate_uv,0) is a type conversion function used to convert Translate_uv into an integer, and returns 0 if the conversion fails.
[0189] Step 2: Calculation of the original pivot point of the broken block.
[0190] Since the pivot point information is directly recorded in the pixels of the VAT map, it can be directly sampled. The pivot point position (i.e. the object axis point) is obtained by sampling using the following formula:
[0191] pivot=VATMap.Load(int3(index,0,0)).xyz;
[0192] VATMap.Load in the above formula means that the model pivot point information is stored in a specific position of the VAT map; Index represents the broken block index, and according to the index of each broken block, the position information of the pivot point corresponding to the current broken block can be sampled.
[0193] Step 3: Rotation calculation.
[0194] Because the rotation information is recorded in the second half of the VAT map, the entire UV needs to be offset backward by a preset distance (for example, 0.5). The following formula can be used to offset backward by 0.5 to obtain the rotation angle:
[0195] Rotate_uv:UV1*f loat2(0.4999,1)+f loat2(0.4999,frame);
[0196] For sampling, you can use: VATMap.Load(int(Rotate_uv,0));
[0197] For rotation axis conversion, you can use: BlenderToUnity;
[0198] The formula for rotation calculation can be: VAT_RotateVector(position-pivot,rot);
[0199] After completing the above calculations, add the three parts of the calculation to obtain the final destruction simulation motion effect.
[0200] In the above embodiment, for a large object, the calculated displacement parameters, collision rotation angle and object axis point are used as morphology adjustment parameters, and the morphology of the large object is adjusted using the morphology adjustment parameters, thereby vividly simulating the morphology of the large object after being destroyed.
[0201] Step 206: Use the morphology adjustment parameters to adjust the morphology of the scene object, and determine the object state information corresponding to the scene object.
[0202] In one or more embodiments provided in this specification, after the interaction is destroyed, the destroyed state may be recorded to keep the destroyed state persistent; the specific implementation method is as follows.
[0203] The determining the object state information corresponding to the scene object includes:
[0204] detecting object state data of the scene object during the morphology adjustment process, and calculating updated object state information corresponding to the scene object based on the object state data when the object state data satisfies a preset state update condition;
[0205] Based on the updated object state information, the historical object state information of the scene object is updated to obtain the updated object state information.
[0206] The object state data may be understood as the state data of the scene object during the process of performing morphological adjustment on the scene object. The object state data may be the object angle or the morphological adjustment time of the scene object.
[0207] The object state information can be understood as information that characterizes the current state of the scene object, and the object state information can be numerical information or label information. For example, the interaction state designed by this method includes the following intermediate states (i.e., object state information): State = 0: indicates the original state, without any destructive interaction; State = 1: indicates the beginning of the collision, the initial state of destruction; State = 2: indicates the collision process, the intermediate state of destruction; State = 3: indicates the end of the collision, the end state of destruction. The updated object state information can be understood as the latest object state information, and the historical object state information can be understood as the historical object state information.
[0208] Using the above example, in the process of recording the destruction state, because the RT graph has a limited resolution, the trajectory will not be retained permanently during the movement in the big world; therefore, it is necessary to record the state according to the destruction simulation process. The recording method is:
[0209] All types of interactive objects are managed in the same data system (i.e., the interactive system), and support rendering all objects in the data system through Virtua lGeometry.
[0210] Use a single ComputeShader to process the interaction status (i.e. object status information) and type records of each object. Sample the same RT graph in ComputeShader, and determine the current interaction status based on the object's world coordinate position. Write the recorded interaction status to the Virtua lGeometry custom buffer and the specific interaction buffer, so that the GPU and CPU can read back to obtain the interaction status.
[0211] For example, for a vegetation type object, the state recording process may be to record the interaction state (ie, object state information) according to the rotation angle.
[0212] like Fig. 9 As shown, Fig. 9 It is a schematic diagram of a vegetation type destruction status recording method in an object processing method provided in one embodiment of this specification;
[0213] When the rotation angle is greater than 5 degrees (i.e. the object angle), it indicates that the collision has just begun, and the interaction state is recorded as 1; when the rotation angle is greater than 5 degrees and less than 85 degrees (i.e. the object angle), it indicates that the tree is about to fall during the collision process, and the interaction state is recorded as 2; when the rotation angle is greater than 85 degrees (i.e. the object angle), it indicates that the collision is over and the tree has fallen to the ground, and the interaction state is recorded as 3.
[0214] For example, for small and large object types, the interaction state (dynamic parameters increasing from 0 to 1, controlling VAT animation and axial rotation animation playback) can be recorded according to the Time graph of the RT G channel.
[0215] like Fig.10 As shown, Fig.10 It is a schematic diagram of a method for recording the destruction status of an object type in an object processing method provided by an embodiment of the present specification; when the Time value (i.e., the shape adjustment time) is greater than or equal to 0.05, it indicates that the collision has just begun, and the interaction status is recorded as 1; when the Time value is greater than 0.05 and less than 1, it indicates that the object is being destroyed during the collision process, and the interaction status is recorded as 2; when the Time value is equal to 1, it indicates that the collision is over, the object collapses on the ground, and the interaction status is recorded as 3.
[0216] Step 208: Based on the object state information, maintain the shape of the scene object in the virtual scene.
[0217] Continuing with the above example, after the destruction simulation is completed, the GPU can use the state readback method to control the destruction state; specifically, the GPU can directly read the Virtua lGeometry custom buffer in the vertex shader to obtain its own state; when the state is 3, the destruction animation position is kept unchanged; this method is used to persist the destruction debris.
[0218] Based on the above embodiments, it can be seen that the process of realizing destruction interaction can be divided into destruction motion simulation and RT triggered destruction interaction. For destruction motion simulation, in order to improve efficiency, physical engines such as RigidBody are not used to simulate real physical motion calculations. Instead, vertex animation is used in Shader to simulate physical motion calculations. Under GPU parallel computing, destruction interaction motion calculations of large-scale objects are supported.
[0219] For the RT-triggered destruction interaction, we do not use collision detection on the CPU side to trigger the destruction effect. Instead, we use RT on the GPU side to record collision events in the world, including player collisions and bullet collisions, to simulate collision interactions between GPUs. We sample RT in the Shader to play vertex animations to trigger the destruction simulation, and use Buffer to record the state of the destruction to keep the state of the destruction persistent.
[0220] This scheme allows for efficient destruction interactions, supporting multiple players and bullets to interact with objects in the scene within a limited range.
[0221] That is to say, the object processing method provided in this manual designs a destruction scheme; it can support the interaction of almost all types of objects placed on the scene terrain (supporting instance), allowing multiple players and a large number of bullets to perform destruction interactions; the wreckage after destruction can be persisted. It has the advantages of large scale, order of magnitude, high efficiency, and simulation, and is suitable for handling destruction interactions in a wide open world.
[0222] In one or more embodiments provided in this specification, in order to ensure the accuracy of the destruction simulation, the corresponding audio data may be played according to the interaction state, and the specific implementation method is as follows:
[0223] After determining the object state information corresponding to the scene object, the method further includes:
[0224] Determining, according to the object type of the scene object, a target audio data set corresponding to the scene object from a plurality of audio data sets contained in an audio data storage unit;
[0225] According to the object state information, target audio data is determined from the target audio data set, and the target audio data is played using a CPU.
[0226] The audio data storage unit may be understood as a unit for storing audio data, for example, the audio data storage unit may be a local disk, a memory, a database, etc. The audio data set may be understood as a set containing a plurality of audio data.
[0227] Using the above example, during the destruction simulation, the CPU can use the readback method to obtain the interaction status and play the sound effects. Specifically, the CPU reads back the interaction array and plays different sound effects at specific interaction times (i.e., object status information) according to different interaction types. For example, when the collision starts, the sound of falling leaves is played. When the collision ends and the tree falls to the ground, the sound of falling to the ground is played.
[0228] In one or more embodiments provided in this specification, in order to ensure the accuracy of the destruction simulation, the corresponding feature data may be played according to the interaction state, and the specific implementation method is as follows:
[0229] After determining the object state information corresponding to the scene object, the method further includes:
[0230] Determining, according to the object type of the scene object, a target special effect data set corresponding to the scene object from a plurality of characteristic data sets contained in a special effect data storage unit;
[0231] According to the object state information, target special effect data is determined from the target special effect data set, and the target special effect data is rendered using a CPU.
[0232] The special effect data storage unit may be understood as a unit for storing special effect data, for example, the special effect data storage unit may be a local disk, a memory, a database, etc. The special effect data set may be understood as a set containing a plurality of special effect data.
[0233] Continuing with the above example, during the destruction simulation, the CPU can use the readback method to obtain the interaction status and render special effects. Specifically, the CPU reads back the interaction data and plays different special effects at specific interaction times (i.e., object status information) according to different interaction types. Take the tree as an example: when the collision starts the interaction, the leaf falling particle effect is played; when the collision ends and the tree falls to the ground, the falling smoke effect is triggered.
[0234] The object processing method provided by one or more embodiments of the present specification can, when it is determined based on object movement data that a target object collides with a scene object in a virtual scene, use a morphology adjustment parameter for the scene object to adjust the morphology of the scene object; and after the morphology adjustment, the object state information corresponding to the scene object can be recorded, and subsequently, based on the object state information, the morphology of the scene object can be maintained in the virtual scene as the morphology adjusted after the collision, thereby avoiding the problem that the morphology caused by the collision cannot be preserved for a long time and the morphology of the scene object can easily be transformed into the morphology before the collision, thereby improving the realism of the virtual scene and providing users with a better immersive experience.
[0235] The following combination Fig.11 , taking the application of the object processing method provided in this specification in the scene destruction task based on terrain collision as an example, the object processing method is further explained. Fig.11 A processing flow chart of an object processing method provided by an embodiment of the present specification is shown, which specifically includes the following steps.
[0236] Step 1102: The global RT records the collision event response within the interaction area.
[0237] Specifically, this solution uses a global RT to record all collision events in the interaction area. The specific method of generating the global RT is as follows:
[0238] First, design an interactive box (i.e. interactive area) that moves with the player, which is used to limit all objects within 200 meters of the main player to be interactive. Also, design an RT with a resolution of 1024*1024;
[0239] The RT graph consists of two channels; the R channel is used to record the direction information of the player and the weapon in the world, and the G channel is used to record the time after the collision to control the playback of the destruction animation.
[0240] Secondly, according to the moving track of the player in the interactive area, a trail map is generated, in which the track walked by the player is marked as 1, and the place not walked is marked as 0, thereby a moving trail map can be obtained; the trail map can be understood as an RT map.
[0241] It should be noted that, in the process of generating the trailing graph, for each frame of the trailing graph, it is necessary to record the player's Velocity (direction vector), and superimpose the calculated Velocity information on the R channel of the trailing graph.
[0242] In addition, the tail graph is judged in each frame. Once the trajectory information is > 0, a certain value is added to the G channel of RT to obtain the time of the collision, thereby obtaining a Time graph for controlling the animation playback, which can be used to drive the playback of interactive animations such as trees and objects that are destroyed.
[0243] At the same time, when a shell or bullet collides with an object in the scene, it will also be recorded in the global RT. The specific method is as follows:
[0244] First, the trajectory of the range where the shell collides with the terrain is marked as 1, and the place where there is no shell collision is marked as 0, so as to obtain a Trial map of the shell's impact range.
[0245] Secondly, according to the Velocity of the incoming shells, the calculated Velocity information is superimposed on the R channel of the Trial graph; and the tail graph is judged every frame. Once the trajectory information is > 0, a certain value is added to the G channel of RT, and a Time graph that controls the animation playback is obtained.
[0246] Step 1104: Sample RT (world coordinates after coordinate transformation).
[0247] Specifically, in the vertex shader and ComputeShader, the global RT is sampled according to the world coordinates to obtain the value of the global RT.
[0248] It should be noted that this solution defines the corresponding transformation between the projection matrix and the world space in the RT interaction space, and determines how many pixels the distance moved in the world space should be converted into the projection space based on the distance the player moves in each frame.
[0249] In addition, this global RT map is sampled each frame by updating the forward value of UV; when sampling, each object needs to convert its axis point position from world coordinates to interactive space for sampling.
[0250] Step 1106: Determine the sampling value.
[0251] Specifically, the vertex shader and the ComputeShader determine the sampled value. If the sampled value is equal to 0, it means there is no collision, and the operation of step 1104 will be repeated.
[0252] If the sampling value is greater than 0, it means that a collision is "detected", and step 1108 is executed to start simulating the destruction animation according to different types in the vertex shader; at the same time, step 1110 is executed to use the interaction Buffer in ComputeShader to record the current interaction status of each object.
[0253] Step 1108: Destroy the analog output.
[0254] Specifically, the vertex shader can perform destruction simulation according to the type, which can include three types: vegetation destruction simulation (axial rotation), small object destruction simulation (axial rotation and displacement) and large object destruction simulation (VAT baking animation).
[0255] Among them, vegetation destruction simulation refers to: the destruction motion simulation of vegetation; the process of simulating the destruction and falling of trees is relatively simple. The destruction motion simulation can be completed by rotating the object around the rotation direction according to its own pivot point by a certain angle. The specific axial rotation animation formula is:
[0256] RotateAboutAxi s(f loat3 Or igna l Pos it ion,f loat3 Axi s,f loatRotat ion);
[0257] The basic inputs of this formula include: the original position of the tree, the rotation axis, and the rotation angle.
[0258] The principle of axial rotation is: create a rotation matrix according to the rotation axis, and multiply the own position by the rotation matrix to calculate the position of destruction.
[0259] It should be noted that in order to make all trees in the big world have different movement speeds and movement axes, this solution can add some random movement information based on this basic formula. The two input variables Axis (rotation axis) and Rotation (rotation angle) need to be converted into random variables. The random value can be obtained based on the Noise information sampled from the coordinates in the world. The obtained random value affects the movement Rotation to control the speed of tree collapse.
[0260] The sampling range of Noi se information can be: float Sampling range: remap (0,1) to (-1, 1);
[0261] In the process of generating random rotation angles, a control parameter can be used to control the angle range of random rotation. The control parameter is: RandomTreeAngleInfluence(30°);
[0262] The angle offset of the random rotation angle can be: angleOffset = SampleOrigin*
[0263] RandomTreeAngleI nf l uence;
[0264] It should be noted that the rotation direction can be (x, 0, z), thereby ignoring the influence of the Y axis.
[0265] Random rotation angle (Axis) = rotateAboutY_Degree (InteractVector, angleOffset).
[0266] Among them, small object destruction simulation refers to: small object destruction motion simulation.
[0267] For small objects, the destruction motion simulation can refer to the above-mentioned vegetation destruction simulation operation, and the object can be rotated around the rotation direction by a certain angle based on its own pivot point.
[0268] However, for a set of models (such as electric wires and electric poles), after the electric poles fall to the ground, the electric wires also need to trigger the falling effect; and the destruction effect simulation of the electric wires is mainly based on the displacement animation calculated according to the position of their own axis points; the specific method is as follows:
[0269] First, several different position information are solved based on the known recorded parameters.
[0270] Known parameters: pivot1 (the axis point of the wire), width (the length of the wire), height (the height of the pole);
[0271] The process of parameter solution is:
[0272] For Pivot2 (the point where the right end of the wire meets the pole), it can be calculated using the following formula:
[0273] f loat3(0,0,0)+f loat3(0,height,width*0.5f);
[0274] Among them, float3 refers to a calculation function that converts a parameter into a two-dimensional vector containing three floating-point numbers.
[0275] For Pivot3 (the point where the left end of the wire meets the pole), the following formula can be used to calculate:
[0276] f loat3(0,0,0)-f loat3(0,height,width*0.5f);
[0277] Secondly, calculate the falling motion distance Mask, which can be calculated using the following formula:
[0278] f loat Di stanceToPivot=di stance(ObjectPos it ion,Pivot2 / Pivot3) / width;
[0279] Among them, ObjectPos it ion refers to the position of the telephone pole, and distance() refers to the calculation function for calculating the distance Mask.
[0280] Finally, the falling position in the Y direction is calculated according to the obtained distance Mask, which can be calculated using the following formula:
[0281] OutPos it ion.y=ObjectPos it ion.y+(Di stanceToPivot)*YOffset(height);
[0282] In the above formula, YOffset refers to the movement displacement of the model vertex in the Y direction. YOffset is input as an attribute parameter, which is generally the height of the corresponding wire. DipToPivot refers to the distance Mask of the falling movement calculated by the above formula. DipToPivot is a value in the range of 0-1, which is used to affect the distance of the falling movement.
[0283] Among them, large object destruction simulation refers to: large object destruction motion simulation; the physical motion simulation calculation is mainly divided into three parameters to calculate (rotation + pivot point position + displacement), which can be specifically referred to the following formula:
[0284] outPos it ion=VAT_RotateVector(pos it ion-pivot,rot)+pivot+offset;
[0285] In the above formula, pivot refers to the pivot point position, offset refers to displacement, VAT_RotateVector refers to the function for calculating rotation, position refers to the position information of the large object, and rot refers to the rotation information recorded in the VAT map.
[0286] The specific implementation method for displacement calculation is as follows:
[0287] This solution takes into account that the Position (position information) and Rotation (rotation) information of the broken blocks are stored in the same map, so some offsets need to be made to the UV (i.e. UV coordinates) during sampling.
[0288] The position information of the broken blocks is stored in the first half of the texture, so UV only needs to calculate the value in the range of (0-0.5); use the calculated UV to sample the VAT texture and convert the sampled position into the Unity coordinate system. The specific steps are shown in the following formula:
[0289] Translate_uv=UV1*f loat2(0.4999,1)+f loat2(0,frame);
[0290] In the above formula, UV1 is the second set of UV coordinates of the model (UV0 represents the first set of UV coordinates of the model), float2 refers to the calculation function that converts the parameters into a two-dimensional vector containing two floating-point numbers; frame refers to a frame of the VAT map.
[0291] The sampling position information may be: VATMap.Load(int(Translate_uv,0)); wherein int(Translate_uv,0) is a type conversion function used to convert Translate_uv into an integer, and returns 0 if the conversion fails.
[0292] For coordinate conversion, you can use: BlenderToUnity. BlenderToUnity refers to the process or tool of importing 3D models, animations or other resources created with Blender into the Unity game engine.
[0293] Among them, the specific implementation method for calculating the original pivot point of the broken block is as follows:
[0294] Since the pivot point information is directly recorded in the pixels of the VAT map, it can be directly sampled and obtained by sampling using the following formula:
[0295] pivot=VATMap.Load(int3(index,0,0)).xyz;
[0296] VATMap.Load in the above formula means that the model pivot point information is stored in a specific position of the VAT map; Index represents the broken block index, and according to the index of each broken block, the position information of the pivot point corresponding to the current broken block can be sampled.
[0297] For coordinate conversion, you can use: BlenderToUnity.
[0298] The specific implementation method for rotation calculation is as follows:
[0299] Because the rotation information is recorded in the second half of the VAT map, the entire UV needs to be offset backwards by 0.5. This can be achieved by the following formula:
[0300] Rotate_uv:UV1*f loat2(0.4999,1)+f loat2(0.4999,frame);
[0301] For sampling, you can use: VATMap.Load(int(Rotate_uv,0));
[0302] For rotation axis conversion, you can use: BlenderToUnity;
[0303] The formula for rotation calculation can be: VAT_RotateVector(position-pivot,rot);
[0304] After completing the above calculations, add the three parts of the calculation to obtain the final destruction simulation motion effect.
[0305] Step 1110: Buffer records the destruction status.
[0306] Specifically, this solution manages all types of interactive objects in the same data system and supports rendering all objects in the data system through Virtua lGeometry.
[0307] Use a single ComputeShader to process the interaction status and type of each object. Sample the same RT graph in the Compute Shader, and determine the current interaction status based on the object's world coordinate position. Write the recorded interaction status to the Virtua lGeometry custom buffer and the specific interaction buffer to facilitate the GPU and CPU to read back and obtain the interaction status.
[0308] The destruction state is divided into several intermediate states: 0 represents the original state without collision, 1 represents the collision start state, 2 represents the collision in progress state, and 3 represents the collision end state.
[0309] Step 1112: Destroy the wreckage.
[0310] Specifically, by executing the GPU-side readback interaction buffer operation, the GPU can directly read the Virtua lGeometry custom buffer in the vertex shader to obtain its own status.
[0311] When the state is judged to be 3, the destruction animation position is kept unchanged; this method is used to permanently maintain the destruction debris.
[0312] Step 1114: Sound effects and special effects play.
[0313] Specifically, by executing the operation of reading back the interaction buffer on the CPU side, the CPU side reads back the interaction array and plays different special effects and sound effects at specific interaction times according to different interaction types;
[0314] Taking the tree as an example, when the collision starts, the falling leaf particle effect is played; when the collision ends and the tree falls to the ground, the falling smoke effect is triggered.
[0315] Based on the above steps, it can be seen that the object processing method of this specification provides a scene destruction solution based on the vegetation data system. This solution is a general destruction interaction solution, which is suitable for processing the destruction interaction of objects in a wide open world; the objects involve many types and quantities; such as trees, telephone poles, street lights, billboards, cars, wooden boxes, sundries, etc. For trees and vegetation, etc., it includes falling destruction, falling special effects (fallen leaves and smoke), burning effects (shells will cause combustion to burn the leaves of vegetation, disappear after burning, etc.), and objects can still be damaged again after burning (being hit again after burning).
[0316] For other object types, it also supports the realization of simulated physical interactions such as artillery explosions (artillery attacks knock objects to the ground, objects are scorched after burning), multiple players collide and fall to the ground, and wires fall after telephone poles are knocked down.
[0317] In addition to its strong versatility, this solution also features high efficiency and high fidelity. High efficiency means that this solution removes the traditional CPU-side collision detection and physical engine simulation calculations, and instead performs destruction animation simulation in the GPU-side vertex shader, sampling RT to detect whether the collision starts destruction. In addition, it supports multiple players in the interactive area and a large number of weapons to perform accurate collision detection and destruction interaction at the same time.
[0318] Among them, realism means: this solution records the destruction state through Buffer, realizing the persistent preservation of the destruction debris; the state of the object after any destruction interaction (falling to the ground, burning, etc.) can be retained, and the state of destruction can affect the subsequent game play.
[0319] Corresponding to the above method embodiment, this specification also provides an object processing device embodiment, the device comprising:
[0320] A data determination module is configured to determine object movement data of a target object, wherein the object movement data is data generated when the target object moves in a virtual scene;
[0321] a parameter determination module configured to determine a morphology adjustment parameter corresponding to the scene object when it is determined that the target object collides with a scene object in the virtual scene based on the object movement data;
[0322] a morphology adjustment module, configured to perform morphology adjustment on the scene object using the morphology adjustment parameters, and determine object state information corresponding to the scene object;
[0323] The form preservation module is configured to preserve the form of the scene object in the virtual scene based on the object state information.
[0324] Optionally, the object processing device further includes a data generating module configured to:
[0325] Determining the moving track coordinates of the target object in the virtual scene; and determining the scene coordinates of the virtual scene;
[0326] Determine the scene coordinates that are consistent with the moving track coordinates in the scene coordinates as collision coordinates, and determine the scene coordinates that are inconsistent with the moving track coordinates in the scene coordinates as non-collision coordinates;
[0327] Based on the collision coordinates and the non-collision coordinates, object movement data of the target object is determined.
[0328] Optionally, the object movement data is an object movement map;
[0329] The data generation module is further configured to:
[0330] Determine a collision value for generating the object movement map based on the collision coordinates, and determine a non-collision value for generating the object movement map based on the non-collision coordinates;
[0331] Based on the collision value, obtaining a collision direction parameter and a collision time parameter between the target object and the scene object;
[0332] Using the collision direction parameter as a first texture channel parameter, and using the collision time parameter as a second texture channel parameter;
[0333] An object movement map is generated based on the collision value, the non-collision value, the first map channel parameter, and the second map channel parameter.
[0334] Optionally, the data determination module is further configured to:
[0335] Determining current position information of the target object in the virtual scene, and determining current object movement data from the object movement data based on the current position information;
[0336] The parameter determination module is further configured to:
[0337] When it is determined that the current object movement data includes a collision value, it is determined that the target object collides with a scene object in the virtual scene.
[0338] Optionally, the parameter determination module is further configured to:
[0339] Determining the object type of the scene object, and determining the object parameters to be adjusted from the object attribute parameters of the scene object;
[0340] Determining a target parameter calculation strategy from a plurality of parameter calculation strategies according to the object type;
[0341] Based on the target parameter calculation strategy and the parameters of the object to be adjusted, the morphological adjustment parameters corresponding to the scene object are calculated and obtained.
[0342] Optionally, the object parameter to be adjusted is an object position, the scene object is a plant object, and the target parameter calculation strategy is a plant object parameter calculation strategy;
[0343] The parameter determination module is further configured to:
[0344] Determining a rotation axis and a rotation angle corresponding to the plant object parameter calculation strategy, wherein the rotation axis includes a randomly generated rotation axis, and the rotation angle includes a randomly generated rotation angle;
[0345] Creating a rotation matrix based on the rotation axis, and multiplying the object position by the rotation matrix to obtain a collision position of the plant object;
[0346] The collision position and the rotation angle are used as the morphology adjustment parameters corresponding to the plant object.
[0347] Optionally, the object parameter to be adjusted is a sub-object position of a collision sub-object in the scene object, the scene object is a small object, and the target parameter calculation strategy is a small object parameter calculation strategy;
[0348] The parameter determination module is further configured to:
[0349] Determining a rotation axis and a rotation angle corresponding to the small object parameter calculation strategy, wherein the rotation axis includes a randomly generated rotation axis, and the rotation angle includes a randomly generated rotation angle;
[0350] Creating a rotation matrix based on the rotation axis, and multiplying the sub-object position of the collision sub-object by the rotation matrix to obtain a collision position of the collision sub-object;
[0351] Determine an associated sub-object in the small object that is associated with the collision sub-object, a sub-object pivot point and a sub-object length of the associated sub-object, and determine a sub-object height of the collision sub-object;
[0352] Based on the sub-object position, the sub-object axis point, the sub-object length, and the sub-object height, calculate and obtain the collision position and collision direction of the associated sub-object;
[0353] The collision position of the collision sub-object, the rotation angle of the collision sub-object, the collision position of the associated sub-object, and the collision direction of the associated sub-object are used as the shape adjustment parameters corresponding to the small object.
[0354] Optionally, the object parameter to be adjusted is a mapping parameter of the scene object, the scene object is a large object, and the target parameter calculation strategy is a large object parameter calculation strategy;
[0355] The parameter determination module is further configured to:
[0356] Determining an object position, a rotation angle, and an object pivot point of the large object from the mapping parameters;
[0357] The displacement of the object position is calculated to obtain a displacement parameter, and the displacement parameter, the rotation angle and the object axis point are used as the morphological adjustment parameter corresponding to the large object.
[0358] Optionally, the object processing device further includes an audio data playing module configured to:
[0359] Determining, according to the object type of the scene object, a target audio data set corresponding to the scene object from a plurality of audio data sets contained in an audio data storage unit;
[0360] According to the object state information, target audio data is determined from the target audio data set, and the target audio data is played using a CPU.
[0361] Optionally, the object processing device further includes a special effect data rendering module, which is configured to:
[0362] Determining, according to the object type of the scene object, a target special effect data set corresponding to the scene object from a plurality of characteristic data sets contained in a special effect data storage unit;
[0363] According to the object state information, target special effect data is determined from the target special effect data set, and the target special effect data is rendered using a CPU.
[0364] Optionally, the morphology adjustment module is further configured to:
[0365] detecting object state data of the scene object during the morphology adjustment process, and calculating updated object state information corresponding to the scene object based on the object state data when the object state data satisfies a preset state update condition;
[0366] Based on the updated object state information, the historical object state information of the scene object is updated to obtain the updated object state information.
[0367] Optionally, the object processing device further includes a scene object construction module configured to:
[0368] Based on the object creation parameters for the scene object, construct a plurality of scene sub-objects corresponding to the scene object based on the object creation parameters;
[0369] A sub-object fusion strategy is determined according to the object type of the scene object, and based on the sub-object fusion strategy, each scene sub-object is fused to obtain the scene object.
[0370] The object processing device provided by one or more embodiments of the present specification can, when it is determined based on object movement data that a target object collides with a scene object in a virtual scene, use a morphology adjustment parameter for the scene object to adjust the morphology of the scene object; and after the morphology adjustment, it can record object state information corresponding to the scene object, and subsequently, based on the object state information, maintain the morphology of the scene object in the virtual scene as the morphology adjusted after the collision, thereby avoiding the problem that the morphology caused by the collision cannot be preserved for a long time and the morphology of the scene object can easily be transformed into the morphology before the collision, thereby improving the realism of the virtual scene and providing users with a better immersive experience.
[0371] The above is a schematic scheme of an object processing device of this embodiment. It should be noted that the technical scheme of the object processing device and the technical scheme of the object processing method described above are of the same concept, and the details not described in detail in the technical scheme of the object processing device can be referred to the description of the technical scheme of the object processing method described above.
[0372] Fig.12 The block diagram of a computing device 1200 according to one embodiment of the present specification is shown. The components of the computing device 1200 include but are not limited to a memory 1210 and a processor 1220. The processor 1220 is connected to the memory 1210 via a bus 1230, and the database 1250 is used to store data.
[0373] The computing device 1200 also includes an access device 1240, which enables the computing device 1200 to communicate via one or more networks 1260. Examples of these networks include a public switched telephone network (PSTN), a local area network (LAN), a wide area network (WAN), a personal area network (PAN), or a combination of communication networks such as the Internet. The access device 1240 may include one or more of any type of network interface (e.g., a network interface card (NIC)) of wired or wireless, such as an IEEE 802.12 wireless local area network (WLAN) wireless interface, a world-wide interoperability for microwave access (Wi-MAX) interface, an Ethernet interface, a universal serial bus (USB) interface, a cellular network interface, a Bluetooth interface, and a near field communication (NFC).
[0374] In one embodiment of the present specification, the above components of the computing device 1200 and Fig.12 Other components not shown in the figure may also be connected to each other, for example, via a bus. It should be understood that Fig.12 The computing device structure block diagram shown is only for the purpose of illustration, and is not intended to limit the scope of this specification. Those skilled in the art can add or replace other components as needed.
[0375] The computing device 1200 may be any type of stationary or mobile computing device, including a mobile computer or mobile computing device (e.g., a tablet computer, a personal digital assistant, a laptop computer, a notebook computer, a netbook, etc.), a mobile phone (e.g., a smart phone), a wearable computing device (e.g., a smart watch, smart glasses, etc.), or other types of mobile devices, or a stationary computing device such as a desktop computer or a personal computer (PC). The computing device 1200 may also be a mobile or stationary server.
[0376] The processor 1220 is used to execute the following computer executable instructions, which implement the steps of the above-mentioned object processing method when executed by the processor.
[0377] Each embodiment in this specification is described in a progressive manner, and the same or similar parts between the embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the computing device embodiment, since it is basically similar to the object processing method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the object processing method embodiment.
[0378] An embodiment of the present specification further provides a computer-readable storage medium storing a computer program / instruction, which implements the steps of the above-mentioned object processing method when executed by a processor.
[0379] Each embodiment in this specification is described in a progressive manner, and the same or similar parts between the embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the computer-readable storage medium embodiment, since it is basically similar to the object processing method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the object processing method embodiment.
[0380] An embodiment of the present specification also provides a computer program product, including a computer program / instruction, which implements the steps of the above-mentioned object processing method when executed by a processor.
[0381] The above is a schematic scheme of a computer program product of this embodiment. It should be noted that the technical scheme of the computer program product and the technical scheme of the object processing method described above are of the same concept, and the details not described in detail in the technical scheme of the computer program product can be referred to the description of the technical scheme of the object processing method described above.
[0382] The above is a description of a specific embodiment of the present specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recorded in the claims can be performed in an order different from that in the embodiments and still achieve the desired results. In addition, the processes depicted in the drawings do not necessarily require the specific order or continuous order shown to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.
[0383] The computer instructions include computer program codes, which may be in source code form, object code form, executable files or some intermediate forms, etc. The computer-readable medium may include: any entity or device capable of carrying the computer program code, recording medium, USB flash drive, mobile hard disk, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electric carrier signal, telecommunication signal and software distribution medium, etc. It should be noted that the content contained in the computer-readable medium may be appropriately increased or decreased according to the requirements of patent practice. For example, in some regions, according to patent practice, computer-readable media do not include electric carrier signals and telecommunication signals.
[0384] It should be noted that, for the above-mentioned method embodiments, for the sake of simplicity of description, they are all expressed as a series of action combinations, but those skilled in the art should be aware that the embodiments of this specification are not limited by the order of the actions described, because according to the embodiments of this specification, some steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily required by the embodiments of this specification.
[0385] In the above embodiments, the description of each embodiment has its own emphasis. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.
[0386] The preferred embodiments of this specification disclosed above are only used to help explain this specification. The optional embodiments do not describe all the details in detail, nor do they limit the invention to only the specific implementation methods described. Obviously, many modifications and changes can be made according to the content of the embodiments of this specification. This specification selects and specifically describes these embodiments in order to better explain the principles and practical applications of the embodiments of this specification, so that technicians in the relevant technical field can well understand and use this specification. This specification is only limited by the claims and their full scope and equivalents.
Claims
1. An object processing method, characterized in that: include: Determining object movement data of a target object, wherein the object movement data is data generated when the target object moves in a virtual scene; In a case where it is determined based on the object movement data that the target object collides with a scene object in the virtual scene, determining a morphology adjustment parameter corresponding to the scene object; Using the morphology adjustment parameters to adjust the morphology of the scene object, and determining object state information corresponding to the scene object; Based on the object state information, the state of the scene object in the virtual scene is maintained.
2. The object processing method according to claim 1, characterized in that: Before determining the object movement data of the target object, the method further includes: Determining the moving track coordinates of the target object in the virtual scene; and determining the scene coordinates of the virtual scene; Determine the scene coordinates that are consistent with the moving track coordinates in the scene coordinates as collision coordinates, and determine the scene coordinates that are inconsistent with the moving track coordinates in the scene coordinates as non-collision coordinates; Object movement data of the target object is determined based on the collision coordinates and the non-collision coordinates.
3. The object processing method according to claim 2, characterized in that: The object movement data is an object movement map; The determining the object movement data of the target object based on the collision coordinates and the non-collision coordinates includes: Determine a collision value for generating the object movement map based on the collision coordinates, and determine a non-collision value for generating the object movement map based on the non-collision coordinates; Based on the collision value, obtaining a collision direction parameter and a collision time parameter between the target object and the scene object; Using the collision direction parameter as a first texture channel parameter, and using the collision time parameter as a second texture channel parameter; An object movement map is generated based on the collision value, the non-collision value, the first map channel parameter, and the second map channel parameter.
4. The object processing method according to claim 1, characterized in that: The determining the object movement data of the target object includes: Determining current position information of the target object in the virtual scene, and determining current object movement data from the object movement data based on the current position information; The step of determining, based on the object movement data, that the target object collides with a scene object in the virtual scene comprises: When it is determined that the current object movement data includes a collision value, it is determined that the target object collides with a scene object in the virtual scene.
5. The object processing method according to claim 1, characterized in that: The determining of the morphology adjustment parameter corresponding to the scene object includes: Determining the object type of the scene object, and determining the object parameters to be adjusted from the object attribute parameters of the scene object; Determining a target parameter calculation strategy from a plurality of parameter calculation strategies according to the object type; Based on the target parameter calculation strategy and the parameters of the object to be adjusted, the morphological adjustment parameters corresponding to the scene object are calculated and obtained.
6. The object processing method according to claim 5, characterized in that: The object parameter to be adjusted is the object position, the scene object is a plant object, and the target parameter calculation strategy is a plant object parameter calculation strategy; The step of calculating and obtaining the morphological adjustment parameter corresponding to the scene object based on the target parameter calculation strategy and the parameter of the object to be adjusted includes: Determining a rotation axis and a rotation angle corresponding to the plant object parameter calculation strategy, wherein the rotation axis includes a randomly generated rotation axis, and the rotation angle includes a randomly generated rotation angle; Creating a rotation matrix based on the rotation axis, and multiplying the object position by the rotation matrix to obtain a collision position of the plant object; The collision position and the rotation angle are used as the morphology adjustment parameters corresponding to the plant object.
7. The object processing method according to claim 5, characterized in that: The object parameter to be adjusted is the sub-object position of the collision sub-object in the scene object, the scene object is a small object, and the target parameter calculation strategy is a small object parameter calculation strategy; The step of calculating and obtaining the morphological adjustment parameter corresponding to the scene object based on the target parameter calculation strategy and the parameter of the object to be adjusted includes: Determining a rotation axis and a rotation angle corresponding to the small object parameter calculation strategy, wherein the rotation axis includes a randomly generated rotation axis, and the rotation angle includes a randomly generated rotation angle; Creating a rotation matrix based on the rotation axis, and multiplying the sub-object position of the collision sub-object by the rotation matrix to obtain a collision position of the collision sub-object; Determine an associated sub-object in the small object that is associated with the collision sub-object, a sub-object pivot point and a sub-object length of the associated sub-object, and determine a sub-object height of the collision sub-object; Based on the sub-object position, the sub-object axis point, the sub-object length, and the sub-object height, calculate and obtain the collision position and collision direction of the associated sub-object; The collision position of the collision sub-object, the rotation angle of the collision sub-object, the collision position of the associated sub-object, and the collision direction of the associated sub-object are used as the shape adjustment parameters corresponding to the small object.
8. The object processing method according to claim 5, characterized in that: The object parameters to be adjusted are mapping parameters of the scene object, the scene object is a large object, and the target parameter calculation strategy is a large object parameter calculation strategy; The step of calculating and obtaining the morphological adjustment parameter corresponding to the scene object based on the target parameter calculation strategy and the parameter of the object to be adjusted includes: Determining an object position, a rotation angle, and an object pivot point of the large object from the mapping parameters; The displacement of the object position is calculated to obtain a displacement parameter, and the displacement parameter, the rotation angle and the object axis point are used as the morphological adjustment parameter corresponding to the large object.
9. The object processing method according to claim 1, characterized in that: After determining the object state information corresponding to the scene object, the method further includes: Determining, according to the object type of the scene object, a target audio data set corresponding to the scene object from a plurality of audio data sets contained in an audio data storage unit; According to the object state information, target audio data is determined from the target audio data set, and the target audio data is played using a CPU.
10. The object processing method according to claim 1, characterized in that: After determining the object state information corresponding to the scene object, the method further includes: Determining, according to the object type of the scene object, a target special effect data set corresponding to the scene object from a plurality of characteristic data sets contained in a special effect data storage unit; According to the object state information, target special effect data is determined from the target special effect data set, and the target special effect data is rendered using a CPU.
11. The object processing method according to claim 1, characterized in that: The determining the object state information corresponding to the scene object includes: detecting object state data of the scene object during the morphology adjustment process, and calculating updated object state information corresponding to the scene object based on the object state data when the object state data satisfies a preset state update condition; Based on the updated object state information, the historical object state information of the scene object is updated to obtain the updated object state information.
12. The object processing method according to claim 1, characterized in that: Before determining the object movement data of the target object, the method further includes: Based on the object creation parameters for the scene object, construct a plurality of scene sub-objects corresponding to the scene object based on the object creation parameters; A sub-object fusion strategy is determined according to the object type of the scene object, and based on the sub-object fusion strategy, each scene sub-object is fused to obtain the scene object.
13. A computing device, characterized in that: include: Memory and processor; The memory is used to store computer programs / instructions, and the processor is used to execute the computer programs / instructions. When the computer programs / instructions are executed by the processor, the steps of the method described in any one of claims 1 to 12 are implemented.
14. A computer-readable storage medium, characterized in that: It stores a computer program / instruction, which, when executed by a processor, implements the steps of the method described in any one of claims 1 to 12.
15. A computer program product, characterized in that The invention comprises a computer program / instruction, which, when executed by a processor, implements the steps of the method according to any one of claims 1 to 12.
