A method and related apparatus for determining a passable area

CN122912459APending Publication Date: 2026-10-16TENCENT DIGITAL TIANJIN
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510404931.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-01
Publication Date
2026-10-16

AI Technical Summary

Technical Problem

[0004]这种方式由于需要重新构建通行区域,会导致通行区域的生成不够便捷,耗时时间较长,无法满足实时性要求

Benefits of technology

[0022]As can be seen from the above technical solution, when a target object obstructing the movement of a game object appears in the 3D scene at time i, it is necessary to determine the passable area in the 3D scene at that time that allows the game object to move. That is, the target block where the target object is located can be determined from the multiple blocks used to identify the ground plane in the 3D scene, thus clarifying the specific area where the target object is located. Since the appearance of the target object has a small impact on the overall layout of the 3D scene, it is not necessary to start from scratch to perform scene voxelization and other steps to generate the passable area at time i. Furthermore, since the 3D scene has pre-constructed passable areas, and the target object only affects a local part of the passable area, updates can be performed on the existing passable areas. The target block where the target object is located corresponds to a passable sub-region within the passable area, and the passable area is divided into multiple passable surfaces. To further reduce the range affected by the target object, target passable surfaces overlapping with the target object in the vertical direction of the ground plane can be determined from the passable sub-regions. In other words, the target object only affects the target passable surfaces it covers, so the target passable surfaces can be updated subsequently. Since the movement of game objects within a target passageway covered by a target object is likely to be obstructed, a region to be removed is determined based on the target passageway to identify areas obstructed by the target object. Removing this region from the passageway sub-region yields the updated passageway sub-region corresponding to the target block at time i. This ensures that the game object can move within the updated passageway sub-region at time i without being obstructed by the target object. In summary, when a target object suddenly appears to obstruct movement, this application directly updates the pre-provided passageway region without requiring a complete reconstruction of the 3D scene to create a new passageway region. This improves the efficiency of passageway region determination, reduces time consumption, enables real-time response to the appearance of target objects, and avoids game stuttering and other issues.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122912459A_ABST
    Figure CN122912459A_ABST
Patent Text Reader

Abstract

The application discloses a passing area determination method and related device, when a target object that hinders the movement of a game object appears in a three-dimensional scene at the i-th moment, determining a target block in which the target object is located in a plurality of blocks of the three-dimensional scene; from the target block, determining a target passing surface that overlaps with the target object in the vertical direction of the ground plane, determining a to-be-removed area that is hindered by the target object based on the target passing surface; removing the to-be-removed area from the passing sub-area to obtain a passing updated sub-area corresponding to the i-th moment of the target block. The application directly updates the pre-provided passing area, without the need for new full-process reconstruction of the passing area of the three-dimensional scene, thereby improving the determination efficiency of the passing area, reducing the time consumption, realizing real-time response to the appearance of the target object, and avoiding problems such as lag in the game.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of access area updating, and in particular to a method and related apparatus for determining access areas. Background Technology

[0002] In 3D scenes, such as game scenes, virtual objects often appear suddenly. The appearance of virtual objects can hinder the movement of game objects in the 3D scene. Game objects cannot move to the area where the virtual object is located. Therefore, the passable areas in the 3D scene that allow game objects to move also need to be updated in a timely manner.

[0003] In related technologies, if a virtual object suddenly appears that obstructs movement at a certain moment, when determining the passable area at that moment, it is necessary to re-voxelize all virtual objects in the 3D scene and redetermine the walkable area in order to complete the entire construction process of the new passable area.

[0004] This method requires rebuilding the passage area, which makes the generation of the passage area inconvenient and time-consuming, and cannot meet the real-time requirements. Summary of the Invention

[0005] To address the aforementioned technical problems, this application provides a method and related apparatus for determining a passage area, which improves the efficiency of determining the passage area, reduces time consumption, and enables timely updates of the passage area.

[0006] The embodiments of this application disclose the following technical solutions:

[0007] On the one hand, this application provides a method for determining a passable area, the method comprising:

[0008] When a target object appears in the three-dimensional scene at time i, the target block where the target object is located is determined among multiple blocks in the three-dimensional scene. The multiple blocks are used to identify the ground plane of the three-dimensional scene. The passable area in the three-dimensional scene that allows the game object to move is divided into multiple passable surfaces. The target object is a virtual object that obstructs the movement of the game object.

[0009] From the access sub-region of the target block, determine the target access surface that overlaps with the target object in the vertical direction of the ground plane, wherein the access sub-region is the access area located in the target block;

[0010] Based on the target passageway, a region to be removed that is obstructed by the target object is determined;

[0011] The area to be removed is removed from the passage sub-region to obtain the passage update sub-region corresponding to the target block at the i-th time.

[0012] In another aspect, this application provides a passage area determination device, the device comprising:

[0013] The first determining unit is used to determine the target block where the target object is located in a plurality of blocks in the three-dimensional scene when the target object appears in the three-dimensional scene at time i. The plurality of blocks are used to identify the ground plane of the three-dimensional scene. The passable area in the three-dimensional scene that allows the game object to move is divided into a plurality of passable surfaces. The target object is a virtual object that obstructs the movement of the game object.

[0014] The second determining unit is used to determine, from the passage sub-region of the target block, a target passage surface that overlaps with the target object in the vertical direction of the ground plane, wherein the passage sub-region is the passage area located in the target block;

[0015] The third determining unit is used to determine, based on the target passageway, the area to be removed that is obstructed by the target object;

[0016] The removal unit is used to remove the area to be removed from the passage sub-region to obtain the passage update sub-region corresponding to the target block at the i-th time.

[0017] In another aspect, this application provides a computer device, which includes a processor and a memory:

[0018] The memory is used to store computer programs and to transfer the computer programs to the processor;

[0019] The processor is configured to execute the method according to the computer program.

[0020] In another aspect, this application provides a computer-readable storage medium for storing a computer program that, when executed by a computer device, implements the method described thereon.

[0021] In another aspect, this application provides a computer program product including a computer program that, when run on a computer device, causes the computer device to perform the method.

[0022] As can be seen from the above technical solution, when a target object obstructing the movement of a game object appears in the 3D scene at time i, it is necessary to determine the passable area in the 3D scene at that time that allows the game object to move. That is, the target block where the target object is located can be determined from the multiple blocks used to identify the ground plane in the 3D scene, thus clarifying the specific area where the target object is located. Since the appearance of the target object has a small impact on the overall layout of the 3D scene, it is not necessary to start from scratch to perform scene voxelization and other steps to generate the passable area at time i. Furthermore, since the 3D scene has pre-constructed passable areas, and the target object only affects a local part of the passable area, updates can be performed on the existing passable areas. The target block where the target object is located corresponds to a passable sub-region within the passable area, and the passable area is divided into multiple passable surfaces. To further reduce the range affected by the target object, target passable surfaces overlapping with the target object in the vertical direction of the ground plane can be determined from the passable sub-regions. In other words, the target object only affects the target passable surfaces it covers, so the target passable surfaces can be updated subsequently. Since the movement of game objects within a target passageway covered by a target object is likely to be obstructed, a region to be removed is determined based on the target passageway to identify areas obstructed by the target object. Removing this region from the passageway sub-region yields the updated passageway sub-region corresponding to the target block at time i. This ensures that the game object can move within the updated passageway sub-region at time i without being obstructed by the target object. In summary, when a target object suddenly appears to obstruct movement, this application directly updates the pre-provided passageway region without requiring a complete reconstruction of the 3D scene to create a new passageway region. This improves the efficiency of passageway region determination, reduces time consumption, enables real-time response to the appearance of target objects, and avoids game stuttering and other issues. Attached Figure Description

[0023] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0024] Figure 1 This is a schematic diagram illustrating the steps involved in determining a passage area in related technologies;

[0025] Figure 2 This is a time-consuming diagram illustrating the entire process of constructing a passageway in a related technology.

[0026] Figure 3 A schematic diagram illustrating a method for determining a passage area provided in an embodiment of this application;

[0027] Figure 4 A flowchart illustrating a method for determining a passage area provided in an embodiment of this application;

[0028] Figure 5 A schematic diagram of a three-dimensional scene without a target object at a time before the i-th time, provided for an embodiment of this application;

[0029] Figure 6 A schematic diagram of a three-dimensional scene in which the target object appears at time i, provided as an embodiment of this application;

[0030] Figure 7 A schematic diagram of the bounding box and projection surface of a target object provided in an embodiment of this application;

[0031] Figure 8 A schematic diagram of a three-dimensional scene provided for an embodiment of this application;

[0032] Figure 9 A schematic diagram illustrating an optimized passage area construction process provided in an embodiment of this application;

[0033] Figure 10 This application provides a time consumption diagram for an optimized end-to-end construction scheme.

[0034] Figure 11 A schematic diagram illustrating the time consumption of updating a passage area, provided as an embodiment of this application;

[0035] Figure 12 A time consumption comparison chart of different schemes provided for embodiments of this application;

[0036] Figure 13 A schematic diagram illustrating the construction process of a passage area provided in an embodiment of this application;

[0037] Figure 14 A schematic diagram illustrating a process for restoring a passable area, as provided in an embodiment of this application;

[0038] Figure 15 A schematic diagram of a passage area determination device provided in an embodiment of this application;

[0039] Figure 16 A structural diagram of a terminal device provided in an embodiment of this application;

[0040] Figure 17 This is a structural diagram of a server provided in an embodiment of this application. Detailed Implementation

[0041] The embodiments of this application will now be described with reference to the accompanying drawings.

[0042] As described in the background section, in related technologies, if a virtual object suddenly appears that obstructs movement at a certain moment, when determining the passable area at that moment, it is necessary to re-voxelize all virtual objects in the 3D scene and redetermine the walkable area in order to complete the entire construction process of the new passable area.

[0043] Specifically, refer to Figure 1 The diagram shows the steps for determining a passable area in related technologies. When a target object appears in a 3D scene at a certain moment, steps 101-109 need to be executed sequentially, namely, scene voxelization, building a height field, marking walkable sections, building and storing a compacted height field, connecting walkable sections, establishing a region, generating a contour, generating a passable surface, and connecting the passable surfaces.

[0044] Steps 101-109 can be implemented using the Recast Navigation library, an open-source navigation mesh generation and path planning library widely used in game development and virtual environments, designed to provide efficient and flexible navigation mesh generation and path planning solutions.

[0045] A navigation mesh is a structured data representation method for path planning and navigation in 3D scenes. It divides the 3D scene into a series of interconnected convex polygons that cover all walkable areas within the scene. Navigation meshes are commonly used for pathfinding and movement control of AI characters, ensuring they can find the optimal path and avoid obstacles in complex 3D scenes.

[0046] A voxel is a concept used in the Recast Navigation library to construct navigation mesh volumes. It is the smallest unit of a geometric model in three-dimensional space, representing a fixed-size cube, similar to a pixel in a two-dimensional image. Voxelization is the process of converting a continuous geometric model into a discrete voxel mesh.

[0047] A span is a concept used in the Recast Navigation library to construct navigation meshes. It refers to a continuous voxel along the vertical axis in three-dimensional space, representing a cylindrical region and serving as the basic unit for the height field.

[0048] A compact span is an optimized representation of an interval, designed to reduce memory usage and improve processing efficiency. It is the basic unit that makes up a compact height field. From now on, compact spans and intervals will be collectively referred to as "intervals".

[0049] In other words, the 3D scene is voxelized to obtain multiple 3D voxels. Voxels that are located in the same area on the horizontal plane and are adjacent to each other are merged into intervals to construct a height field. Each interval is marked as walkable, thereby marking walkable intervals. The height field is converted into a compact height field and stored. Adjacent and mutually reachable walkable intervals are connected. Regions are established based on the connected walkable intervals. Contours are generated based on regions. Passage surfaces are generated based on contours. Adjacent passage surfaces are connected to generate passable regions.

[0050] During game operation, when a target object appears in the 3D scene at a certain moment, steps 101-109 above need to be executed to reconstruct the passable area at that moment. This process is time-consuming for the Central Processing Unit (CPU). (Reference) Figure 2 The diagram illustrates the time consumption for constructing a passable area using a full-process approach, as provided in related technologies. The horizontal axis represents the number of intervals, and the vertical axis represents CPU time in milliseconds. This full-process construction scheme includes scene voxelization and operations on the height field and compressed height field. Therefore, its CPU time is positively correlated with the number of voxels and scene complexity, while the number of intervals reflects both the number of voxels and scene complexity. As shown in the diagram, the CPU time for constructing a single tile in a 3D scene can even exceed 60ms. If the target object overlaps with multiple tiles, the CPU time will double accordingly.

[0051] Furthermore, during game operation, taking 60 frames per second as an example, the game logic processing and rendering time for each frame is usually controlled within 16.67 milliseconds. However, the construction of a passable area in a complete process can take several milliseconds or even tens of milliseconds, which will cause the game frame rate to drop significantly and may even cause stuttering, affecting the player experience and failing to meet the real-time requirements of the game.

[0052] This application provides a method and related apparatus for determining a passable area. When a target object suddenly appears that obstructs movement, this application directly updates the pre-provided passable area without having to completely rebuild the 3D scene to create a new passable area. This improves the efficiency of determining the passable area, reduces time consumption, enables real-time response to the appearance of the target object, and avoids problems such as game lag.

[0053] The access area determination method provided in this application can be implemented using computer equipment, which can be a terminal device or a server. The server can be a standalone physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing cloud computing services. Terminal devices include, but are not limited to, mobile phones, computers, smart voice interaction devices, smart home appliances, vehicle terminals, aircraft, and extended reality (XR) devices. The terminal device and the server can be directly or indirectly connected via wired or wireless communication, which is not limited herein.

[0054] It is understood that in the specific embodiments of this application, data such as user information are involved. When the above embodiments of this application are applied to specific products or technologies, user permission or consent is required, and the collection, use and processing of related data must comply with the relevant laws, regulations and standards of the relevant countries and regions.

[0055] refer to Figure 3 The diagram shown is a scenario illustration of a method for determining a passage area provided in an embodiment of this application. This method can be applied to a server or terminal device. Figure 3 The above-mentioned computer equipment is illustrated using a server as an example.

[0056] Let's take a 3D game scene as an example. During gameplay, when a target object appears in the 3D scene that obstructs the movement of a game object, it's necessary to determine the passable area within the 3D scene at that moment that allows the game object to move. For example... Figure 3 As shown, at time i, a prism obstacle appears in the middle of the road, which will hinder the movement of the game object, so the passage area needs to be redefined. Figure 3 The diagram shows the traversable area before and after the update at time i. The shaded area represents the traversable area, which is the pre-constructed traversable area before the update at time i. The traversable area includes multiple traversable surfaces, such as convex polygons. To improve computational efficiency, the 3D scene can be divided into multiple blocks. The dashed lines in the diagram distinguish different blocks. When a target object appears in the 3D scene at time i, the server can determine the target block where the target object is located (step 301). Subsequent processing only needs to be performed on the target block, without processing the entire 3D scene, thus initially clarifying the scope of the target object's influence. Multiple blocks are used to identify the ground plane in the 3D scene; each block is a horizontal block.

[0057] Since the appearance of the target object has a small impact on the overall layout of the 3D scene, there is no need to start from scratch to perform voxelization and other steps to generate the passage area at time i. Furthermore, since the 3D scene has pre-constructed passage areas, and the target object only affects a local portion of these passage areas, updates can be performed on the existing passage areas. The passage area located within the target block can be denoted as a passage sub-region. Since the passage area is based on passage surfaces, updates can be performed along the passage surface dimension. Therefore, the server can determine the target passage surface that overlaps with the target object in the vertical direction of the ground plane from the passage sub-region of the target area (step 302), thus clarifying which passage surface is covered by the target object and needs updating, further narrowing down the range affected by the target object. As shown in the enlarged illustration of the target block, the boundary of the target block can define the passage sub-region, which includes the target passage surface covered by the target object.

[0058] Since the movement of game objects in the target passage surface covered by the target object is likely to be obstructed, the server can determine the area to be removed based on the target passage surface (step 303). The area to be removed is used to identify the specific area obstructed by the target object. As shown in the figure, the area enclosed by the polygonal dashed frame outside the target object is the area to be removed.

[0059] The server removes the area to be removed from the passable sub-region, thus obtaining the passable updated sub-region corresponding to the target block at time i (step 304). This ensures that the game object can move within the passable updated sub-region at time i without being obstructed by the target object. As shown in the figure, the shaded area in the target block is the passable updated sub-region corresponding to time i. This passable updated sub-region does not include the area where the target object is located, thus removing the area where the target object is located from the updated passable region at time i. In summary, when a target object suddenly appears that obstructs movement, this application directly updates the pre-provided passable region without needing to completely rebuild the 3D scene with a new passable region. This improves the efficiency of passable region determination, reduces time consumption, enables real-time response to the appearance of the target object, and avoids game lag and other issues.

[0060] refer to Figure 4 The diagram shown is a flowchart illustrating a method for determining a passage area according to an embodiment of this application. This method can be executed by a computer device. In this embodiment, the computer device is a server as an example for explanation.

[0061] Step 401: When the target object appears in the 3D scene at time i, determine the target block where the target object is located among multiple blocks in the 3D scene.

[0062] A 3D scene can be understood as a virtual environment or scene in three-dimensional space. Specifically, it can be a virtual scene displayed or provided by an application when it runs on a terminal device. A 3D scene can be, for example, a game scene. A 3D scene contains virtual objects, which are objects that exist within the 3D scene. These can be virtual characters or virtual objects. Virtual objects have their own shape and volume within the 3D scene and occupy a portion of the space in the 3D scene.

[0063] During application operation, the 3D scene provided by the application will constantly change. At some point, virtual objects may suddenly appear in the 3D scene. Some virtual objects will affect the movement of game objects, such as obstacles that appear on the road, which will hinder the movement of game objects. Other virtual objects will not affect the movement of virtual objects, such as clouds in the sky.

[0064] The target object is a virtual object that obstructs the movement of a game object. In other words, the target object blocks the movement of the game object, causing an area that was previously allowed to move to become inaccessible. The target object can be understood as an obstacle; for example, it could be a road cone or a pothole. The game object can be understood as a virtual object that can move within a 3D scene, controlled by the application. For example, it could be a virtual object not controlled by the player, such as an artificial intelligence (AI) character. In game development, artificial intelligence refers to the technology used to create intelligent behavior, enabling non-player characters in the game to simulate the behavior and decision-making abilities of human players.

[0065] The i-th time point can be the current time when the target object appears in the 3D scene. Before the i-th time point, there is no target object in the 3D scene; at the i-th time point, the target object appears in the 3D scene. (Reference) Figure 5 The diagram shown illustrates a 3D scene with no target object at a time point prior to time i, as provided in an embodiment of this application. Walls are shown on both sides of the 3D scene, and a road is shown in the middle. At this time, there is no target object in the road. (Reference) Figure 6 The figure shown is a schematic diagram of a three-dimensional scene in which a target object appears at time i, according to an embodiment of this application. The prism in the figure represents the target object, which is located in the middle of the road.

[0066] When a target object obstructing the movement of a game object appears in the 3D scene at time i, the server can determine the target block where the target object is located among multiple blocks in the 3D scene. Since 3D scenes are generally quite large, and target objects typically only occupy a small portion of the space, to improve computational efficiency, the 3D scene can be divided into multiple blocks. These blocks are used to identify the ground plane of the 3D scene. The ground plane in a 3D scene is a horizontal surface; therefore, a block can be understood as a block within a horizontal plane. A block has length and width information, but no height information; that is, all blocks are within the same horizontal plane. As an example, a block can be a tile, meaning the 3D scene can be divided into multiple tiles.

[0067] In addition, the server can use the Recast Navigation library to divide the game scene into tiles. Before building the navigation mesh, Recast Navigation divides the entire game scene into multiple small, uniform regions of equal length and width, called tiles. The navigation mesh construction process for each tile is independent. After the navigation meshes of all tiles are built, the navigation meshes of adjacent tiles are connected to form a complete navigation mesh.

[0068] The server can determine the target block where the target object is located within multiple blocks, allowing subsequent processing to be performed only on that target block, eliminating the need to process the entire 3D scene and thus initially clarifying the scope of the target object's influence. A target block is the specific block occupied by the target object; there can be one or more target blocks, meaning the target object can occupy one or more blocks. The number of target blocks depends on the specific size of the target object and the size of the blocks. Figure 6 In the 3D scene, there are 24 blocks, and the target object occupies only one target block.

[0069] The 3D scene has a passable area that allows game objects to move. The passable area is the area where game objects can travel, and game objects can be located anywhere within the passable area. (Reference) Figure 5 As shown in the diagram, the area enclosed by the thick lines is the travel area, which is where the road is located. The travel area is generally three-dimensional, meaning that game objects can move not only within the same horizontal plane but also between planes of different heights. For example, the travel area can be a navigation mesh. Of course, the travel area can also be two-dimensional, in which case game objects can only move within the same horizontal plane.

[0070] The traversable area can be divided into multiple traversable surfaces. A traversable surface can be understood as a local portion of the traversable area. For example, a traversable surface can be a convex polygon, such as a triangle or rectangle. A traversable surface can be a 3D surface, meaning each vertex of the traversable surface has 3D coordinates. For example, when the traversable area is a navigation mesh volume, the traversable surface can be a polygon within the navigation mesh volume. (Reference) Figure 5 As shown, multiple passage surfaces are divided into passage areas by lines within the passage area.

[0071] Step 402: From the passage sub-region of the target block, determine the target passage surface that overlaps with the target object in the vertical direction of the ground plane.

[0072] Since the appearance of the target object has a minimal impact on the overall layout of the 3D scene, there is no need to start from scratch with voxelization and other steps to generate the passage area at time i. Furthermore, since the 3D scene has a pre-constructed passage area, and the target object only affects a local portion of that area, updates can be performed on the existing passage area. More specifically, updates can be performed on the passage sub-regions of the target block containing the target object.

[0073] A target block contains passable sub-regions, which are the passable areas located within the target block. In other words, passable areas can be divided according to the blocks they belong to; the portion of the passable area within the target block can be called a passable sub-region. One target block corresponds to one passable sub-region. If the target object belongs to multiple target blocks, then each target block contains one passable sub-region.

[0074] Since the passable area is composed of passable surfaces as basic units, and each passable surface exists independently without affecting others, when updating a passable sub-region, the passable surface can be used as the basic unit of update. That is, the passable area is updated along the dimension of the passable surface, thereby further narrowing the update range and improving update efficiency. In other words, the server can determine the target passable surface that overlaps with the target object in the vertical direction of the ground plane from the passable sub-region of the target block.

[0075] The vertical direction of the ground plane can be understood as the direction perpendicular to the ground plane, such as the vertically upward z-axis direction. Since a passage sub-region may include one or more passage surfaces, the target passage surface can be determined from the passage sub-region in order to narrow down the update range.

[0076] A target access surface can be understood as a specific access surface that overlaps with the target object in the vertical direction; or, in other words, the target access surface is the access surface occupied by the target object within a access sub-region. If the target block's access sub-region has only one access surface, then that access surface is the target access surface. If the target block's access sub-region has multiple access surfaces, then the access surface where the target object resides is the target access surface. In short, there can be one or more target access surfaces. Figure 6 As shown, there is only one passageway in the target block, which is the target passageway.

[0077] The following section will explain in detail how to determine the target passage surface that overlaps with the target object from the passage sub-region.

[0078] In one possible implementation, step 402: determining the target access surface that overlaps with the target object in the vertical direction of the ground plane from the access sub-region of the target block, may specifically include steps 4021-4022.

[0079] Step 4021: Determine the bounding box of the target object.

[0080] The target object has a bounding box (BBox), which identifies the collision range of the target object. The collision range determines whether other virtual objects can collide with the target object. If other virtual objects are outside the target object's collision range, it means that the virtual object will not collide with the target object. If other virtual objects are at the boundary of the target object's collision range, it means that the virtual object is in contact with the target object's bounding box, i.e., a collision occurs. In other words, the target object's bounding box can define the local three-dimensional space in which the target object is located, representing the area occupied by the target object in three-dimensional space.

[0081] Generally, the size of the bounding box is no smaller than the size of the target object; that is, the bounding box can completely enclose the target object. The shape of the bounding box is usually a regular geometric shape to reduce computational load; for example, a bounding box can be a cuboid. Bounding boxes are used to enclose an object or a set of points and are commonly used in computational geometry applications such as collision detection and spatial indexing. (Reference) Figure 7 The diagram shown is a schematic of the bounding box and projection surface of a target object provided in an embodiment of this application. When the target object is a roadblock cone, the cuboid surrounding it is the bounding box. The bounding box is slightly larger than the roadblock cone, and each side of the cuboid is the boundary of the bounding box.

[0082] In practical applications, the bounding box of the target object can be pre-defined, that is, the corresponding bounding box is set for each target object before the application runs. For example, the developer creates and sets its size and shape during the game development stage so that when the passage area is updated at time i, the bounding box of the target object can be directly obtained.

[0083] Step 4022: From the passable sub-region of the target block, determine the target passable surface that overlaps with the bounding box in the vertical direction of the ground plane.

[0084] Since a bounding box can represent a target object, it can be used to determine overlap. Specifically, the server can determine whether each passage surface in the passage sub-region overlaps with the bounding box in the vertical direction, thus identifying the passage surface occupied by the bounding box and obtaining the target passage surface. As an example, the target passage surface in the passage sub-region can be represented by `OverlappedPolySet`, and the other passage surfaces in the passage sub-region that do not overlap with the target object can be represented by `NoneOverlappedPolySet`.

[0085] In summary, by using bounding boxes to represent the target object and determining the target passage surface that overlaps with the target object, the target passage surface can be accurately determined because the bounding box can reflect the three-dimensional structure of the target object to a certain extent. On the other hand, because the geometric structure of the bounding box is relatively simple, the amount of calculation can be reduced and the calculation efficiency can be improved when determining the target passage surface, thus achieving a balance between fast calculation and calculation accuracy.

[0086] In one possible implementation, step 402: determining the target access surface that overlaps with the target object in the vertical direction of the ground plane from the access sub-region of the target block, may specifically include steps 4023-4025.

[0087] Step 4023: Determine the projected outline of the target object on the ground plane.

[0088] Since the overlap judgment is performed in the vertical direction of the ground plane when determining the target passage surface that overlaps with the target object, it is necessary to determine whether the projection of the target object on the ground plane overlaps with the projection of the passage surface on the ground plane. Therefore, the server needs to determine the projection outline of the target object on the ground plane.

[0089] A projected profile can be understood as the boundary line of a target object's projection onto a ground plane. It represents the object's outline in two-dimensional space and is a closed profile. The projected profile is primarily related to the shape of the target object's base, and also to its tilt. Projected profiles can be pre-created, or their size and shape can be set by developers during game development. They can be represented using the `ObstaclePoly` property.

[0090] As an example, when the target object is a roadblock cone placed on the ground plane, the projected profile is basically the same as the bottom profile of the roadblock cone. If the bottom of the roadblock cone is octagonal, then the projected profile is also octagonal.

[0091] Step 4024: Determine the projection surface of the target object based on the projection profile.

[0092] A projection plane can be understood as the area containing the projected outline of the target object. For example, a projection plane can be a polygon. Both projection planes and projection outlines relate to the projection of the target object onto a ground plane, but the area enclosed by the projection plane and the projection outline can differ slightly. The area of ​​the projection plane can be slightly larger than the area enclosed by the projection outline, or it can be equal to the area enclosed by the projection outline. For example, the projection plane can be the area enclosed by the projection outline; that is, the area enclosed by the projection outline is used as the projection plane of the target object. (Reference) Figure 7 As shown, the octagon located around the outer edge of the obstacle cone is the projection surface.

[0093] Step 4025: From the traffic sub-region of the target block, determine the target traffic surface that overlaps with the projection surface in the vertical direction of the ground plane.

[0094] Since the projection surface can show the projection of the target object onto the ground plane, such as the location and size of the projection, when determining overlap, we can check whether each passage surface in the passage sub-region overlaps with the projection surface in the vertical direction of the ground plane, thereby identifying the target passage surface. That is, we can determine whether the projection of each passage surface onto the ground plane overlaps with the projection surface; if they overlap, it means that the passage surface overlaps with the target object in the vertical direction.

[0095] In summary, in the process of determining the target passageway, the overlapping judgment is made by using the projection surface of the target object on the ground plane. Since the projection surface is determined based on the projection outline of the target object on the ground plane, the projection surface fits the projection shape of the target object more closely. When determining the overlapping target passageway based on the projection surface, the position comparison between the target object and the passageway can be more accurate, thereby accurately judging the passageway covered by the target object and greatly improving the accuracy of the target passageway.

[0096] Step 403: Determine the area to be removed that is blocked by the target object based on the target passage surface.

[0097] Since the target passage is occupied by the target object, some areas of the target passage may obstruct the movement of game objects due to the presence of the target object. It is necessary to identify these areas, i.e., the areas to be removed, in a timely manner.

[0098] The area to be removed is the region within the target passage that is obstructed by the target object. Because the movement of game objects is hindered in the area to be removed, it is the region that needs to be removed later to ensure the normal movement of game objects. The area to be removed can be a part of the target passage or the entire target passage.

[0099] To improve computational efficiency, in one possible implementation, step 403: determining the area to be removed based on the target access surface to identify the area blocked by the target object can specifically mean using the target access surface as the area to be removed.

[0100] In short, the entire area of ​​the target passage can be identified as the area to be removed. That is, after identifying the target passage occupied by the target object, the entire target passage is taken as the area to be removed, and then the entire target passage is removed.

[0101] As an example, if a passage sub-region of a target block includes a single passage face, which is the target passage face occupied by the target object, then that passage face can be removed as a region to be removed, meaning the entire passage sub-region of the target block will be deleted. If a passage sub-region includes multiple passage faces, then the target passage face among the multiple passage faces can be removed as a region to be removed, meaning a portion of the passage faces in the passage sub-region will be deleted.

[0102] In this way, by using the entire target passage as the area to be removed, it is not necessary to specifically determine which part of the target passage is occupied by the target object. This simplifies the steps of determining the area to be removed and enables the area that needs to be removed due to being blocked by the target object to be quickly and accurately determined, which greatly improves the computational efficiency.

[0103] Since the target object usually occupies a part of the target passage, the part occupied by the target object will hinder the movement of the game object and needs to be removed. The part not occupied by the target object will not hinder the movement of the game object and does not need to be removed. Therefore, the part of the target passage occupied by the target object can be further identified to improve the accuracy of the area to be removed.

[0104] In one possible implementation, step 403: determining the area to be removed based on the target passage surface to identify the area blocked by the target object, may specifically include steps 4031-4032.

[0105] Step 4031: Determine the overlapping portion of the target object in the target passageway in the vertical direction.

[0106] Step 4032: Identify the overlapping areas as the regions to be removed.

[0107] The overlapping portion refers to a region within the target passageway, specifically the area where the target passageway and the target object overlap in the vertical direction. In other words, the overlapping portion is the area occupied by the target object within the target passageway. For example, in the vertical direction, the area completely covered by the target object within the target passageway is the overlapping portion; areas not covered by the target object are not considered overlapping.

[0108] Since the overlapping area is completely covered by the target object (i.e., the target object is positioned above the overlapping area), the game object cannot move to the overlapping area. Therefore, the overlapping area can be considered as a region to be removed and will be culled later. As an example, if the upper left part of the target passage is completely covered by the target object, then the upper left part will be considered as a region to be removed and culled, while the other parts of the target passage will be retained.

[0109] In summary, by defining the area within the target passageway that completely overlaps with the target object as the area to be removed, this area precisely represents the region that is blocked by the target object and inaccessible to the game object. It excludes areas accessible to the game object. In other words, the area to be removed is designed to be as small as possible while still including inaccessible areas. This allows for the accurate removal of small, yet distinct, areas, while ensuring a sufficient amount of land is retained. This approach minimizes the deletion of large portions of the passageway in the 3D scene, preserving some areas of the target passageway and maintaining the original connectivity between passageways. This prevents unnecessary alterations to the passageway and ensures a precise definition of the area to be removed.

[0110] In determining the overlapping portion of the target object, it is necessary to first determine the target passage surface that overlaps with the target object, and then determine the overlapping portion within the target passage surface. This requires two overlap calculations for the target object, resulting in a large computational workload.

[0111] In one possible implementation, when determining the target access surface that overlaps with the bounding box; step 4031: determining the overlapping portion of the target object and the target access surface in the vertical direction, may specifically include steps 40311-40313.

[0112] Step 40311: Determine the projected outline of the target object in the ground plane.

[0113] Step 40312: Determine the projection surface of the target object based on the projection profile.

[0114] Step 40313: Determine the overlapping portion of the projection plane and the target passageway in the vertical direction.

[0115] When determining the target passage surface from the passage sub-region of the target block, a bounding box can be used to perform overlap determination instead of the target object. Within the passage sub-region, the passage surface that overlaps with the bounding box in the vertical direction is identified as the target passage surface. Then, the overlapping portion within the target passage surface can be determined based on the projected plane of the target object.

[0116] A target object has a projected profile on the ground plane. The projected profile can be understood as the boundary line of the target object's projection onto the ground plane. It characterizes the target object's outline in two-dimensional space and is a closed profile. The projected profile is primarily related to the shape of the target object's base, and also to factors such as the object's tilt. For example, when the target object is a bollard placed on the ground plane, the projected profile is essentially the same as the bollard's base profile. If the bollard's base is octagonal, then the projected profile is also octagonal.

[0117] A projection surface can be understood as the area containing the projected outline of the target object. Both the projection surface and the projection outline are related to the projection of the target object onto the ground plane, but the area of ​​the projection surface can differ slightly from the area enclosed by the projection outline. The area of ​​the projection surface can be slightly larger than the area enclosed by the projection outline, or it can be equal to the area enclosed by the projection outline. As an example, the projection surface can be the area enclosed by the projection outline; that is, the area enclosed by the projection outline is used as the projection surface of the target object.

[0118] The server can determine the overlap between the projection surface and the target passage surface in the vertical direction. That is, it can project the target passage surface into the ground plane, compare the projection of the target passage surface into the ground plane with the projection of the target object into the ground plane, and take the overlapping part as the overlapping part.

[0119] As an example, when the target object is a roadblock cone, the bounding box of the target object is a cuboid, and the projection surface of the target object is a convex polygon. The server can determine the passage surface that overlaps with the cuboid in the vertical direction as the target passage surface, and then determine the part of the target passage surface that overlaps with the convex polygon in the vertical direction as the overlapping part.

[0120] In practice, since the target object's projection surface is horizontal and lies on the ground plane, lacking height information, calculating whether the projections of the projection surface and the target passage surface overlap on the ground plane is essentially done within the two-dimensional space of the ground plane. Therefore, the overlapping portion can be determined by calculating the difference (DiffPolySet) and intersection (UnionPolySet) of the projections of the projection surface and the target passage surface on the ground plane. In other words, Boolean operations on two polygons (i.e., the projection surface and the target passage surface) are only meaningful if the two polygons are on the same plane; therefore, subsequent operations between polygons will ignore the vertical axis and be performed in two-dimensional space.

[0121] In this context, the intersection can be understood as the completely overlapping portion between the projection plane of the target object and the target passage plane. The intersection DiffPolySet represents this overlapping portion, which needs to be removed later. The difference is the portion of the target passage plane that does not overlap with the projection plane, and this is the portion that needs to be retained later. As an example, the Greiner-Hormann algorithm can be used to solve for the difference and intersection. The Greiner-Hormann algorithm is a geometric algorithm for Boolean operations (such as intersection, union, difference, etc.) between two convex polygons. This algorithm determines the overlapping area between two polygons by marking the intersection point of the two polygons as "entry" or "exit" points and traversing and switching along the edges of the polygons, thereby efficiently performing polygon segmentation and merging operations.

[0122] Furthermore, the area of ​​the projection surface can be slightly smaller than the projected area of ​​the bounding box on the ground plane; however, neither will be smaller than the projected area of ​​the target object on the ground plane. That is, a slightly larger bounding box is used to accurately determine all the target passageways first, and then a smaller projection surface is used to compare which parts are covered by the target object, improving accuracy.

[0123] In summary, since the geometry of the bounding box of the target object is relatively simple compared to the target object itself, calculating the target passage surface based on the bounding box can significantly reduce the computational load while still meeting the accuracy requirements of the target passage surface. Furthermore, when determining the overlapping portion of the target passage surface, calculations are performed based on the projection plane of the target object. Because the projection plane more closely matches the outline of the target object, it can accurately determine the overlapping portion completely covered by the target object. In short, the target passage surface affected by the target object is initially detected based on the structurally simple bounding box, and then the overlapping portion of the target passage surface with the target object is further calculated using the projection plane that reflects the shape of the target object. This reduces the computational load while ensuring high accuracy in identifying the overlapping portion.

[0124] Since game objects in a 3D scene usually have a certain volume, if the culling is strictly performed according to the area marked by the projected outline of the target object, it may cause the game object to move too close to the target object when it moves near the area to be removed, resulting in the two objects penetrating each other, which is inconsistent with reality and affects the game experience.

[0125] In one possible implementation, step 40312: determining the projection surface of the target object based on the projection contour can specifically be as follows: according to the shape of the projection contour, the projection contour is expanded outward to meet the collision accuracy requirements, and the area covered by the expanded projection contour is determined as the projection surface.

[0126] The server can enlarge the projection contour based on its shape, ensuring that the enlarged projection contour has the same shape as the original projection contour without significant changes to its original shape. Furthermore, the enlarged projection contour lies outside the original projection contour, completely enclosing it. For example, if the original projection contour is octagonal, the enlarged projection contour will be a larger octagon.

[0127] Collision accuracy can be understood as the precision of collision detection when performing collision detection on target objects and game objects. The higher the collision accuracy, the more sensitive the collision detection. Collision accuracy may be affected by the resolution of the game screen. For example, the higher the resolution, the higher the collision accuracy can be set to meet the requirements of high-resolution, high-quality graphics.

[0128] In short, when expanding the projected outline outwards, an expansion process that meets collision accuracy requirements can be performed to obtain the expanded projected outline, and the area enclosed by the expanded projected outline is defined as the projection surface. (Reference) Figure 8 The diagram shown is a schematic diagram of a three-dimensional scene provided in an embodiment of this application. The target object has a polygonal outer perimeter, and the area enclosed by the polygon is the projection surface.

[0129] As an example, when the projected outline of the target object is a circle with a radius of 10 cm, the expanded projected outline is a circle with a radius of 15 cm, so that the circle with a radius of 15 cm is used as the area to be removed.

[0130] In this way, the projected outline of the target object is magnified, and the area to be removed is determined based on the magnified projection outline. Taking into account the volume occupied by the game object, the area to be removed will be larger than the area occupied by the target object, and the remaining area will be farther away from the target object. Even if the game object is close enough to the target object, since the area close to the target object has been culled, it will not cause the game object and the target object to pass through each other, improving the realism of the game and enhancing the player experience.

[0131] Step 404: Remove the area to be removed from the passable sub-region to obtain the passable update sub-region corresponding to the target block at time i.

[0132] Since the area to be removed will obstruct the movement of game objects, it is necessary to remove the area to be removed from the passable sub-area of ​​the target block, and retain the remaining area in the target block as the passable update sub-area of ​​the target block at time i.

[0133] Here, the accessibility update sub-region can be understood as the new accessibility sub-region obtained after the region update at time i. (See reference) Figure 8 As shown, the diagonally lined area is the updated passage area. The main difference between the passage area before and after the update is that the passage sub-area in the target block where the target object is located has changed to the passage updated sub-area. Since the passage updated sub-area does not include the area where the target object is located, the game object can move freely in the passage updated sub-area and can be located at any position in it without being blocked by the target object.

[0134] In summary, when a target object suddenly appears that obstructs movement, this application directly updates the pre-provided passage area without requiring a complete reconstruction of the 3D scene to create a new passage area. This improves the efficiency of determining the passage area, reduces time consumption, enables real-time response to the appearance of the target object, and avoids issues such as game lag.

[0135] The solutions provided in related technologies, which involve determining a new passable area when a target object appears in a 3D scene, require a complete construction process, which is time-consuming. However, even after optimizing the entire construction process, the optimized process still has a significant time consumption. Let's take the construction and storage of the compressed height field in step 104 as an example for illustration.

[0136] refer to Figure 9The diagram shows an optimized passage area construction process provided by an embodiment of this application. (1) shows the passage area construction process when a target object appears. When a target object appears in the 3D scene at a certain moment, the following steps need to be executed in sequence: the server needs to execute step 110 to load the pre-stored compressed height field, mark the walkable section overlapping with the target object as the non-walkable section (step 111), and then execute step 105 to connect the walkable section and other subsequent steps to construct the passage area. (2) shows the passage area construction process when the target object disappears. After the target object disappears in the 3D scene at a certain moment, the server can execute step 110 to load the pre-stored compressed height field, and then execute step 105 to connect the walkable section and other subsequent steps to construct the passage area. In addition, since the compressed height field is pre-built and stored before the game runs, the operation of marking whether the section is walkable is only performed during the passage area update process. It does not involve adding or deleting sections. Therefore, this solution can only handle the situation where the passage area is deleted and restored due to the appearance and disappearance of the target object.

[0137] refer to Figure 10 The diagram illustrates the time consumption of an optimized full-process construction scheme according to an embodiment of this application. The horizontal axis represents the number of intervals, and the vertical axis represents the CPU time in milliseconds. Although the optimized construction process does not require scene voxelization, it does require operations on the compressed height field. Therefore, the time consumption is positively correlated with the number of intervals. As shown in the figure, when performing full-process construction on a single tile in a 3D scene, the CPU time can even reach over 8ms. If the target object overlaps with multiple tiles, the CPU time will double accordingly.

[0138] refer to Figure 11 The figure shows a time consumption diagram for updating a passage area according to an embodiment of this application. The horizontal axis represents the number of passage surfaces, and the vertical axis represents the CPU time in milliseconds. Since this solution does not require voxelization of the 3D scene or operation on the compressed height field, but directly segments the passage surfaces of the passage area and processes the data at the passage surface level, the CPU time when executing the method provided in this application is independent of the number of voxels, scene complexity, and number of intervals, but is positively correlated with the number of passage surfaces. As shown in the figure, when updating the target block in the 3D scene, the CPU time is at most 0.24ms, which is a significant reduction.

[0139] refer to Figure 12The diagram shows a time comparison of different schemes provided in this application embodiment. Scheme 1 is the full-process construction scheme, Scheme 2 is the cache-compacted height field scheme, and Scheme 3 is the passage surface segmentation scheme provided in this application. The horizontal axis represents the number of intervals, and the vertical axis represents the CPU time in milliseconds. The passage surface segmentation scheme involves 16 passage surfaces. It can be seen that for the same tile, the time consumption of the passage surface segmentation scheme is much lower than the other two schemes, significantly reducing the time consumption. This scheme achieves the same effect as the cache-compacted height field scheme, namely, supporting the handling of passage area deletion and restoration caused by the appearance and disappearance of target objects, while significantly reducing CPU time. In a common use case with 40,000 intervals and 16 passage surfaces, it has a performance improvement of more than 30 times, enabling gameplay related to passage area updates.

[0140] During the process of obtaining the traffic update sub-region at time i, if the shape of the part to be retained that is not part of the overlapping part in the target traffic surface does not meet the requirements, such as being a concave polygon, it needs to be adjusted to meet the requirements to ensure that the traffic path can be planned normally.

[0141] In one possible implementation, obtaining the access update sub-region corresponding to the target block at time i in step 404 may specifically include steps 4041-4043.

[0142] Step 4041: Determine the parts of the target passageway that are not part of the overlapping area and need to be retained.

[0143] The portion to be retained refers to the area of ​​the target passageway that is not part of the overlapping area. In other words, the target passageway is divided into two parts: the overlapping area and the portion to be retained. The portion to be retained is the part that may be preserved later to form a new passageway. As an example, when the intersection (DiffPolySet) represents the overlapping area, the difference (DiffPolySet) represents the portion to be retained.

[0144] As an example, when the target object is a roadblock cone, if the overlapping part is the area of ​​the target passage surface covered by the roadblock cone, then the part to be retained is the area of ​​the target passage surface that is not covered by the roadblock cone.

[0145] Step 4042: In response to the fact that the shape of the part to be retained is a concave polygon, the part to be retained is divided into multiple convex polygons, and the resulting convex polygons are merged into the pass-through update sub-region.

[0146] When the shape of the part to be retained is a concave polygon, it may cause the pathfinding trajectory of the game object located in the concave polygon to cross another polygon when determining the pathfinding trajectory in the subsequent passable update sub-region, resulting in a pathfinding trajectory error.

[0147] Therefore, the server can determine whether the shape of the part to be retained is a concave polygon. If the part to be retained is a concave polygon, it can divide the concave polygon into multiple convex polygons, and replace the part to be retained with all the resulting convex polygons, merging them into the passability update sub-region. In other words, the passability update sub-region is entirely composed of convex polygons. The pathfinding trajectories located within the convex polygons are all inside the convex polygons and will not cross other polygons.

[0148] Step 4043: In response to the fact that the shape of the part to be retained is a convex polygon, merge the part to be retained into the pass-up update sub-region.

[0149] If the shape of the part to be retained is a convex polygon, that is, after the overlapping part of the target passage surface is removed, the remaining part is still a convex polygon, then the convex polygon can be used as the passage update sub-region.

[0150] In summary, after removing the overlapping portion from the passable sub-region as the area to be removed, if the remaining portion to be retained is not a convex polygon, it can be divided into convex polygons to obtain a passable update sub-region composed of convex polygons, thus avoiding errors in the pathfinding trajectory within the passable update sub-region. If the portion to be retained is a convex polygon, it can be directly used as the passable update sub-region without further division, improving the efficiency of determining the passable update sub-region.

[0151] To better understand the process of updating the access area when the target object appears, an example will be provided below.

[0152] When a target object appears in the 3D scene at time i, the server can determine the target block where the target object is located. The target block is a tile that overlaps with the target object. The target block is then disconnected from other blocks in the 3D scene, and subsequent processing mainly focuses on the target block. From the passable sub-regions in the target block, target passable surfaces that overlap with the target object are determined, and all target passable surfaces are denoted as OverlappedPolySet. All passable surfaces in the passable sub-regions that do not overlap with the target object are denoted as NoneOverlappedPolySet. For each target passable surface in OverlappedPolySet, the difference and intersection between it and ObstaclePoly (i.e., the projection surface of the target object) are calculated. All differences are denoted as DiffPolySet, and the intersection is denoted as UnionPolySet. The difference set `DiffPolySet` contains the portion to be retained. During the process of generating a passageway by treating each polygon in the difference set as a contour, if the portion to be retained is a concave polygon, it needs to be divided into convex polygons, and the contours of these convex polygons are used as contours to generate the passageway. If the portion to be retained is a convex polygon, it can be directly used as a contour to generate the passageway. For each polygon in `NoneOverlappedPolySet`, if it is a convex polygon, each polygon can be directly used as a contour to generate the passageway. After obtaining the updated passageway sub-region of the target block, the target block is reconnected with other blocks to obtain the updated 3D scene passageway at time i.

[0153] refer to Figure 13 The diagram shown illustrates a process for constructing a passage area according to an embodiment of this application. It mainly shows the steps after the target passage surface is determined. The server determines the target passage surface that overlaps with the target object from the passage sub-region of the target passage surface, and determines the area to be removed based on the target passage surface. The area to be removed is removed from the passage sub-region, i.e., step 112 performs polygon segmentation to segment out the area to be removed. Then, the remaining part that does not overlap with the target object is used as the outline, i.e., step 113 uses the non-overlapping polygon as the outline. Then, step 108 generates the passage surface and step 109 connects the passage surfaces to obtain the passage update sub-region.

[0154] During the operation of applications such as games, the position of the target object in the 3D scene changes in real time. For example, the target object may move back and forth in a certain area, or the target object may disappear in the next moment. In these cases, the passable area needs to be updated in a timely manner.

[0155] In one possible implementation, before removing the area to be removed from the access sub-region in step 404 to obtain the access update sub-region corresponding to the target block at time i, the method may further include step 501. After removing the area to be removed from the access sub-region in step 404 to obtain the access update sub-region corresponding to the target block at time i, the method may further include steps 502-503.

[0156] Step 501: Store the area layout parameters of the passage sub-region.

[0157] Since there is a corresponding access sub-region at each time step, and this access sub-region changes continuously, after the region update at time step i, the updated access sub-region will overwrite the previous access sub-region, and the original access sub-region will no longer exist. If it is necessary to restore the original access sub-region later, it is not possible to restore it based on the updated access sub-region.

[0158] As an example, if a target object appears in the 3D scene at time i, the area where the target object is located has been removed from the access update sub-region obtained after the region update. If the target object disappears again at time j, the area that was originally blocked by the target object has been released again, and the game object can move in the area. However, since the area where the target object was located has been deleted before, it is not possible to obtain an access sub-region that includes the area where the target object is located based on the access update sub-region.

[0159] Therefore, to ensure the smooth recovery of the passable sub-regions, the region layout parameters of the passable sub-regions can be stored before the removal operation of the areas to be removed. The region layout parameters are parameters related to the layout of the passable sub-regions and can include parameters of each passable surface in the passable sub-region, such as the number of passable surfaces and the three-dimensional coordinates of each passable surface. In practice, step 501 can be executed before step 402; that is, after the target block is determined, the region layout parameters of the passable sub-regions of the target block are cached. Furthermore, the stored region layout parameters can be marked as CachedPolySet.

[0160] Step 502: When the position of the target object in the 3D scene changes at time j relative to time i, obtain the region layout parameters.

[0161] Time j is a time following time i. At time j, the target object's position in the 3D scene has changed relative to time i. In other words, at time j, the target object is no longer in the same position as it was at time i. It should be noted that any time after time i is not necessarily time j; only the moment when the target object's position changes can be considered time j.

[0162] As an example, if the target object is in the first position in the 3D scene at time i and in the second position at time j, this can be understood as a change in the target object's position. Similarly, if the target object is in the first position in the 3D scene at time i and disappears from the 3D scene at time j (i.e., no longer in the first position), this can also be understood as a change in the target object's position.

[0163] Since the target object is no longer in the same position as it was at time i at time j, the area occupied by the target object at time i has been released at time j. This means the game object can move within this area, and the area needs to be restored. Furthermore, because the layout parameters of the passable sub-region reflect the layout of the entire passable sub-region, including the layout of the area originally occupied by the target object, the server can obtain the layout parameters of the passable sub-region at time j.

[0164] Step 503: Construct the passable sub-region corresponding to the target object at time j based on the region layout parameters.

[0165] The server can reconstruct the passable sub-region before the region update at time i based on the region layout parameters, and use this passable sub-region as the passable sub-region at time j.

[0166] As an example, after the target object disappears at time j, the server can obtain the pre-stored area layout parameters of the access sub-region and generate the access sub-region at time j based on the parameters.

[0167] The following example illustrates the restoration of the passable area. When the target object disappears in the 3D scene at time j, the server can identify the target block that overlaps with the target object, disconnect the target block from the adjacent blocks, obtain a CachedPolySet for each target block, use each polygon in the CachedPolySet as a contour, and start the construction process from generating the passable surface to connect the target block with other blocks to obtain the passable area after the 3D scene is updated at time j.

[0168] refer to Figure 14The diagram shown is a schematic of a passage area restoration process provided by an embodiment of this application. When the target object disappears in the three-dimensional scene at time j, the server can execute step 114 to load the polygon as the outline, that is, to obtain the area layout parameters, use the polygon represented by the parameters as the outline, and then execute step 108 to generate the passage surface and step 109 to connect the passage surface, thereby obtaining the passage area corresponding to that time.

[0169] In summary, when the position of the target object changes at time j relative to time i, region restoration can be performed based on the pre-stored region layout parameters of the entire passable sub-region of the target block, reconstructing the passable sub-region of the target block at time j, thus achieving successful restoration of the passable sub-region. Furthermore, since the pre-stored parameters are the complete passable sub-region parameters corresponding to the target block, construction can be performed directly after obtaining these parameters. Relative to time i, the entire passable sub-region of the target block can be replaced without needing to operate on the passable update sub-region at time i, improving the efficiency of passable sub-region construction.

[0170] When the position of the target object changes at time j relative to time i, in order to reduce the amount of data stored while ensuring the smooth recovery of the passage sub-region, the server can store the target passage surface in the passage sub-region.

[0171] In one possible implementation, before removing the area to be removed from the access sub-region in step 404 to obtain the access update sub-region corresponding to the target block at time i, the method may further include step 601. After removing the area to be removed from the access sub-region in step 404 to obtain the access update sub-region corresponding to the target block at time i, the method may further include steps 602-604.

[0172] Step 601: Store the traffic surface layout parameters of the target traffic surface.

[0173] Since the region update process for the passage sub-region at time i mainly involves removing the target passage surface within the passage sub-region—that is, removing the area to be removed from the target passage surface—and the other passage surfaces in the passage sub-region remain unchanged before and after the update, the storage operation can be performed only on the target passage surface. In other words, the server can store the passage surface layout parameters of the target passage surface. These layout parameters can be understood as parameters related to the layout of the target passage surface, and may include the target passage surface's three-dimensional coordinates, etc.

[0174] Step 602: When the position of the target object in the 3D scene changes at time j relative to time i, obtain the passage layout parameters.

[0175] Since the target object is no longer in the same position as it was at time i at time j, the area occupied by the target object at time i, i.e., the area to be removed, has been released at time j. This means the game object can now move within this area, and it needs to be restored. Furthermore, since the area to be removed is a portion of the target passageway, the passageway layout parameters reflect the overall layout of the target passageway, including the layout of the area to be removed. Therefore, the server obtains the target passageway layout parameters at time j.

[0176] Step 603: Construct the target passage surface based on the passage surface layout parameters.

[0177] The server can reconstruct the target access surface based on the access surface layout parameters. This target access surface is the target access surface before the region update at time i.

[0178] Step 604: Based on the target access surface and the access update sub-region, determine the access sub-region corresponding to the target block at time j.

[0179] Since the target access surface is the access surface occupied by the target object at time i, and it is a complete access surface that has not been removed, the access update sub-region obtained after the update at time i contains other access surfaces that were not occupied by the target object at time i. Therefore, based on the target access surface and the access update sub-region, all access surfaces in the target block can be determined, and the access sub-region composed of all access surfaces can be used as the access sub-region of the target block at time j.

[0180] As an example, after the target object disappears at time j, the server can obtain the access surface layout parameters to restore the integrity of the target access surface, and then combine the target access surface with the other access surfaces included in the access update sub-region, excluding the target access surface, to obtain the access sub-region at time j.

[0181] In summary, when the position of the target object changes relative to time i at time j, only the layout parameters of the target passageway occupied by the target object need to be stored. There is no need to store the layout parameters of other passageways not affected by the target object, significantly reducing the amount of data stored and alleviating storage pressure. Furthermore, by combining this with the passageway update sub-region at time i, the integrity of the passageway sub-region can be restored.

[0182] If the target object moves continuously in the 3D scene, that is, moves from the first position at time i to the second position at time j, since the area where the second position is located is occupied by the target object, it is also necessary to remove the area to obtain the passable update sub-region at time j.

[0183] In one possible implementation, the target object is at a first position in the 3D scene at time i. The method may also include, when the target object changes from the first position to a second position at time j, taking time j as time i, and performing an operation to determine the target block in which the target object is located among multiple blocks in the 3D scene.

[0184] When a target object moves continuously in a 3D scene, its position changes over time. The target object is in different positions in the 3D scene at different times. The following is a comparison of two moments.

[0185] The first position is the location of the target object in the 3D scene at time i, and the second position is the location of the target object in the 3D scene at time j. The second position is different from the first position. When updating the passable sub-region from time i to time j, it can be assumed that the target object first disappears at the first position and then reappears at the second position. That is, when determining the passable sub-region corresponding to time j, we can first determine the passable sub-region when the target object is not located at the first position, and then perform the removal operation on the area to be removed at the second position based on this passable sub-region, thereby obtaining the final passable sub-region.

[0186] Therefore, when the server determines the passable sub-region corresponding to the target object at time j, this passable sub-region is the complete passable sub-region of the target block. This passable sub-region includes both the area where the first position is located and the area where the second position is located, meaning the game object can move to both the first and second positions.

[0187] Furthermore, for the case where the target object is located at the second position, it is necessary to perform the removal operation of the area to be removed. That is, the j-th moment can be taken as the i-th moment, and the operation of determining the target block where the target object is located in multiple blocks in the 3D scene, as well as subsequent operations such as determining the new target passage surface and the area to be removed, and removing the area to be removed to obtain the passage update sub-region at the j-th moment.

[0188] In summary, when determining the accessibility update sub-region at time j, for scenarios where the target object is continuously moving within a 3D scene, the original 3D scene without the target object needs to be restored to its integrity first. Then, based on the complete accessibility sub-region, local region removal operations are performed to obtain the accessibility update sub-region at time j. This ensures that the accessibility update sub-region matches the position of the target object at time j, improving the accuracy of determining the accessibility update sub-region corresponding to the continuously moving target object at each time step.

[0189] When a target object appears in a 3D scene, the game object is not necessarily completely unable to move within the area where the target object is located. For example, if the target object is a bridge, the game object may still be allowed to pass under the bridge. Therefore, in such cases, it is necessary to accurately determine the target block and the target passage surface affected by the target object.

[0190] In one possible implementation, step 401, when the target object appears in the 3D scene at time i, determines the target block where the target object is located among multiple blocks in the 3D scene, which may specifically include steps 4011-4012. Step 402: From the passable sub-region of the target block, determine the target passable surface that overlaps with the target object in the vertical direction of the ground plane, which may specifically include step 4026.

[0191] Step 4011: When a target object appears in the 3D scene at time i, determine that the target object belongs to the target type.

[0192] The target type can be a specific type used to identify a part of the target object, rather than the whole, that will obstruct the movement of the game object. As an example, the target type can be a bridge, a pavilion, etc. The area under the bridge can be used by the game object, while the bridge piers will obstruct it. The middle of the pavilion can be used by the game object, while the pillars of the pavilion will obstruct it.

[0193] Therefore, when a target object appears in the 3D scene at time i, it is necessary to determine whether the target object belongs to the target type, so as to distinguish between target objects that will hinder the movement of the game object as a whole and target objects that will only hinder the movement of the game object locally, so as to carry out targeted processing.

[0194] Step 4012: Determine the target block where the target part of the target object is located among multiple blocks in the 3D scene.

[0195] The target object has a target part, which is the portion of the target object that obstructs the movement of the game object. In other words, the specific part of the target object that hinders the movement of the game object is considered the target part. For example, when the target object is a bridge, the bridge piers are the target part; when the target object is a pavilion, the pillars are the target part.

[0196] The server can determine the target block containing the obstructing object in the entire 3D scene. For example, when the target object is a bridge, the entire bridge is located in three blocks: the two piers are each located in one block, and the bridge body is located in another block. Therefore, the target block is the block containing the two piers.

[0197] Step 4026: From the passage sub-region located in the target block, determine the target passage surface that overlaps with the target portion in the vertical direction of the ground plane.

[0198] There are multiple passageways in the passageway sub-region of the target block. When determining the target passageway, the server can determine which passageway the target part of the target object is located in, and define the passageway where the target part is located as the target passageway, thereby clarifying the specific passageway where the target part that is obstructing movement is located.

[0199] As an example, when the target object is a bridge, the target block where the bridge pier is located has multiple access surfaces, and the access surface where the bridge pier is located is taken as the target access surface.

[0200] In this way, for target objects where only a local portion (i.e., the target area) affects the movement of game objects, using the target area as the basis for filtering target blocks and target passageways, rather than the entire target object, avoids filtering out blocks and passageways that do not obstruct movement, thus improving the accuracy of target blocks and target passageways. Furthermore, when subsequently determining the areas to be removed based on the target passageway where the target area is located, the areas to be removed will be more relevant to the target area, better reflecting its influence, thereby improving the accuracy of passageway update sub-regions.

[0201] After determining the passable update sub-region at time i, path planning can be performed for the game object in the 3D scene, that is, the pathfinding trajectory of the game object can be updated accordingly.

[0202] In one possible implementation, a pathfinding trajectory for the game object is also generated in the 3D scene. The pathfinding trajectory is generated before time i and passes through the passable sub-region of the target block. It may also include updating the path of the pathfinding trajectory according to the passable update sub-region when the passable update sub-region corresponding to the target block is obtained.

[0203] In a 3D scene, there are pathfinding paths for game objects. These paths guide the game objects' movement within the 3D scene, helping them avoid target objects. In other words, game objects can move according to the pathfinding path. For example, the pathfinding path can be the optimal path between two locations, allowing the game object to quickly and easily move from one location to another.

[0204] The pathfinding trajectory can be pre-generated before the target object appears, meaning it has been generated before time i, for example, before the game runs. Specifically, the pathfinding trajectory is a path within a passable area, and a portion of the pathfinding trajectory lies within a passable sub-area of ​​the target chunk. In other words, the pathfinding trajectory not only traverses the passable area but also passes through a passable sub-area of ​​the target chunk.

[0205] For the target block, after updating the passable sub-region at time i to obtain the passable updated sub-region, the pathfinding trajectory originally located in the passable sub-region will be incorrect due to the presence of the target object, causing the game object to be blocked from passing by the target object. Therefore, after obtaining the passable updated sub-region, the pathfinding trajectory also needs to be updated in a timely manner.

[0206] When the passable updated sub-region is obtained at time i, if the game object has not yet moved to the target block under the guidance of the original pathfinding trajectory, then the part of the pathfinding trajectory located in the target block needs to be updated. If the game object has already passed through the target block, then there is no need to update the pathfinding trajectory.

[0207] In short, if a game object has not yet reached the target block, the pathfinding trajectory can be updated based on the latest accessibility update sub-region of the target block. This ensures that the pathfinding trajectory within the target block matches the latest accessibility update sub-region, allowing the game object to bypass the target object and pass through normally when moving to the target block. In other words, the pathfinding trajectory of the game object can be updated accordingly as the target object appears in real-time in the 3D scene, ensuring the correctness of the pathfinding trajectory at all times and preventing collisions between the game object and the target object.

[0208] The following is a general description of the method for determining the access area provided in this application.

[0209] The 3D scene contains numerous virtual objects, and game objects can move within this scene. During application execution, virtual objects—target objects—frequently appear in the 3D scene that obstruct the movement of game objects. To ensure that game objects can move normally, the traversable areas within the 3D scene that allow movement of game objects need to be updated in a timely manner. The following explanation uses the appearance of a target object in the 3D scene at time i as an example.

[0210] The server can determine the target block containing the target object from multiple blocks in the 3D scene, thus initially clarifying the target object's influence range. The passable area is divided into multiple passable surfaces. Passable areas within the target block are denoted as passable sub-regions, and these sub-regions also contain passable surfaces. The server can determine the target passable surfaces that overlap with the target object in the vertical direction of the ground plane from the passable sub-regions of the target block, thereby further clarifying the specific passable surfaces affected by the target object. In determining the target passable surfaces, one method is to use the bounding box of the target object to identify the passable surfaces overlapping with the bounding box as target passable surfaces. Another method is to use the projected outline of the target object on the ground plane, determine the projection surface based on the projection outline, and identify the passable surfaces overlapping with the projection surface as target passable surfaces. Furthermore, for target objects of the target type, the target block is the block containing the target portion of the target object that obstructs the movement of the game object, and the target passable surface is the passable surface containing the target portion.

[0211] The server can determine the area to be removed, identifying the obstruction caused by the target object, based on the target access surface. One approach is to directly use the target access surface as the area to be removed, subsequently removing the entire target access surface. Another approach is to identify the overlapping portion within the target access surface that overlaps with the target object, using this overlapping portion as the area to be removed, i.e., removing a portion of the target access surface. To achieve both low computational cost and high accuracy, the target access surface can be determined first using bounding boxes, and then the overlapping portion within the target access surface can be determined based on the projected contour. Furthermore, to prevent game objects and target objects from penetrating each other, the server can enlarge the projected contour according to its shape to meet collision accuracy requirements, defining the area covered by the enlarged projected contour as the projection surface.

[0212] The server can remove the area to be removed from the passable sub-region to obtain the passable updated sub-region corresponding to the target block at time i. This improves the efficiency of determining the passable region, reduces time consumption, and enables real-time response to the appearance of the target object, avoiding issues such as game lag. During the process of obtaining the passable updated sub-region, for the non-overlapping parts of the target passable surface to be retained, if their shape is a concave polygon, they need to be divided into multiple convex polygons to obtain the passable updated sub-region; if their shape is a convex polygon, they can be directly used as the passable updated sub-region. Furthermore, when there is a pathfinding trajectory in the 3D scene, the server can also update the pathfinding trajectory based on the passable updated sub-region to obtain the pathfinding trajectory at the current time, ensuring that game objects can pass normally according to the updated pathfinding trajectory.

[0213] If the target object's position in the 3D scene changes at time j relative to time i, the pre-stored region layout parameters of the access sub-region or the access surface layout parameters of the target access surface can be obtained. The access sub-region is then reconstructed based on the region layout parameters, or the target access surface is constructed based on the access surface layout parameters. Finally, the access sub-region is determined based on the target access surface and the updated access sub-region. If the target object changes from its first position to its second position at either of these two times, time j can be taken as the new time i, and the process continues from the step of determining the target block where the target object is located, thereby determining the updated access sub-region at time j.

[0214] This application also provides a passage area determination device, referencing... Figure 15 As shown, the passage area determination device 1500 includes:

[0215] The first determining unit 1501 is used to determine the target block where the target object is located in a plurality of blocks in the three-dimensional scene when the target object appears in the three-dimensional scene at time i. The plurality of blocks are used to identify the ground plane of the three-dimensional scene. The passable area in the three-dimensional scene that allows the game object to move is divided into a plurality of passable surfaces. The target object is a virtual object that obstructs the movement of the game object.

[0216] The second determining unit 1502 is used to determine, from the passage sub-region of the target block, a target passage surface that overlaps with the target object in the vertical direction of the ground plane, wherein the passage sub-region is the passage area located in the target block;

[0217] The third determining unit 1503 is used to determine, based on the target passage surface, the area to be removed that is blocked by the target object;

[0218] The removal unit 1504 is used to remove the area to be removed from the passage sub-region to obtain the passage update sub-region corresponding to the target block at the i-th time.

[0219] Optionally, the second determining unit is configured to:

[0220] Determine the bounding box of the target object, the bounding box being used to identify the collision range of the target object;

[0221] From the passage sub-region of the target block, determine the target passage surface that overlaps with the bounding box in the vertical direction of the ground plane.

[0222] Optionally, the second determining unit is configured to:

[0223] Determine the projected outline of the target object within the ground plane;

[0224] The projection surface of the target object is determined based on the projection contour;

[0225] From the passage sub-region of the target block, determine the target passage surface that overlaps with the projection surface in the vertical direction of the ground plane.

[0226] Optionally, the third determining unit is configured to:

[0227] Determine the overlapping portion of the target passageway in the vertical direction that overlaps with the target object;

[0228] The overlapping portion is identified as the area to be removed.

[0229] Optionally, when determining the target passageway overlapping with the bounding box; the third determining unit is configured to:

[0230] Determine the projected outline of the target object within the ground plane;

[0231] The projection surface of the target object is determined based on the projection contour;

[0232] Determine the overlapping portion where the projection plane and the target passageway overlap in the vertical direction.

[0233] Optionally, the third determining unit is configured to:

[0234] Based on the shape of the projection contour, the projection contour is expanded outward to meet the collision accuracy requirements, and the area covered by the expanded projection contour is determined as the projection surface.

[0235] Optionally, the third determining unit is configured to:

[0236] The target passageway is designated as the area to be removed.

[0237] Optionally, the removal unit is used for:

[0238] Determine the portion of the target passageway that does not belong to the overlapping portion and needs to be retained;

[0239] In response to the fact that the shape of the part to be retained is a concave polygon, the part to be retained is divided into multiple convex polygons, and the resulting convex polygons are merged into the passage update sub-region;

[0240] In response to the fact that the shape of the portion to be retained is a convex polygon, the portion to be retained is merged into the passage update sub-region.

[0241] Optionally, the device further includes:

[0242] The first storage unit is used to store the area layout parameters of the passage sub-area;

[0243] The first acquisition unit is used to acquire the region layout parameters when the position of the target object in the three-dimensional scene changes at time j relative to time i.

[0244] The first construction unit is used to construct the passage sub-region corresponding to the target object at the j-th time based on the region layout parameters.

[0245] Optionally, the device further includes:

[0246] The second storage unit is used to store the traffic surface layout parameters of the target traffic surface;

[0247] The second acquisition unit is used to acquire the passage surface layout parameters when the position of the target object in the three-dimensional scene changes at time j relative to time i.

[0248] The second construction unit is used to construct the target passageway based on the passageway layout parameters;

[0249] The fourth determining unit is used to determine the passage sub-region corresponding to the target block at the j-th time based on the target passage surface and the passage update sub-region.

[0250] Optionally, the target object is located at a first position in the three-dimensional scene at the i-th time, and the device further includes:

[0251] The update unit is configured to, when the target object changes from the first position to the second position at time j, take time j as time i, and perform the operation of determining the target block in which the target object is located among multiple blocks in the three-dimensional scene.

[0252] Optionally, when a target object appears in the 3D scene at time i, the first determining unit is configured to:

[0253] When the target object appears in the three-dimensional scene at the i-th time, it is determined that the target object belongs to the target type;

[0254] Determine the target block where the target portion of the target object is located within the plurality of blocks in the three-dimensional scene; the target portion is the part of the target object that obstructs the movement of the game object.

[0255] The second determining unit is used for:

[0256] From the passage sub-region located in the target block, determine the target passage surface that overlaps with the target portion in the vertical direction of the ground plane.

[0257] Optionally, a pathfinding trajectory for the game object is also generated in the three-dimensional scene. The pathfinding trajectory is generated before the i-th time point, and the pathfinding trajectory passes through the passable sub-region of the target block. The device further includes:

[0258] The path update unit is used to update the path of the navigation trajectory according to the access update sub-region when the target block is obtained and the game object has not yet moved to the target block under the guidance of the pathfinding trajectory.

[0259] This application also provides a computer device, which is the computer device described above, and may include a terminal device or a server. The aforementioned access area determination device may be configured in this computer device. The computer device will now be described in conjunction with the accompanying drawings.

[0260] If the computer device is a terminal device, please refer to Figure 16 As shown, this application provides a terminal device, taking a mobile phone as an example:

[0261] Figure 16 This diagram illustrates a partial structural representation of a mobile phone related to the terminal device provided in this embodiment. (Reference) Figure 16 The mobile phone includes components such as a radio frequency (RF) circuit 1410, a memory 1420, an input unit 1430, a display unit 1440, a sensor 1450, an audio circuit 1460, a Wi-Fi module 1470, a processor 1480, and a power supply 1490. Those skilled in the art will understand that... Figure 16 The mobile phone structure shown does not constitute a limitation on the mobile phone and may include more or fewer components than shown, or combine certain components, or have different component arrangements.

[0262] The following is combined Figure 16 A detailed introduction to each component of a mobile phone:

[0263] The RF circuit 1410 can be used to receive and transmit signals during information transmission or calls. In particular, it receives downlink information from the base station and processes it with the processor 1480; in addition, it transmits uplink data to the base station.

[0264] The memory 1420 can be used to store software programs and modules. The processor 1480 executes various mobile phone functions and data processing by running the software programs and modules stored in the memory 1420. The memory 1420 may mainly include a program storage area and a data storage area. The program storage area may store the operating system, at least one application program required for a function (such as sound playback function, image playback function, etc.), etc.; the data storage area may store data created according to the use of the mobile phone (such as audio data, phonebook, etc.). In addition, the memory 1420 may include high-speed random access memory, and may also include non-volatile memory, such as at least one disk storage device, flash memory device, or other volatile solid-state storage device.

[0265] The input unit 1430 can be used to receive input numeric or character information, and to generate key signal inputs related to user settings and function control of the mobile phone. Specifically, the input unit 1430 may include a touch panel 1431 and other input devices 1432.

[0266] The display unit 1440 can be used to display information input by the user or information provided to the user, as well as various menus of the mobile phone. The display unit 1440 may include a display panel 1441.

[0267] The mobile phone may also include at least one sensor 1450, such as a light sensor, a motion sensor, and other sensors.

[0268] Audio circuitry 1460, speaker 1461, and microphone 1462 provide an audio interface between the user and the mobile phone.

[0269] WiFi is a short-range wireless transmission technology. Through the WiFi module 1470, mobile phones can help users send and receive emails, browse web pages, and access streaming media, providing users with wireless broadband internet access.

[0270] The processor 1480 is the control center of the mobile phone. It connects to various parts of the mobile phone through various interfaces and lines. It performs various functions of the mobile phone and processes data by running or executing software programs and / or modules stored in the memory 1420 and calling data stored in the memory 1420.

[0271] The mobile phone also includes a power supply 1490 (such as a battery) that powers the various components.

[0272] In this embodiment, the processor 1480 included in the terminal device is also used to execute a method for determining a passage area.

[0273] If the computer device is a server, this application embodiment also provides a server; please refer to [link to relevant documentation]. Figure 17 As shown, Figure 17 This is a structural diagram of a server 1500 provided in an embodiment of this application. The server 1500 can vary significantly due to different configurations or performance. It may include one or more processors, such as a Central Processing Unit (CPU), and a memory 1532, and one or more storage media 1530 (e.g., one or more mass storage devices) for storing application programs 1542 or data 1544. The memory 1532 and storage media 1530 can be temporary or persistent storage. The program stored in the storage media 1530 may include one or more modules (not shown in the diagram), each module including a series of instruction operations on the server. Furthermore, the CPU 1522 may be configured to communicate with the storage media 1530 and execute the series of instruction operations stored in the storage media 1530 on the server 1500.

[0274] Server 1500 may also include one or more power supplies 1526, one or more wired or wireless network interfaces 1550, one or more input / output interfaces 1558, and / or one or more operating systems 1541, such as Windows Server. TM Mac OS X TM Unix TM Linux TM FreeBSD TM etc.

[0275] The steps performed by the server in the above embodiments can be based on Figure 17 The server structure shown.

[0276] In addition, this application embodiment also provides a storage medium for storing a computer program for executing the method provided in the above embodiment.

[0277] This application also provides a computer program product including a computer program, which, when run on a computer device, causes the computer device to perform the method provided in the above embodiments.

[0278] Those skilled in the art will understand that all or part of the steps of the above method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it performs the steps of the above method embodiments. The aforementioned storage medium can be at least one of the following media: read-only memory (ROM), RAM, magnetic disk or optical disk, and other media that can store computer programs.

[0279] In this application embodiment, the terms "module" or "unit" refer to a computer program or part of a computer program that has a predetermined function and works with other related parts to achieve a predetermined goal, and can be implemented wholly or partially using software, hardware (such as processing circuitry or memory), or a combination thereof. Similarly, a processor (or multiple processors or memory) can be used to implement one or more modules or units. Furthermore, each module or unit can be part of an overall module or unit that includes the functionality of that module or unit.

[0280] It should be noted that the various embodiments in this specification are described in a progressive manner, and the same or similar parts between the various embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, for the device and system embodiments, since they are basically similar to the method embodiments, the description is relatively simple, and the relevant parts can be referred to the description of the method embodiments. The device and system embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of the solution in this embodiment according to actual needs. Those skilled in the art can understand and implement this without creative effort.

[0281] The above description is merely one specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the technical scope disclosed in this application should be included within the scope of protection of this application. Moreover, based on the implementation methods provided in the above aspects, this application can be further combined to provide more implementation methods. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A method for determining a passage area, characterized in that, The method includes: When a target object appears in the three-dimensional scene at time i, the target block where the target object is located is determined among multiple blocks in the three-dimensional scene. The multiple blocks are used to identify the ground plane of the three-dimensional scene. The passable area in the three-dimensional scene that allows the game object to move is divided into multiple passable surfaces. The target object is a virtual object that obstructs the movement of the game object. From the access sub-region of the target block, determine the target access surface that overlaps with the target object in the vertical direction of the ground plane, wherein the access sub-region is the access area located in the target block; Based on the target passageway, a region to be removed that is obstructed by the target object is determined; The area to be removed is removed from the passage sub-region to obtain the passage update sub-region corresponding to the target block at the i-th time.

2. The method according to claim 1, characterized in that, Determining, from the passage sub-region of the target block, a target passage surface that overlaps with the target object in the vertical direction of the ground plane includes: Determine the bounding box of the target object, the bounding box being used to identify the collision range of the target object; From the passage sub-region of the target block, determine the target passage surface that overlaps with the bounding box in the vertical direction of the ground plane.

3. The method according to claim 1, characterized in that, Determining, from the passage sub-region of the target block, a target passage surface that overlaps with the target object in the vertical direction of the ground plane includes: Determine the projected outline of the target object within the ground plane; The projection surface of the target object is determined based on the projection contour; From the passage sub-region of the target block, determine the target passage surface that overlaps with the projection surface in the vertical direction of the ground plane.

4. The method according to any one of claims 1-3, characterized in that, Determining areas to be removed that are obstructed by the target object based on the target passage surface includes: Determine the overlapping portion of the target passageway in the vertical direction that overlaps with the target object; The overlapping portion is identified as the area to be removed.

5. The method according to claim 4, characterized in that, When determining the target passageway that overlaps with the bounding box; Determining the overlapping portion of the target object and the target passageway in the vertical direction includes: Determine the projected outline of the target object within the ground plane; The projection surface of the target object is determined based on the projection contour; Determine the overlapping portion where the projection plane and the target passageway overlap in the vertical direction.

6. The method according to claim 5, characterized in that, Determining the projection surface of the target object based on the projection contour includes: Based on the shape of the projection contour, the projection contour is expanded outward to meet the collision accuracy requirements, and the area covered by the expanded projection contour is determined as the projection surface.

7. The method according to any one of claims 1-3, characterized in that, Determining areas to be removed that are obstructed by the target object based on the target passage surface includes: The target passageway is designated as the area to be removed.

8. The method according to claim 4, characterized in that, The step of obtaining the access update sub-region corresponding to the target block at the i-th time includes: Identify the portion of the target passageway that does not belong to the overlapping portion and needs to be retained; In response to the fact that the shape of the part to be retained is a concave polygon, the part to be retained is divided into multiple convex polygons, and the resulting convex polygons are merged into the passage update sub-region; In response to the fact that the shape of the portion to be retained is a convex polygon, the portion to be retained is merged into the passage update sub-region.

9. The method according to claim 1, characterized in that, Before removing the region to be removed from the access sub-region to obtain the access update sub-region corresponding to the target block at the i-th time, the method further includes: Store the area layout parameters of the passage sub-region; After removing the area to be removed from the access sub-region to obtain the access update sub-region corresponding to the target block at the i-th time, the method further includes: When the position of the target object in the three-dimensional scene changes at time j relative to time i, the region layout parameters are obtained. Based on the regional layout parameters, the passage sub-region corresponding to the target object at time j is constructed.

10. The method according to claim 1, characterized in that, Before removing the region to be removed from the access sub-region to obtain the access update sub-region corresponding to the target block at the i-th time, the method further includes: The traffic surface layout parameters of the target traffic surface are stored; After removing the area to be removed from the access sub-region to obtain the access update sub-region corresponding to the target block at the i-th time, the method further includes: When the position of the target object changes in the three-dimensional scene at time j relative to time i, the passage surface layout parameters are obtained. The target passageway is constructed based on the passageway layout parameters; Based on the target access surface and the access update sub-region, the access sub-region corresponding to the target block at time j is determined.

11. The method according to claim 9 or 10, characterized in that, The target object is at a first position in the three-dimensional scene at the i-th time, and the method further includes: When the target object changes from the first position to the second position at time j, the time j is taken as the time i, and the operation of determining the target block where the target object is located in the multiple blocks of the three-dimensional scene is performed.

12. The method according to claim 1, characterized in that, When a target object appears in the 3D scene at time i, the target block where the target object is located among multiple blocks in the 3D scene is determined, including: When the target object appears in the three-dimensional scene at the i-th time, it is determined that the target object belongs to the target type; Determine the target block where the target portion of the target object is located within the plurality of blocks in the three-dimensional scene; the target portion is the part of the target object that obstructs the movement of the game object. From the passage sub-region of the target block, determine the target passage surface that overlaps with the target object in the vertical direction of the ground plane, including: From the passage sub-region located in the target block, determine the target passage surface that overlaps with the target portion in the vertical direction of the ground plane.

13. The method according to claim 1, characterized in that, In the 3D scene, a pathfinding trajectory for the game object is also generated. The pathfinding trajectory is generated before the i-th time point, and the pathfinding trajectory passes through the passable sub-region of the target block. The method further includes: When the access update sub-region corresponding to the target block at the i-th time is obtained, if the game object has not yet moved to the target block under the guidance of the pathfinding trajectory, the pathfinding trajectory is updated according to the access update sub-region.

14. A device for determining a passage area, characterized in that, The device includes: The first determining unit is used to determine the target block where the target object is located in a plurality of blocks in the three-dimensional scene when the target object appears in the three-dimensional scene at time i. The plurality of blocks are used to identify the ground plane of the three-dimensional scene. The passable area in the three-dimensional scene that allows the game object to move is divided into a plurality of passable surfaces. The target object is a virtual object that obstructs the movement of the game object. The second determining unit is used to determine, from the passage sub-region of the target block, a target passage surface that overlaps with the target object in the vertical direction of the ground plane, wherein the passage sub-region is the passage area located in the target block; The third determining unit is used to determine, based on the target passageway, the area to be removed that is obstructed by the target object; The removal unit is used to remove the area to be removed from the passage sub-region to obtain the passage update sub-region corresponding to the target block at the i-th time.

15. A computer device, characterized in that, The computer device includes a processor and memory: The memory is used to store computer programs and to transfer the computer programs to the processor; The processor is configured to perform the method according to any one of claims 1-13 according to the computer program.

16. A computer-readable storage medium, characterized in that, The computer-readable storage medium is used to store a computer program that, when executed by a computer device, performs the method described in any one of claims 1-13.

17. A computer program product comprising a computer program, which, when run on a computer device, causes the computer device to perform the method of any one of claims 1-13.