WO2024239286A1 - 细胞轮廓渲染方法、装置及系统 - Google Patents
细胞轮廓渲染方法、装置及系统 Download PDFInfo
- Publication number
- WO2024239286A1 WO2024239286A1 PCT/CN2023/096112 CN2023096112W WO2024239286A1 WO 2024239286 A1 WO2024239286 A1 WO 2024239286A1 CN 2023096112 W CN2023096112 W CN 2023096112W WO 2024239286 A1 WO2024239286 A1 WO 2024239286A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- cell
- data
- rendering
- fineness
- rendered
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—Three-dimensional [3D] image rendering
Definitions
- the present disclosure relates to the field of data processing technology, and in particular to a method, device and system for rendering cell outlines.
- the present disclosure proposes a cell outline rendering method, device and system, which use multi-layer precision rendering, can switch rendering performances of different precisions according to user settings, and use vertex index drawing after block division. All precision data of the blocks are compressed in the same file, with a high compression rate, faster network request rendering file, and less computer running memory and GPU video memory occupied during rendering. Therefore, it can be adapted to a variety of machine configurations, with better rendering effects and better user experience.
- a first aspect embodiment of the present disclosure provides a method for rendering a cell contour, the method comprising: acquiring sliced cell data, processing the sliced cell data in blocks, and generating block data; based on the sliced cell data, performing segmentation processing and/or surface reduction processing on the contour points of the cells in the slice, and generating vertex index data with multiple layers of precision; writing the vertex index data with multiple layers of precision into the corresponding block data, and generating data to be rendered with multiple layers of precision; and rendering the cell contour according to the data to be rendered.
- sliced cell data is obtained, and the sliced cell data is processed into blocks to generate block data, including: determining the upper and lower boundaries of the position of the cells in the slice to obtain a bounding box; dividing the bounding box according to the width and height of the bounding box and the expected threshold of the number of cells in the block to obtain different blocks; reading the center point position of the cells in the slice, determining the block where the cells are located according to the center point position of the cells, and generating block data.
- the contour points of the cells in the slice are subjected to a segmentation process and/or a surface reduction process to generate vertex index data of multiple layers of fineness, including: based on the sliced cell data, the contour points of the cells in the slice are subjected to a segmentation process to obtain vertex index data of a first layer of fineness; the contour points of the first layer of fineness are subjected to a surface reduction process and a segmentation process to obtain vertex index data of a second layer of fineness, wherein the number of cell contour points of the second layer of fineness is less than the number of cell contour points of the first layer of fineness; the contour points of the second layer of fineness are subjected to a surface reduction process and a segmentation process to obtain vertex index data of a third layer of fineness, wherein the number of cell contour points of the third layer of fineness is less than the number of cell contour points of the second layer of fineness.
- the method further includes: generating data at a fourth level of fineness, wherein the number of cell contour points at the fourth level of fineness is less than the number of cell contour points at the third level of fineness.
- the method further includes: when the number of contour points of the cells in the slice exceeds the number of contour points of the first level of fineness, splitting the cells.
- an earcut triangulation algorithm is used for triangulation processing.
- an effective area-retaining algorithm is used to perform surface reduction processing.
- generating data to be rendered at multiple levels of precision includes: compressing vertex indices at multiple levels of precision and their corresponding block data into an instantiation array to obtain data to be rendered at multiple levels of precision.
- rendering cell outlines according to the data to be rendered includes: determining rendering fineness according to the size of the blocks to be rendered and the set contour vertex density, and rendering cell outlines according to the rendering fineness for the data to be rendered.
- determining the rendering fineness based on the size of the block to be rendered and the set contour point density includes: when the size of the block to be rendered remains unchanged, determining the rendering fineness based on the set contour point density, or when the set contour point density remains unchanged, determining the rendering accuracy based on the size of the block to be rendered.
- rendering cell contours of the data to be rendered according to the rendering fineness includes: drawing cell contours of a first layer of fineness based on the data to be rendered at a first layer of fineness, or drawing cell contours of a second layer of fineness based on the data to be rendered at a second layer of fineness, or drawing cell contours of a third layer of fineness based on the data to be rendered at a third layer of fineness.
- the method further includes: determining blocks within a visible range based on a viewing cone, and rendering cell outlines for the blocks within the visible range.
- the method further includes: sorting the cells in the block according to their area sizes, and rendering starting from the cell with the largest area.
- the second aspect of the present disclosure provides a cell contour rendering device, which includes: a blocking module, which is used to obtain slice cell data, block the slice cell data, and generate block data; a processing module, which is used to perform segmentation processing and/or surface reduction processing on the contour points of the cells in the slice based on the slice cell data, and generate vertex index data with multiple layers of precision; a generation module, which is used to write the vertex index data with multiple layers of precision into the corresponding block data, and generate data to be rendered with multiple layers of precision; a rendering module, which is used to determine the rendering precision according to the size of the block to be rendered and the set contour point density, and render the cell contour of the data to be rendered according to the rendering precision.
- a blocking module which is used to obtain slice cell data, block the slice cell data, and generate block data
- a processing module which is used to perform segmentation processing and/or surface reduction processing on the contour points of the cells in the slice based on the slice cell data, and generate vertex index data with multiple layers of precision
- An embodiment of the third aspect of the present disclosure provides an electronic device, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute the method described in the embodiment of the first aspect of the present disclosure.
- the fourth aspect embodiment of the present disclosure provides a computer storage medium, wherein the computer storage medium stores computer executable instructions; after the computer executable instructions are executed by a processor, the method described in the first aspect or the second aspect embodiment of the present disclosure can be implemented.
- the fifth aspect embodiment of the present disclosure provides a computer program product, including a computer program, which implements the method described in the first aspect embodiment of the present disclosure when executed by a processor.
- the sixth aspect embodiment of the present disclosure provides a chip, including one or more interface circuits and one or more processors; the interface circuit is used to receive signals from a memory of an electronic device and send signals to the processor, the signals include computer instructions stored in the memory, and when the processor executes the computer instructions, the electronic device executes the method described in the first aspect embodiment of the present disclosure.
- sliced cell data is obtained, the sliced cell data is processed in blocks to generate block data; based on the sliced cell data, the contour points of the cells in the slice are processed by segmentation and/or face reduction to generate vertex index data with multiple layers of precision; the vertex index data with multiple layers of precision are written into the corresponding block data to generate data to be rendered with multiple layers of precision; cell contours are rendered according to the data to be rendered.
- the present invention uses multi-layer precision rendering, which can switch rendering performances of different precisions according to user settings, and uses vertex index drawing after block division.
- All precision data of the blocks are compressed into the same instantiated array, with a high compression rate, faster network request rendering files, and less computer running memory and GPU video memory occupied during rendering. Therefore, it can be adapted to a variety of machine configurations, with better rendering effects and better user experience.
- FIG1 is a schematic diagram of a flow chart of a cell outline rendering method according to an embodiment of the present disclosure
- FIG2 is a schematic diagram of a flow chart of a cell outline rendering method according to an embodiment of the present disclosure
- FIG3 is a schematic diagram of a cell outline rendering method according to an embodiment of the present disclosure.
- FIG4 is a schematic diagram of sliced cell data according to an embodiment of the present disclosure.
- FIG5 is a schematic diagram of generating a block file according to an embodiment of the present disclosure.
- FIG6 is a schematic diagram of a cell contour offset coordinate according to an embodiment of the present disclosure.
- FIG. 7 is a schematic diagram of a first-level fineness triangulation grid according to an embodiment of the present disclosure.
- FIG. 8 is a schematic diagram of a second-level fineness triangulation grid according to an embodiment of the present disclosure.
- FIG. 9 is a schematic diagram of a third-level fineness triangulation grid according to an embodiment of the present disclosure.
- FIG. 10 is a schematic diagram of a data structure for writing a file according to an embodiment of the present disclosure.
- FIG11 is a schematic diagram showing the effect of a cell outline rendering method according to an embodiment of the present disclosure.
- FIG12 is a schematic diagram showing the effect of a cell outline rendering method according to an embodiment of the present disclosure.
- FIG13 is a schematic diagram showing the effect of a cell outline rendering method according to an embodiment of the present disclosure.
- FIG14 is a schematic diagram showing the effect of a cell outline rendering method according to an embodiment of the present disclosure.
- FIG15 is a schematic diagram showing the effect of a cell outline rendering method according to an embodiment of the present disclosure.
- FIG16 is a schematic diagram showing the effect of a cell outline rendering method according to an embodiment of the present disclosure.
- FIG17 is a schematic diagram showing the effect of a cell outline rendering method according to an embodiment of the present disclosure.
- FIG18 is a schematic block diagram of a cell outline rendering device according to an embodiment of the present disclosure.
- FIG. 19 is a schematic diagram of the structure of an electronic device according to an embodiment of the present disclosure.
- LOD Level of Detail
- Each block of fineness needs to generate corresponding rendering data separately.
- the visibility of different blocks is directly switched according to the projection size of the block on the screen to switch the fineness.
- each block of fineness needs to generate corresponding rendering data separately, the file size is large, the server storage pressure is large, the server storage space will be filled up faster, and the large amount of data requested during rendering will result in slow loading speed.
- data of each fineness needs to be transferred to the GPU, resulting in a large amount of video memory usage. As the slice size increases and the number of cells increases, the video memory of the rendering machine will be filled up faster.
- the high-precision data is rendered using vertex indexes
- the low-precision data is rendered using instanced rendering.
- the cell shape of instanced rendering is a polygon obtained by rotating and stretching a fixed polygon.
- the rendering effect of low-precision cell outlines is poor, and the switching between the two levels of precision is abrupt.
- the coarsest level of precision still occupies a large amount of rendering resources, and the rendering frame rate decreases when the number of cells in the field of view is large.
- the present disclosure proposes a method, device and system for cell contour rendering and collection, which use multi-layer precision rendering.
- the user scales the cell size, the user has a weak perception of switching precision, and uses vertex index drawing after block division. All the precision data of the block are compressed in the same instantiated array, with a high compression rate.
- the network request for rendering files is faster, and the computer running memory and GPU video memory occupied during rendering are small.
- the rendering performance can be switched according to user settings, and it is compatible with a variety of machine configurations.
- Fig. 1 shows a schematic flow chart of a cell outline rendering method according to an embodiment of the present disclosure. As shown in Fig. 1, the method may include the following steps.
- slice cell data refers to relevant data of all cells in a slice, including at least cell center point, x, y coordinates, cell area, cell contour point offset, and may also include other data depending on the specific implementation method, which is not limited by the present disclosure.
- the slice is segmented to generate blocks according to preset block information, including block size and block grid information such as a 4x4 shape.
- the block where the cell is located is determined according to the position of the cell center point in the slice, and then the cell data is written into the corresponding block to obtain the block data.
- the specific block method and block information are not limited by the present disclosure.
- the sliced cell data is processed in blocks, and the obtained block data is submitted to the GPU for rendering at one time, thereby improving the overall efficiency of logic lines and rendering lines by reducing the number of times the CPU sends rendering commands to the GPU and reducing the number of times the GPU switches rendering states.
- a high level of fineness means a large number of contour points and more cell details are rendered, while a low level of fineness means a small number of contour points and fewer cell details are rendered.
- the offset coordinates of the cell contour point relative to the cell center point can be obtained based on the cell center point, x, y coordinates, and cell contour point offset in the sliced cell data.
- the contour points of the cells in the slices are subjected to segmentation processing and/or surface reduction processing to obtain vertex index data of multiple levels of precision, including at least two levels of precision.
- the embodiments of the present disclosure are based on the WebGL drawing protocol, the basic mesh of the object is a triangular face, and triangulation is performed according to the offset coordinates of the contour points to obtain the vertex index after triangulation, which can be implemented specifically by the earcut triangulation algorithm.
- the cell contour points are subjected to face reduction processing, and some cell contour points can be eliminated, leaving a smaller number of cell contour fixed points.
- the effective area retention (Visvalingam-Whyatt) algorithm can be used to implement it.
- each triangle can be obtained by triangulating the contour points of the cells in the slice, and each triangle requires three vertex indexes, for a total of 42 vertex indexes.
- the 16 vertices are subjected to face reduction processing, 8 of which are eliminated, and the remaining 8 vertices are subjected to triangulation, and 18 vertex indexes can be obtained. Therefore, the above-mentioned vertex index data of two levels of precision have been obtained, and further triangulation processing and/or face reduction processing can also generate vertex index data of more levels of precision, which can be implemented according to actual conditions, and the present disclosure is not limited thereto.
- the block corresponding to each cell can be found according to step S101, and the block can be numbered.
- step S102 each cell data is bundled with the corresponding block number.
- vertex index data of multiple layers of precision can be written into the corresponding block data.
- Other marking methods can also be used, which is not limited by the present disclosure.
- the data to be rendered includes the position of the cell center point, the offset coordinates of the contour points, the vertex index data of multiple levels of precision, and the like.
- each cell uses instanced rendering. Before rendering, the cell center point position, contour point offset coordinates, vertex index data of multiple layers of precision, etc. are compressed into an instanced array and stored in the video memory as data to be rendered.
- This paper compresses the vertex index data of multiple layers of precision into an instanced array and stores it in the video memory.
- the compression rate is high, the network request rendering file is faster, and when rendering, the computer running memory and GPU video memory are occupied less.
- frustum culling is performed before rendering, and blocks within the field of view are calculated based on the frustum, and only blocks within the visible area are submitted to the GPU for rendering.
- rendering a cell outline according to the data to be rendered includes: drawing a cell outline image according to the generated vertex index data of multiple levels of precision, and multiple levels of precision images can be generated for one cell outline.
- cells are sorted according to their area, with larger cells placed in front, and rendering starts from the cells with the largest area.
- rendering starts from the cells with the largest area.
- rendering cell outlines according to the data to be rendered includes: determining rendering fineness according to the size of the blocks to be rendered and the set contour vertex density, and rendering cell outlines according to the rendering fineness for the data to be rendered.
- the level of precision when switching rendering can be controlled according to the size of the block in the field of view and the density of the contour points set by the user.
- sliced cell data is obtained, the sliced cell data is processed in blocks to generate block data; based on the sliced cell data, the contour points of the cells in the slice are processed by segmentation and/or face reduction to generate vertex index data with multiple layers of precision; the vertex index data with multiple layers of precision are written into the corresponding block data to generate data to be rendered with multiple layers of precision; and the cell contour is rendered according to the data to be rendered.
- multi-layer precision rendering has a weak perception of switching precision when the user scales the cell size, and vertex index drawing is used after block division.
- All precision data of the blocks are compressed in the same instantiated array, with a high compression rate, faster network request rendering file, and less computer running memory and GPU video memory occupied during rendering.
- the rendering performance can be switched according to user settings, and it is compatible with a variety of machine configurations.
- Fig. 2 shows a schematic flow diagram of a cell outline rendering method according to an embodiment of the present disclosure. Based on the embodiment shown in Fig. 1, as shown in Fig. 2, the method may include the following steps.
- Fig. 3 shows a schematic diagram of a cell outline rendering method according to an embodiment of the present disclosure.
- steps S201 - S203 are further disclosures of obtaining slice cell data in step S101 , processing the slice cell data in blocks, and generating block data.
- slice cell data is obtained from a gef file, as shown in FIG4 .
- the gef file contains all cell center points, x and y coordinates, cell area, and cell contour point offsets of a slice.
- the slice cell data is processed into blocks using the method of steps S201-S203:
- cells are segmented according to dimensions, and each dimension is segmented only from the middle, so that the segmented blocks form a spatial octree, which is convenient for frustum culling.
- the number of columns and rows of the blocks will be a power of 2.
- the blocks are cut into sizes close to squares according to the width and height of the bounding box. If it is three-dimensional, it is cut into sizes close to cubes. Taking two-dimensional as an example, the initial bounding box size is x, and y represents the width and height. If x/y is greater than the square root of 2, then the x dimension needs to be cut from the center. This cycle is repeated until the block size x/y after cutting is less than the square root of 2, and the y/x ratio is less than the square root of 2.
- a desired threshold value of the number of cells in a block may be set. It should be understood that since the degree of cell aggregation is random, this threshold value is only an approximate value.
- the total number of cells in a slice is 1 million, and the number of rows and columns after several cuts is 4*4 and the size of the block is close to a square.
- the number of cells in each block is about 16,000, which is greater than 5,000. Therefore, it is necessary to continue cutting. Because the size of the block is close to a square, the x and y dimensions need to be cut again.
- the number of rows and columns of the block is 8*8, and the number of cells in each block is about 4,000, which is less than 5,000. At this time, the cutting is completed.
- the produced blocks are saved as files.
- the block file ID is generated as shown in Figure 5.
- the block where the cell is located is determined according to the position of the cell center point.
- the cell data is written into the corresponding block file.
- steps S204 - S206 are further disclosures of step S203 , which performs segmentation and/or face reduction processing on the contour points of the cells in the slices based on the sliced cell data to generate vertex index data with multiple levels of precision.
- LOD precision based on the LOD technology, multiple levels of LOD precision are generated.
- LOD the basic idea of LOD is that when an object contributes less to the rendered image, a simpler form is used to express the object. When an object is reduced, the size finally rendered on the screen becomes smaller, and the difference between the fine form and the simple form will become smaller. Using a simple form to express the object will not make much difference to the user, and the rendering pressure on the GPU will be reduced.
- steps S204-S206 are a method for generating the first to the third levels of fineness.
- the method further includes: when the number of contour points of the cells in the slice exceeds the number of contour points of the first level of fineness, splitting the cells.
- vertex index data of each level of LOD can also be packaged into textures, and the texture data can be parsed in the vertex shader to obtain the corresponding data according to the cell ID. This can reduce the occupation of vertex attributes and achieve the drawing of cells with 32 cell outline points or more without dividing the large cell into multiple cells for rendering.
- an earcut triangulation algorithm is used for triangulation processing.
- the data of each cell is read, and the offset coordinates of the contour point relative to the cell center are obtained according to the cell center point, x, y coordinates, cell contour point offset, etc.
- the cell contour points are stored in a clockwise or counterclockwise direction.
- the triangulated network composed of 16 points can be divided into 14 triangles, each triangle requires three vertex indexes, and a total of 42 vertex indexes.
- the coordinates of the 16 points are subjected to the earcut triangulation algorithm to obtain the vertex index after triangulation.
- the coordinates of the contour vertex offset are [[18,-15], [13,-19], [8,-18], [4,-11], [5,-6], [-2,-3], [-11,-10], [-27,-4], [-28,10], [-23,11], [-14,2], [-4,1], 12[9,21], 13[18,20], [19,14], [15,6]].
- the vertex indices of the first level of refinement are obtained [1,0,15,15,14,13,13,12,11,10,9,8,8,7,6,4,3,2,2,1,15,15,13,11,10,8,6,4,2,15,11,10,6,5,4,15,11,6,5,5,15,11].
- the mesh after triangulation is shown in Figure 7.
- an effective area-retaining algorithm is used to perform surface reduction processing.
- the number of cell contour points at the second level of fineness is less than the number of cell contour points at the first level of fineness.
- the first level of refinement is 16 contour points without surface reduction.
- the Visvalingam-Whyatt algorithm is used to reduce the surface of the 16 contour points to remove 8 vertices.
- the remaining 8 vertices correspond to the original cell contour points with subscripts 0, 2, 5, 7, 8, 11, 12, and 13.
- the offset coordinates relative to the cell center point are: [[18,-15], [8,-18], [-2,-3], [-27,-4], [-28,10], [-4,1], [9,21], [18,20]].
- Triangulation is then performed to obtain the cell contour vertex indexes of the second level of refinement [2,0,13,13,12,11,11,8,7,5,2,13,11,7,5,5,13,11].
- the mesh after triangulation is shown in FIG8
- the number of cell contour points at the third level of refinement is less than the number of cell contour points at the second level of refinement.
- the method further includes: generating data of a fourth level of fineness, wherein the number of cell contour points of the fourth level of fineness is less than the number of cell contour points of the third level of fineness.
- the data is written into the corresponding block file.
- the data structure written into the file is shown in FIG10 .
- generating data to be rendered at multiple levels of precision includes: compressing vertex indices at multiple levels of precision and their corresponding block data into an instantiation array to obtain data to be rendered at multiple levels of precision.
- the cell center position, cell outline vertex offset coordinates, and multi-layer LOD vertex index data are compressed into an instantiated array and stored in the video memory as the data to be rendered.
- the data to be rendered is stored in the form of a binary file.
- the present invention compresses the data used for rendering to reduce the server file storage pressure and network transmission pressure, and stores the rendering data in the form of cell center point plus float16 storage offset.
- vertex indexes can use data that occupies fewer bits. For example, for a cell outline with 16 vertices, each vertex index occupies only 4 bits at minimum. However, if vertex indexes are used for drawing after block batching, each vertex index needs to occupy 16 bits. All the fineness data of the blocks are compressed in the same file, with a high compression rate. The network request is faster when rendering files. When rendering, it occupies less computer running memory and GPU video memory.
- the method further includes: determining blocks within a visible range based on a viewing cone, and rendering cell outlines for the blocks within the visible range.
- the rendering fineness is determined according to the size of the block to be rendered and/or the set contour vertex density, and the cell contour is rendered according to the rendering fineness for the data to be rendered.
- rendering cell outlines according to the data to be rendered includes: determining the rendering fineness according to the size of the block to be rendered and the set contour vertex density, and rendering the cell outlines according to the rendering fineness for the data to be rendered.
- the rendering fineness is determined according to the size of the block to be rendered. When the block to be rendered is enlarged, the number of cells in the visible range will decrease, the cell density will decrease, and the vertex density will decrease. It is possible to switch to a coarser fineness for cell outline rendering, such as switching from the first level of fineness to the second level of fineness for cell outline rendering.
- the number of cells in the visible range will increase, the cell density will increase, and the vertex density will increase. It is possible to switch to a finer fineness for cell outline rendering, such as switching from the second level of fineness to the first level of fineness for cell outline rendering.
- the rendering fineness is determined according to the set contour vertex density.
- the cell contour can be rendered at a coarser fineness, such as the fourth level fineness.
- the cell contour can be rendered at a finer fineness, such as the first level fineness.
- determining the rendering fineness based on the size of the block to be rendered and the set contour vertex density also includes: when the size of the block to be rendered remains unchanged, determining the rendering fineness based on the set contour vertex density, or when the set contour vertex density remains unchanged, determining the rendering accuracy based on the size of the block to be rendered.
- the size of the block to be rendered will become larger, the number of vertices will become smaller, and the vertex density in the field of view will decrease.
- a finer rendering level will be switched to display more contour vertices.
- the size of the block to be rendered will become smaller, the number of vertices will increase, and the vertex density in the field of view will increase.
- a coarser rendering level will be switched to display fewer contour vertices.
- the contour vertex density is calculated according to the size of the current block to be rendered, and the rendering fineness is determined according to the relationship between the currently calculated vertex density and the newly set contour vertex density. If the currently calculated vertex density is greater than the newly set contour vertex density, a finer rendering fineness is switched. If the currently calculated vertex density is less than the newly set contour vertex density, a coarser rendering fineness is switched.
- each block of a slice has an average of 5,000 cells.
- the bounding box of a block projected onto the screen is 80px wide and 100px high.
- the second level of precision rendering is used. If the user keeps the vertex density setting unchanged and shrinks the slice, the vertex density of the screen increases. When it exceeds the threshold set by the user, it switches to the coarse third level LOD rendering. On the contrary, if the user zooms in on the slice, the vertex density in the field of view will decrease. When it decreases to the point where the vertex density rendered using the second layer LOD is also less than the user-set threshold, the rendering is switched to the first layer LOD.
- the method further includes: sorting the cells in the block according to their area sizes, and rendering starting from the cell with the largest area.
- slice cell data is read to obtain cell area, and cells in the blocks are sorted according to the cell area.
- the first cell is the largest. If you set the number of cell instances to be drawn to 1, only the first cell will be rendered. If you set it to 500, only the 500 largest cells will be rendered.
- rendering the cell outlines of the data to be rendered according to the rendering fineness includes: drawing the cell outlines of the first layer of fineness based on the data to be rendered of the first layer of fineness, or drawing the cell outlines of the second layer of fineness based on the data to be rendered of the second layer of fineness, or drawing the cell outlines of the third layer of fineness based on the data to be rendered of the third layer of fineness, or drawing the cell outlines of the fourth layer of fineness based on the data to be rendered of the fourth layer of fineness.
- the vertex offset is controlled by the built-in variable gl_VertexID to offset the final vertex position to the correct position.
- the vertex indexes of the first triangular face are 1, 0, and 15.
- the cell center point is (5403,8393), and the contour vertex offset is [[18,-15],[13,-19],[8,-18],[4,-11],[5,-6],[-2,-3],[-11,-10],[-27,-4],[-28,10],[-23,11],[-14,2],[-4,1],[9,21],[18,20],[19,14],[15,6]].
- gl_VertexID is 0.
- the LOD first layer vertex index value is 1 through 0, and the contour vertex offset [13,-19] is obtained through 1.
- the final position of the first vertex is (5403+13,8393-19).
- gl.POINTS is used to draw cells, and gl_PointSize is set to reflect the cell area. At this time, only one vertex is used to draw the cell, and the GPU calculation amount is further reduced.
- the rendering effect level when the user's machine configuration is high enough, or the number of cells currently viewed in the slice is small, the rendering effect level can be increased, and the time to reduce the surface when zooming in to view the field of view can be postponed or even not reduced to obtain a better rendering effect.
- the rendering level When the user's machine configuration is low, the rendering level can be lowered after a large slice is rendered and a freeze occurs, so that fewer details are rendered at the same time but important cell distribution information is not lost, and the rendering frame rate is increased. When focusing on a position in the slice, all the details of the cell are rendered.
- sliced cell data is obtained, the sliced cell data is processed in blocks to generate block data; based on the sliced cell data, the contour vertices of the cells in the slice are subjected to segmentation processing and/or face reduction processing to generate contour vertex index data with multiple layers of precision; the contour vertex index data with multiple layers of precision are written into the corresponding block data to generate data to be rendered with multiple layers of precision; and the cell contour is rendered according to the data to be rendered.
- the present disclosure uses multi-layer precision rendering, and can switch rendering performances of different precisions according to user settings. When the user scales the cell size, the switching precision is less perceived.
- vertex index drawing is used after block division, and all precision data of the blocks are compressed in the same file, with a high compression rate, faster network request rendering file, and less computer running memory and GPU video memory occupied during rendering. It can be adapted to a variety of machine configurations, with better rendering effects and better user experience.
- the network device and the terminal device may include a hardware structure and a software module, and implement the above functions in the form of a hardware structure, a software module, or a hardware structure plus a software module.
- One of the above functions may be executed in the form of a hardware structure, a software module, or a hardware structure plus a software module.
- the present disclosure also provides a cell contour rendering device. Since the cell contour rendering device provided in the embodiment of the present disclosure corresponds to the cell contour rendering methods provided in the above-mentioned embodiments, the implementation method of the cell contour rendering method is also applicable to the cell contour rendering device provided in this embodiment and will not be described in detail in this embodiment.
- Figure 18 is a structural schematic diagram of a cell contour rendering device 300 provided in an embodiment of the present disclosure.
- the device 300 may include: a blocking module 310, used to obtain sliced cell data, block the sliced cell data, and generate block data; a processing module 320, used to perform segmentation processing and/or surface reduction processing on the contour points of the cells in the slice based on the sliced cell data, and generate vertex index data with multiple layers of precision; a generating module 330, used to write the vertex index data with multiple layers of precision into the corresponding block data, and generate data to be rendered with multiple layers of precision; a rendering module 340, used to render the cell contour according to the data to be rendered.
- a blocking module 310 used to obtain sliced cell data, block the sliced cell data, and generate block data
- a processing module 320 used to perform segmentation processing and/or surface reduction processing on the contour points of the cells in the slice based on the sliced cell data, and generate vertex index data with multiple layers of precision
- the blocking module 310 is specifically used to: determine the upper and lower boundaries of the location of the cells in the slice to obtain a bounding box; divide the bounding box according to the width and height of the bounding box and the expected threshold of the number of cells in the block to obtain different blocks; read the center point position of the cells in the slice, determine the block where the cells are located according to the center point position of the cells, and generate blocking data.
- the processing module 320 is specifically used to: based on the sliced cell data, perform a subdivision process on the contour points of the cells in the slice to obtain vertex index data of a first level of fineness; perform a surface reduction process and a subdivision process on the contour points of the first level of fineness to obtain vertex index data of a second level of fineness, wherein the number of cell contour points of the second level of fineness is less than the number of cell contour points of the first level of fineness; perform a surface reduction process and a subdivision process on the cell contour points of the second level of fineness to obtain vertex index data of a third level of fineness, wherein the number of cell contour points of the third level of fineness is less than the number of cell contour points of the second level of fineness.
- the processing module 320 is specifically used to: generate data of a fourth level of fineness, wherein the number of cell contour points of the fourth level of fineness is less than the number of cell contour points of the third level of fineness.
- the processing module 320 is further configured to: split the cell when the number of contour points of the cell in the slice exceeds the number of contour points of the first level of fineness.
- the triangulation process is performed using an earcut triangulation algorithm.
- an effective area preserving algorithm is used to perform surface reduction processing.
- the generation module 330 is specifically used to compress vertex indices of multiple levels of precision and their corresponding block data into an instantiation array to obtain data to be rendered at multiple levels of precision.
- the rendering module 340 is specifically used to: determine the rendering precision according to the size of the block to be rendered and the set contour vertex density, and render the cell contour according to the rendering precision for the data to be rendered.
- determining the rendering fineness based on the size of the block to be rendered and the set contour vertex density includes: when the size of the block to be rendered remains unchanged, determining the rendering fineness based on the set contour point density, or when the set contour point density remains unchanged, determining the rendering accuracy based on the size of the block to be rendered.
- the rendering module 340 is further used to: determine the blocks within the visible range based on the viewing cone, and perform cell outline rendering on the blocks within the visible range.
- the rendering module 340 is further used to sort the cells in the block according to their area sizes, and start rendering from the cell with the largest area.
- sliced cell data is obtained, the sliced cell data is processed into blocks, and block data is generated; based on the sliced cell data, the contour points of the cells in the slice are segmented and/or reduced to generate vertex index data with multiple layers of precision; the vertex index data with multiple layers of precision are written into the corresponding block data to generate data to be rendered with multiple layers of precision; cell contours are rendered according to the data to be rendered, and rendering performances of different precisions can be switched according to user settings, and vertex index drawing is used after block division, and all precision data of the blocks are compressed into the same instantiated array, with a high compression rate, faster network request rendering file, and less computer running memory and GPU video memory occupied during rendering, so it can be adapted to a variety of machine configurations, with better rendering effects and better user experience.
- the electronic device may include a hardware structure and a software module, and implement the functions in the form of a hardware structure, a software module, or a hardware structure plus a software module.
- a function of the functions may be executed in the form of a hardware structure, a software module, or a hardware structure plus a software module.
- Fig. 19 is a block diagram of an electronic device 400 for implementing the above-mentioned cell outline rendering or data processing method according to an exemplary embodiment.
- the electronic device 400 can be a mobile phone, a computer, a messaging device, a game console, a tablet device, a medical device, a fitness device, a personal digital assistant, etc.
- the electronic device 400 may include one or more of the following components: a processing component 402 , a memory 404 , a power component 405 , a multimedia component 406 , an audio component 410 , an input/output (I/O) interface 412 , a sensor component 414 , and a communication component 416 .
- the processing component 402 generally controls the overall operation of the electronic device 400, such as operations associated with display, phone calls, data communications, camera operations, and recording operations.
- the processing component 402 may include one or more processors 520 to execute instructions to complete all or part of the steps of the above-mentioned method.
- the processing component 402 may include one or more modules to facilitate the interaction between the processing component 402 and other components.
- the processing component 402 may include a multimedia module to facilitate the interaction between the multimedia component 408 and the processing component 402.
- the memory 404 is configured to store various types of data to support operations on the electronic device 400. Examples of such data include instructions for any application or method operating on the electronic device 400, contact data, phone book data, messages, pictures, videos, etc.
- the memory 404 can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic disk or optical disk.
- SRAM static random access memory
- EEPROM electrically erasable programmable read-only memory
- EPROM erasable programmable read-only memory
- PROM programmable read-only memory
- ROM read-only memory
- magnetic memory flash memory
- flash memory magnetic disk or optical disk.
- the power supply assembly 405 provides power to various components of the electronic device 400.
- the power supply assembly 405 may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power to the electronic device 400.
- the multimedia component 406 includes a screen that provides an output interface between the electronic device 400 and the user.
- the screen may include a liquid crystal display (LCD) and a touch panel (TP). If the screen includes a touch panel, the screen may be implemented as a touch screen to receive input signals from the user.
- the touch panel includes one or more touch sensors to sense touch, slide, and gestures on the touch panel. The touch sensor may not only sense the boundaries of the touch or slide action, but also detect the duration and pressure associated with the touch or slide operation.
- the multimedia component 408 includes a front camera and/or a rear camera. When the electronic device 400 is in an operating mode, such as a shooting mode or a video mode, the front camera and/or the rear camera may receive external multimedia data. Each front camera and the rear camera may be a fixed optical lens system or have a focal length and optical zoom capability.
- the sensor assembly 414 includes one or more sensors for providing various aspects of status assessment for the electronic device 400.
- the sensor assembly 414 can detect the open/closed state of the electronic device 400, the relative positioning of components, such as the display and keypad of the electronic device 400, and the sensor assembly 414 can also detect the position change of the electronic device 400 or a component of the electronic device 400, the presence or absence of user contact with the electronic device 400, the orientation or acceleration/deceleration of the electronic device 400, and the temperature change of the electronic device 400.
- the sensor assembly 414 may include a proximity sensor configured to detect the presence of nearby objects without any physical contact.
- the sensor assembly 414 may also include an optical sensor, such as a CMOS or CCD image sensor, for use in imaging applications.
- the sensor assembly 414 may also include an accelerometer, a gyroscope sensor, a magnetic sensor, a pressure sensor, or a temperature sensor.
- the communication component 416 is configured to facilitate wired or wireless communication between the electronic device 400 and other devices.
- the electronic device 400 can access a wireless network based on a communication standard, such as WiFi, 2G or 3G, 4G LTE, 5G NR (New Radio), or a combination thereof.
- the communication component 415 receives a broadcast signal or broadcast-related information from an external broadcast management system via a broadcast channel.
- the communication component 416 also includes a near field communication (NFC) module to facilitate short-range communication.
- the NFC module can be implemented based on radio frequency identification (RFID) technology, infrared data association (IrDA) technology, ultra-wideband (UWB) technology, Bluetooth (BT) technology, and other technologies.
- RFID radio frequency identification
- IrDA infrared data association
- UWB ultra-wideband
- Bluetooth Bluetooth
- the electronic device 400 may be implemented by one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), controllers, microcontrollers, microprocessors, or other electronic components to perform the above methods.
- ASICs application-specific integrated circuits
- DSPs digital signal processors
- DSPDs digital signal processing devices
- PLDs programmable logic devices
- FPGAs field programmable gate arrays
- controllers microcontrollers, microprocessors, or other electronic components to perform the above methods.
- a non-transitory computer-readable storage medium including instructions is also provided, such as a memory 404 including instructions, and the instructions can be executed by the processor 520 of the electronic device 400 to perform the above method.
- the non-transitory computer-readable storage medium can be a ROM, a random access memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, etc.
- the embodiments of the present disclosure further provide a non-transitory computer-readable storage medium storing computer instructions, wherein the computer instructions are used to enable a computer to execute the cell contour rendering or data processing method described in the above embodiments of the present disclosure.
- An embodiment of the present disclosure further provides a computer program product, including a computer program, which, when executed by a processor, executes the cell contour rendering or data processing method described in the above embodiments of the present disclosure.
- An embodiment of the present disclosure also proposes a chip, which includes one or more interface circuits and one or more processors; the interface circuit is used to receive signals from a memory of an electronic device and send signals to the processor, the signals include computer instructions stored in the memory, and when the processor executes the computer instructions, the electronic device executes the cell contour rendering or data processing method described in the above embodiments of the present disclosure.
- Any process or method description in a flowchart or otherwise described herein may be understood to represent a module, segment or portion of code that includes one or more executable instructions for implementing the steps of a specific logical function or process, and the scope of the preferred embodiments of the present invention includes alternative implementations in which functions may not be performed in the order shown or discussed, including performing functions in a substantially simultaneous manner or in the reverse order depending on the functions involved, which should be understood by those skilled in the art to which the embodiments of the present invention belong.
- each functional unit in each embodiment of the present invention may be integrated into a processing module, or each unit may exist physically separately, or two or more units may be integrated into one module.
- the above-mentioned integrated module may be implemented in the form of hardware or in the form of a software functional module. If the integrated module is implemented in the form of a software functional module and sold or used as an independent product, it may also be stored in a computer-readable storage medium.
- the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
一种细胞轮廓渲染方法,包括:获取切片细胞数据,对切片细胞数据分块处理,生成分块数据;基于切片细胞数据,对切片中细胞的轮廓点进行剖分处理和/或减面处理,生成多层精细度的顶点索引数据;将多层精细度的顶点索引数据写入对应的分块数据中,生成多层精细度的待渲染数据;根据待渲染数据进行细胞轮廓渲染。
Description
本公开涉及数据处理技术领域,特别涉及一种细胞轮廓渲染方法、装置及系统。
在生物信息技术的科研中,伴随着显微镜技术、图像处理技术的迅速发展,生物切片单片尺寸日益增大。在科研过程中,需要查看单张切片或者是多张连续切片提取出来的巨量细胞的形状以及分布情况。然而科研人员所使用的电脑显卡配置参差不齐,目前图像渲染软件往往对用户的显卡配置有一定要求,难以适用于各种不同的显卡配置,用户体验以及渲染效果较差。
发明内容
本公开提出了一种细胞轮廓渲染方法、装置及系统,使用多层精细度渲染,可根据用户设置切换不同精细度的渲染表现,且采用分块后使用顶点索引绘制,分块所有精细度数据压缩在同一个文件中,压缩率高,网络请求渲染文件时较快,渲染时占用电脑运行内存以及GPU显存较小,因此可适配多种机器配置,渲染效果更好,用户体验更佳。
本公开的第一方面实施例提供了一种细胞轮廓渲染方法,该方法包括:获取切片细胞数据,对切片细胞数据分块处理,生成分块数据;基于切片细胞数据,对切片中细胞的轮廓点进行剖分处理和/或减面处理,生成多层精细度的顶点索引数据;将多层精细度的顶点索引数据写入对应的分块数据中,生成多层精细度的待渲染数据;根据待渲染数据进行细胞轮廓渲染。
在本公开的一些实施例中,获取切片细胞数据,对切片细胞数据分块处理,生成分块数据包括:确定切片中细胞所在位置的上边界和下边界,获取包围盒;根据包围盒的宽高以及分块中细胞数量的期望阈值,切分包围盒,得到不同的分块;读取切片中细胞的中心点位置,根据细胞的中心点位置,确定细胞所在的分块,生成分块数据。
在本公开的一些实施例中,基于切片细胞数据,对切片中细胞的轮廓点进行剖分处理和/或减面处理,生成多层精细度的顶点索引数据包括:基于切片细胞数据,对切片中细胞的轮廓点进行剖分处理,得到第一层精细度的顶点索引数据;对第一层精细度的轮廓点进行减面处理和剖分处理,得到第二层精细度的顶点索引数据,其中,第二层精细度的细胞轮廓点数量小于第一层精细度的细胞轮廓点数量;对第二层精细度的细胞轮廓点进行减面处理和剖分处理,得到第三层精细度的顶点索引数据,其中,第三次精细度的细胞轮廓点数量小于第二层精细度的细胞轮廓点数量。
在本公开的一些实施例中,该方法还包括:生成第四层精细度的数据,其中,第四层精细度的细胞轮廓点数量小于第三层精细度的细胞轮廓点数量。
在本公开的一些实施例中,该方法还包括:当切片中细胞的轮廓点数量超过第一层精细度的轮廓点数量,将细胞拆分。
在本公开的一些实施例中,采用earcut三角剖分算法进行剖分处理。
在本公开的一些实施例中,采用保留有效面积算法进行减面处理。
在本公开的一些实施例中,生成多层精细度的待渲染数据包括:将多层精细度的顶点索引及其对应的分块数据压缩到实例化数组中,获得多层精细度的待渲染数据。
在本公开的一些实施例中,根据待渲染数据进行细胞轮廓渲染包括:根据待渲染分块的大小以及设定的轮廓顶点密度确定渲染精细度,将待渲染数据按渲染精细度进行细胞轮廓渲染。
在本公开的一些实施例中,根据待渲染分块的大小以及设定的轮廓点密度确定渲染精细度包括:当待渲染分块的大小不变时,根据设定的轮廓点密度确定渲染精细度,或当设定的轮廓点密度不变时,根据待渲染分块的大小确定渲染精确度。
在本公开的一些实施例中,将待渲染数据按渲染精细度进行细胞轮廓渲染包括:基于第一层精细度的待渲染数据,绘制第一层精细度的细胞轮廓,或基于第二层精细度的待渲染数据,绘制第二层精细度的细胞轮廓,或基于第三层精细度的待渲染数据,绘制第三层精细度的细胞轮廓。
在本公开的一些实施例中,该方法还包括:基于视锥体,确定在可视范围内的分块,对可视范围内的分块进行细胞轮廓渲染。
在本公开的一些实施例中,该方法还包括:对分块中的细胞,按照面积大小进行排序,从面积最大的细胞开始渲染。
本公开第二方面实施例提供一种细胞轮廓渲染装置,该装置包括:分块模块,用于获取切片细胞数据,对切片细胞数据分块处理,生成分块数据;处理模块,用于基于切片细胞数据,对切片中细胞的轮廓点进行剖分处理和/或减面处理,生成多层精细度的顶点索引数据;生成模块,用于将多层精细度的顶点索引数据写入对应的分块数据中,生成多层精细度的待渲染数据;渲染模块,用于根据待渲染分块的大小以及设定的轮廓点密度确定渲染精细度,将待渲染数据按渲染精细度进行细胞轮廓渲染。
本公开第三方面实施例提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开第一方面实施例中描述的方法。
本公开第四方面实施例提供一种计算机存储介质,其中,计算机存储介质存储有计算机可执行指令;计算机可执行指令被处理器执行后,能够实现本公开第一方面或第二方面实施例中描述的方法。
本公开第五方面实施例提供一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本公开第一方面实施例中描述的方法。
本公开第六方面实施例提供一种芯片,包括一个或多个接口电路和一个或多个处理器;接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令,当处理器执行计算机指令时,使得电子设备执行本公开第一方面实施例中描述的方法。
根据本公开的细胞轮廓渲染方法,获取切片细胞数据,对切片细胞数据分块处理,生成分块数据;基于切片细胞数据,对切片中细胞的轮廓点进行剖分处理和/或减面处理,生成多层精细度的顶点索引数据;将多层精细度的顶点索引数据写入对应的分块数据中,生成多层精细度的待渲染数据;根据待渲染数据进行细胞轮廓渲染。本公开使用多层精细度渲染,可根据用户设置切换不同精细度的渲染表现,且采用分块后使用顶点索引绘制,分块所有精细度数据压缩为同一实例化数组,压缩率高,网络请求渲染文件时较快,渲染时占用电脑运行内存以及GPU显存较小,因此可适配多种机器配置,渲染效果更好,用户体验更佳。
本公开附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
本公开上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本公开实施例的一种细胞轮廓渲染方法的流程示意图;
图2为根据本公开实施例的一种细胞轮廓渲染方法的流程示意图;
图3为根据本公开实施例的一种细胞轮廓渲染方法的示意图;
图4为根据本公开实施例的一种切片细胞数据的示意图;
图5为根据本公开实施例的一种生成分块文件的示意图;
图6为根据本公开实施例的一种细胞轮廓偏移量坐标的示意图;
图7为根据本公开实施例的一种第一层精细度三角剖分网格的示意图
图8为根据本公开实施例的一种第二层精细度三角剖分网格的示意图
图9为根据本公开实施例的一种第三层精细度三角剖分网格的示意图
图10为根据本公开实施例的一种文件写入的数据结构的示意图
图11为根据本公开实施例的一种细胞轮廓渲染方法的效果示意图;
图12为根据本公开实施例的一种细胞轮廓渲染方法的效果示意图;
图13为根据本公开实施例的一种细胞轮廓渲染方法的效果示意图;
图14为根据本公开实施例的一种细胞轮廓渲染方法的效果示意图;
图15为根据本公开实施例的一种细胞轮廓渲染方法的效果示意图;
图16为根据本公开实施例的一种细胞轮廓渲染方法的效果示意图;
图17为根据本公开实施例的一种细胞轮廓渲染方法的效果示意图;
图18为根据本公开实施例的一种细胞轮廓渲染装置的示意框图;
图19为根据本公开实施例的一种电子设备的结构示意图。
下面详细描述本公开的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本公开,而不能理解为对本公开的限制。
在细胞渲染技术中,合批渲染按照三维空间对细胞进行分层分块划分,得到的分块数据一次性提交给GPU绘制,来提升逻辑线和渲染线的整体效率。LOD(Level of Detail层次细节)技术,根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。
当下较为先进的方案有,将分块数据合批后,使用顶点索引进行渲染,每个精细度的分块都需要单独生成对应的渲染数据。渲染时,根据分块在屏幕中的投影大小直接切换不同分块的可见性来做精细度切换。但是对于该方案,一方面每个精细度的分块都需要单独生成对应的渲染数据,文件大小较大,服务器存储压力较大,服务器存储空间将更快占满,渲染时请求的数据量大导致加载速度慢。另一方面,在渲染阶段,各个精细度的数据需要传入到GPU,导致显存占用较大。随着切片尺寸日益增大,细胞数量越来越多,渲染的机器显存会更快占满。
还有将分块的数据只分为两种精细度生成渲染数据,精细度高的数据使用顶点索引渲染,精细度低的数据使用实例化渲染。实例化渲染的细胞形状为固定的多边形经过旋转,拉伸变换得到的多边形。但是对于该方案,一方面精细度层级少,低精度细胞轮廓渲染效果差,两种精细度切换时比较突兀。另一方面最粗糙的精细度占用的渲染资源依然较大,当视野中细胞数量大时渲染帧率降低。
由此可见,现有方案中存在以下问题,首先,精细度层级少、低精度细胞轮廓渲染效果差、精细度切换时比较突兀。其次,渲染资源文件较大、服务器存储压力较大,渲染时请求的数据量大导致加载速度慢。最后,对机器配置有一定要求,机器显存占用较大,而且由于渲染资源较大,对显卡要求较高,机器不适配时,会导致渲染帧率降低、渲染效果变差。
为此,本公开提出了一种细胞轮廓渲染采集方法、装置及系统,使用多层精细度渲染,用户缩放细胞大小时对切换精细度切换感知较弱,且采用分块后使用顶点索引绘制,分块所有精细度数据压缩在同一实例化数组中,压缩率高,网络请求渲染文件时较快,渲染时占用电脑运行内存以及GPU显存较小,可根据用户设置切换渲染表现,适配多种机器配置。
下面结合附图对本申请所提供的细胞轮廓渲染方案进行详细介绍。
图1示出了根据本公开实施例的一种细胞轮廓渲染方法的流程示意图。如图1所示,该方法可以包括以下步骤。
S101,获取切片细胞数据,对切片细胞数据分块处理,生成分块数据。
在本公开的实施例中,切片细胞数据指一个切片中所有细胞的相关数据,至少包括细胞中心点、x、y坐标、细胞面积、细胞轮廓点偏移量,根据具体实施方式的不同也可能包括其他数据,本公开不予限制。
在本公开的实施例中,根据预设的分块信息,包括分块大小、分块网格信息如4乘4的形状,对切片进行切分,生成分块。根据细胞中心点在切片中的位置,确定细胞所在的分块,进而将细胞数据写入对应的分块中,获得分块数据,具体采用的分块方式以及分块信息,本公开不与限制。
本公开中对切片细胞数据采用分块处理,将得到的分块数据一次性提交给GPU绘制,通过减少CPU向GPU发送渲染命令的次数以及减少GPU切换渲染状态的次数,来提升逻辑线和渲染线的整体效率。
S102,基于切片细胞数据,对切片中细胞的轮廓点进行剖分处理和/或减面处理,生成多层精细度的顶点索引数据。
应当解释的是,不同精细度层级有不同数量的轮廓点,精细度高代表轮廓点数量多,渲染出的细胞细节更多,精细度低代表轮廓点数量少,渲染出的细胞细节更少。
在本公开的实施例中,根据切片细胞数据中细胞中心点、x、y坐标、细胞轮廓点偏移量,可以得到细胞轮廓点相对于细胞中心点的偏移坐标。
在本公开的实施例中,对切片中细胞的轮廓点进行剖分处理和/或减面处理,获得多层精细度的顶点索引数据,至少包括两层以上的精细度。
进一步的,本公开的实施例基于WebGL绘图协议,物体的基础网格为三角面,根据轮廓点偏移坐标进行三角剖分,可以得到三角划分后的顶点索引,具体可以采用earcut三角剖分算法实现。对细胞轮廓点进行减面处理,可以将一些细胞轮廓点剔除,剩下更少数量的细胞轮廓定点数。具体可以采用保留有效面积(Visvalingam-Whyatt)算法实现。
举例而言,假设有效的轮廓点为16个点,对切片中细胞的轮廓点进行三角剖分可以获取14个三角形,每个三角形需要三个顶点索引,共42个顶点索引。对16个顶点进行减面处理,将其中8个顶点剔除,对剩余的8个顶点进行三角剖分,可以获得18个顶点索引,因此,上述已得到两层精细度的顶点索引数据,继续进行剖分处理和/或减面处理,还可以生成更多层精细度的顶点索引数据,根据实际情况实施,本公开不与限制。
S103,将多层精细度的顶点索引数据写入对应的分块数据中,生成多层精细度的待渲染数据。
在本公开的实施例中,根据步骤S101可以找到每个细胞对应的分块,可以将分块编号,在执行步骤S102时每个细胞数据与对应的分块编号捆绑,执行后即可将多层精细度的顶点索引数据写入对应的分块数据中,也可以采用其他方法标记,本公开不予限制。
在本公开的实施例中,待渲染数据包括细胞中心点位置、轮廓点偏移坐标、多层精细度的顶点索引数据等。
在本公开的实施例中,每个细胞使用实例化渲染,在渲染之前,将细胞中心点位置、轮廓点偏移坐标、多层精细度的顶点索引数据等压缩为实例化数组存入显存,作为待渲染数据。
本公开将多层精细度的顶点索引数据压缩为实例化数组存入显存,压缩率高,网络请求渲染文件时较快,渲染时,占用电脑运行内存以及GPU显存较小
S104,根据待渲染数据进行细胞轮廓渲染。
在本公开的一些实施例中,在渲染前进行视锥体剔除,根据视锥体计算出在视野范围内的分块,只将在可视区的分块提交给GPU渲染。
在本公开的一些实施例中,根据待渲染数据进行细胞轮廓渲染包括:根据生成的多层精细度的顶点索引数据绘制细胞轮廓图像,对于一个细胞轮廓可以生成多个层级的精细度图像。
在本公开的一些实施例中,根据细胞面积排序,面积大的放在前,从面积最大的细胞开始渲染,当视野中细胞过多时渲染前部分大细胞,因此丢失的细节比较少且可以提高渲染帧率。
在本公开的一些实施例中,根据待渲染数据进行细胞轮廓渲染包括:根据待渲染分块的大小以及设定的轮廓顶点密度确定渲染精细度,将待渲染数据按渲染精细度进行细胞轮廓渲染。
具体的,在用户查看渲染效果时,对细胞图像进行缩小或放大,会使视野中分块的大小发生改变,轮廓点密度的高低也随之发生改变。因此,在渲染时,可以根据分块在视野中的大小以及用户设定的轮廓点密度,控制切换渲染时精细度的层级。
综上,根据本公开实施例提供的细胞轮廓渲染方法,获取切片细胞数据,对切片细胞数据分块处理,生成分块数据;基于切片细胞数据,对切片中细胞的轮廓点进行剖分处理和/或减面处理,生成多层精细度的顶点索引数据;将多层精细度的顶点索引数据写入对应的分块数据中,生成多层精细度的待渲染数据;根据待渲染数据进行细胞轮廓渲染。本公开多层精细度渲染,用户缩放细胞大小时对切换精细度切换感知较弱,且采用分块后使用顶点索引绘制,分块所有精细度数据压缩在同一实例化数组中,压缩率高,网络请求渲染文件时较快,渲染时占用电脑运行内存以及GPU显存较小,可根据用户设置切换渲染表现,适配多种机器配置。
图2示出了根据本公开实施例的一种细胞轮廓渲染方法的流程示意图。基于图1所示实施例,如图2所示,该方法可以包括以下步骤。为方便理解,图3示出了根据本公开实施例的一种细胞轮廓渲染方法的示意图。
在本公开中,为了便于理解方案,还详细描述了本方法的一种实施方式、过程以及效果,以获取猕猴脑数据为例,将在每个步骤的实施方式中具体展开描述,应该理解的是,该示例不是对方法的限制。
基于图1所示实施例,步骤S201-S203是对步骤S101获取切片细胞数据,对切片细胞数据分块处理,生成分块数据的进一步公开。
在本公开的一种实施例中,获取切片细胞数据,来源为gef文件,如图4所示,gef文件中包含了一个切片的所有细胞中心点,x、y坐标,细胞面积,细胞轮廓点偏移量。
采用步骤S201-S203的方法将切片细胞数据进行分块处理:
S201,确定切片中细胞所在位置的上边界和下边界,获取包围盒。
S202,根据包围盒的宽高以及分块中细胞数量的期望阈值,切分包围盒,得到不同的分块。
在本公开实施中,通过根据维度对细胞进行切分,每个维度只从中间切分,使切分后的分块构成空间八叉树,便于视椎体剔除。切分后,分块的列数与行数将是2的次幂。
在本公开实施中,根据包围盒的宽高,将分块切分成接近正方形的尺寸。如果是三维的,切分成接近正方体的尺寸。以二维为例,初始包围盒尺寸为x,y表示宽高,如果x/y大于根号2。那么x维度需要从中心切分。如此循环,直到切分后的分块尺寸x/y小于根号2,且y/x比值小于根号2。
在本公开实施中,可以设置分块中细胞数量的期望阈值,应当理解的是,因为细胞聚集程度是随机的,这个阈值只是一个大概值。
举例而言,设置期望分块中细胞数量小于5千一个切片的细胞总数是100万,经过几次切分后的行列数为4*4且分块的尺寸已经接近正方形,此时每个分块的细胞数量大约为一万六大于5千。所以需要继续切分,因为分块的尺寸已经接近正方形,所以x,y维度都需要再次切分,分块行列数为8*8,每个分块中细胞数量大约为4千,小于5千,此时切分完成。
S203,读取切片中细胞的中心点位置,根据细胞的中心点位置,确定细胞所在的分块,生成分块数据。
在本公开的一种实施中,生产的分块保存为文件,首先生成分块文件id如图5所示,其次根据细胞中心点的位置,确定细胞所在的分块,最后将细胞数据写入对应的分块文件中。
基于图1实施例,步骤S204-S206是对步骤S203基于切片细胞数据,对切片中细胞的轮廓点进行剖分处理和/或减面处理,生成多层精细度的顶点索引数据的进一步公开。
在本公开实施中,基于LOD技术,生成多层级LOD的精细度,应当说明的是,LOD的基本思想是当物体对渲染出图像贡献越少,使用越简单的形式来表达该物体。当一个物体被缩小后,最终在屏幕上渲染出来的尺寸变小,精细的形式和简单的形式表现差异会变小。使用简单的形式来表达该物体在用户看来区别不大,而对GPU的渲染压力会减小。
在本公开的实施例中,生成四层级精细度等级,包括第一层到第三层的不同轮廓点数量的三角面,以及第四层为带面积的正方形点,其中步骤S204-S206为第一层到第三层精细度的生成方法。
在本公开的一些实施例中,该方法还包括:当切片中细胞的轮廓点数量超过第一层精细度的轮廓点数量,将细胞拆分。
举例而言,采用16、8、4个轮廓点的三种三角面精度等级,当切片中细胞的轮廓点数量超过16时,需要将该细胞拆分成两个细胞。
应当说明的是,也可以将LOD各层次的顶点索引数据包装成纹理,顶点着色器Shader中解析纹理数据根据细胞ID获取到对应数据。由此可以减少顶点属性的占用,做到32个细胞轮廓点或者更多的细胞轮廓点细胞的绘制而不需将大细胞切分成多个细胞来渲染。
S204,基于切片细胞数据,对切片中细胞的轮廓点进行剖分处理,得到第一层精细度的顶点索引数据
在本公开的一些实施例中,采用earcut三角剖分算法进行剖分处理。
在本公开的实施例中,读取每个细胞的数据,根据细胞中心点,x、y坐标,细胞轮廓点偏移量等获取轮廓点相对细胞中心偏移坐标。细胞轮廓点存储的时候按照顺时针或逆时针存储。
在本公开的一种实施例中,假设有效的轮廓点为16个点,16个点组成的三角网可拆分为14个三角形,每个三角形需要三个顶点索引,共42个顶点索引。将16个点的坐标进行earcut三角剖分算法即可得到三角划分后的顶点索引。以图6所示细胞轮廓为例,轮廓顶点偏移量坐标为[[18,-15],[13,-19],[8,-18],[4,-11],[5,-6],[-2,-3],[-11,-10],[-27,-4],[-28,10],[-23,11],[-14,2],[-4,1],12[9,21],13[18,20],[19,14],[15,6]]。经过earcut三角剖分后得到第一层精细度的顶点索引[1,0,15,15,14,13,13,12,11,10,9,8,8,7,6,4,3,2,2,1,15,15,13,11,10,8,6,4,2,15,11,10,6,5,4,15,11,6,5,5,15,11],三角剖分后的网格如图7所示。
S205,对第一层精细度的轮廓点进行减面处理和剖分处理,得到第二层精细度的顶点索引数据。
在本公开的一些实施例中,采用保留有效面积算法进行减面处理。
其中,第二层精细度的细胞轮廓点数量小于第一层精细度的细胞轮廓点数量。
在本公开的一种实施例中,假设有效的轮廓点为16个点,第一层精细度未经过减面处理为16个轮廓点,用保留有效面积(Visvalingam-Whyatt)算法进行减面处理将16个轮廓点可以剔除8个顶点,留下的8个顶点对应原有的细胞轮廓点下标为0,2,5,7,8,11,12,13。相对细胞中心点的偏移量坐标为:[[18,-15],[8,-18],[-2,-3],[-27,-4],[-28,10],[-4,1],[9,21],[18,20]]。再进行三角剖分,得到第二层精细度的细胞轮廓顶点索引[2,0,13,13,12,11,11,8,7,5,2,13,11,7,5,5,13,11],三角剖分后的网格如图8所示
应当说明的是,采用保留有效面积算法进行减面处理,产生的面积变化更小,更能保留集合面特征。
S206,对第二层精细度的细胞轮廓点进行减面处理和剖分处理,得到第三层精细度的顶点索引数据。
其中,第三次精细度的细胞轮廓点数量小于第二层精细度的细胞轮廓点数量。
在本公开的一种实施例中,假设有效的轮廓点为16个点,进行一次减面处理后第二层精细度的轮廓点位8个,将留下的8个顶点用保留有效面积算法继续减面,留下4个顶点,留下的4个顶点对应原有的细胞轮廓点下标为[0,7,11,13],相对细胞中心点的偏移量坐标为[[18,-15],[-27,-4],[-4,1],[18,20]],再进行三角剖分,得到第三层精细度的细胞轮廓顶点索引[0,13,11,11,7,0],三角剖分后的网格如图9所示。
在本公开的一些实施例中,该方法还包括:生成第四层精细度的数据,其中,第四层精细度的细胞轮廓点数量小于第三层精细度的细胞轮廓点数量。
在本公开的一种实施例中,假设有效的轮廓点为16个点,四层精细度分别为16、8、4个轮廓点的三种三角面精度等级,以及带面积的正方形点。
S207,将多层精细度的顶点索引数据写入对应的分块数据中,生成多层精细度的待渲染数据。
在本公开的一种实施例中,通过减面以及三角剖分后,得到多层的LOD顶点索引数据后,将其写入对应分块文件,文件写入的数据结构如图10所示。
在本公开的一些实施例中,生成多层精细度的待渲染数据包括:将多层精细度的顶点索引及其对应的分块数据压缩到实例化数组中,获得多层精细度的待渲染数据。
具体地,以WebGL(Web Graphics Library)3D绘图协议为例,渲染前将细胞中心点位置、细胞轮廓顶点偏移量坐标、多层的LOD顶点索引数据压缩为实例化数组存入显存,作为待渲染数据,待渲染数据以二进制文件的形式储存。
应当说明的是,本公开将用于渲染的数据进行压缩,以减小服务器文件存储压力以及网络传输压力,采用细胞中心点加上float16存储偏移量的方式存储渲染数据,当一个细胞需要绘制的轮廓点越多,轻量化效果越明显。
在本公开的实施例中,顶点索引可以使用占用比特小的数据。比如16个顶点的细胞轮廓,每个顶点索引最小只占4比特位。而如果分块合批后使用顶点索引绘制,每个顶点索引需要占用16比特位。分块所有精细度数据压缩在同一个文件中,压缩率高。网络请求渲染文件时较快。渲染时,占用电脑运行内存以及GPU显存较小。
S208,根据待渲染数据进行细胞轮廓渲染。
在本公开的一些实施例中,该方法还包括:基于视锥体,确定在可视范围内的分块,对可视范围内的分块进行细胞轮廓渲染。
具体地,在渲染前,判断视椎体预分块的包围盒是否有交集,计算出在可视范围内的分块,将在可视区的分块提交给GPU渲染。
在本公开实施中,根据待渲染分块的大小和/或设定的轮廓顶点密度确定渲染精细度,将待渲染数据按渲染精细度进行细胞轮廓渲染。
在本公开的一些实施例中,根据待渲染数据进行细胞轮廓渲染包括:根据待渲染分块的大小以及设定的轮廓顶点密度确定渲染精细度,将待渲染数据按渲染精细度进行细胞轮廓渲染。在本公开的一些实施例中,根据待渲染分块的大小确定渲染精细度,当放大待渲染分块时,可视范围内的细胞数量会变少,细胞密度变小、顶点密度变小,可以切换到更粗糙的精细度进行细胞轮廓渲染,例如从第一层级的精细度切换到第二层级的精细度进行细胞轮廓渲染,当缩小待渲染分块时,可视范围内的细胞数量会变多,细胞密度变大、顶点密度变大,可以切换到更精细的精细度进行细胞轮廓渲染,例如从第二层级的精细度切换到第一层级的精细度进行细胞轮廓渲染。
在本公开的一些实施例中,根据设定的轮廓顶点密度确定渲染精细度,当设定的轮廓顶点密度较小时,可以按照较粗糙的精细度进行细胞轮廓渲染,例如按照第四层级的精细度进行细胞轮廓渲染,反之,当设定的轮廓顶点密度较大时,可以按照较精细的精细度进行细胞轮廓渲染,例如按照第一层级的精细度进行细胞轮廓渲染。
进一步的,根据待渲染分块的大小以及设定的轮廓顶点密度确定渲染精细度还包括:当待渲染分块的大小不变时,根据设定的轮廓顶点密度确定渲染精细度,或当设定的轮廓顶点密度不变时,根据待渲染分块的大小确定渲染精确度。
应当理解的是,从第一层级到第四层级的精细度,细胞轮廓顶点数减少,渲染表现的细胞细节减少,渲染效果更粗糙。
具体地,当用户设定的轮廓顶点密度不变时,用户放大切片,待渲染分块的大小会变大,顶点数量会变少,视野中的顶点密度会减小,当小于设定的轮廓顶点密度时,切换更精细的精细度渲染,将显示更多的轮廓顶点。相反地,用户缩小切片,待渲染分块的大小会变小,顶点数量会变多,视野中的顶点密度会增大,当大于设定的轮廓顶点密度时,切换更粗糙的精细度渲染,将显示更少的轮廓顶点。
在本公开的实施例中,根据当前待渲染分块的大小计算轮廓顶点密度,根据当前计算出的顶点密度和新设定的轮廓顶点密度之间的关系确定渲染精细度,如若当前计算出的顶点密度大于新设定的轮廓顶点密度时,切换到更精细的精细度渲染,如若当前计算出的顶点密度小于新设定的轮廓顶点密度时,切换到更粗糙的精细度渲染。
举例而言,假设切片平均每个分块有5千个细胞。一个分块投影到屏幕上的包围盒为宽80px,高100px。细胞密度为5000/(80*100)=0.625(个/px2),如果使用第一层精细度渲染,每个细胞需要42个顶点渲染,那么顶点密度为0.625*42=26.25(个/px2)。第二层精细度的顶点密度为0.625*18=11.25(个/px2)。第三层0.625*6=3.75(个/px2)。此时用户设置限定顶点密度为20(个/px2)的话,采用第二层精细度渲染。如果用户保持顶点密度设置不变,缩小切片,此时屏幕的顶点密度增大,当超出用户设置的阈值时,切换到粗糙的第三层LOD渲染。反之,如果用户放大切片,视野中的顶点密度会减小,减小到使用第二层LOD渲染的顶点密度也小于用户设置阈值时,切换到第一层LOD渲染。
在本公开的一些实施例中,该方法还包括:对分块中的细胞,按照面积大小进行排序,从面积最大的细胞开始渲染。
在本公开的实施例中,读取切片细胞数据,获取细胞面积,根据细胞面积大小,对分块中的细胞进行排序。
在本公开的实施例中,当用户将切片缩小到很小,LOD渲染已经采用最粗糙的点来渲染时,由于视野中的细胞过多,就可以从面积最大的细胞开始渲染,丢失的细节比较少,且提高渲染帧率。
举例而言,假如有5千个细胞,第一个细胞就是面积最大的。如果将绘制的细胞实例数量设置为1,那么就只渲染第一个细胞。如果设置为500,那么就只渲染面积最大的500个细胞。
在本公开一些的实施例中,还包括:根据设定的待渲染范围,确定在待渲染范围内的细胞,对待渲染范围内的细胞,按照面积大小进行排序,从面积最大的细胞开始渲染。在本公开的一些实施例中,将待渲染数据按渲染精细度进行细胞轮廓渲染包括:基于第一层精细度的待渲染数据,绘制第一层精细度的细胞轮廓,或基于第二层精细度的待渲染数据,绘制第二层精细度的细胞轮廓,或基于第三层精细度的待渲染数据,绘制第三层精细度的细胞轮廓,或基于第四层精细度的待渲染数据,绘制第四层精细度的细胞轮廓。
在本公开的一种实施例中,以有效的轮廓点为16个点,第一层至第三层精细度为16、8、4个轮廓点的三种三角面精度等级为例,给每个分块绘制,绘制第一层精细度的细胞轮廓时,需要绘制14个三角面42个顶点,控制绘制顶点的起始LOD顶点索引为0。在顶点着色器shader代码中通过内置变量gl_VertexID控制顶点偏移,将最终的顶点位置偏移到正确的位置。例如第一个三角面的顶点索引为1,0,15,这些数据存在实例化数组的第一层LOD顶点索引数据中,通过位移操作获取到。细胞中心点位置为(5403,8393),轮廓顶点偏移量为[[18,-15],[13,-19],[8,-18],[4,-11],[5,-6],[-2,-3],[-11,-10],[-27,-4],[-28,10],[-23,11],[-14,2],[-4,1],[9,21],[18,20],[19,14],[15,6]],绘制第一个三角面的第一个顶点时gl_VertexID为0,通过0查询LOD第一层顶点索引值为1,通过1拿到轮廓顶点偏移量[13,-19],最终第一个顶点的位置为(5403+13,8393-19)。
相似地,绘制第二层精细度的细胞轮廓时,需要绘制6个三角面18个顶点,控制绘制顶点的起始LOD顶点索引为42。绘制第一个顶点时gl_VertexID为0,gl_VertexID+42=42;通过查询LOD顶点索引下标42拿到第二层精细度顶点索引0,细胞轮廓偏移量下标0为[18,-15],最终第一个顶点的位置为(5403+18,8393-15),以此类推,每个实例绘制6个三角面。绘制第三层精细度的细胞轮廓时,需要绘制2个三角面6个顶点,控制绘制顶点的起始LOD顶点索引为60。绘制第一个顶点时gl_VertexID为0,gl_VertexID+60=60;通过查询LOD顶点索引下标60拿到第二层精细度顶点索引0,细胞轮廓偏移量下标0为[18,-15],最终第一个顶点的位置为(5403+18,8393-15),以此类推,每个实例绘制2个三角面。
最后,绘制第四层精细时,采用gl.POINTS绘制细胞,通过设置gl_PointSize体现细胞面积。此时只用一个顶点绘制细胞,GPU计算量进一步减小。
在本公开的实施例中,当用户的机器配置足够高时,或者当前查看切片的细胞数量较少时,可将渲染效果等级提高,放大查看视野时减面时机推迟减面甚至不减面得到更好的渲染效果。当用户的机器配置较低时,渲染大切片出现卡顿后可调低渲染等级,使同时渲染的细节较少但重要的细胞分布信息不丢失,渲染帧率提高。等到聚焦到切片一个位置时,再渲染出细胞的所有细节。
以下基于图11-17,提供本公开一种实施例的效果展示,其中,切片中细胞总数为57317,chrome104.0.5112.102(正式版本)(64位),集成显卡:Intel(R)UHD Graphics 630,显示器分辨率1928×1080,全屏状态。
设置渲染精度使用第一层LOD精细度渲染。如图11所示。移动切片时,帧率降到50帧,表示已经出现掉帧的情况。此时,将设置渲染精细度切换到第二层LOD,浏览器满帧运行,且渲染效果良好,如图12所示。
将切片复制25份,设置合适渲染精度模拟百万个细胞的情况。缩小切片时,帧率51,比较顺畅,且细胞分布情况比较清晰,如图13所示。放大切片,切片细节开始清晰,如图14所示,展示了部分切片渲染表现。继续聚焦到一张切片时切片细节更加清晰,且帧率达到57,如图15所示,展示了聚焦单张切片渲染表现。继续聚焦到切片内部,细胞轮廓细节开始出现,细胞轮廓切换为8个顶点绘制,如图16所示。继续聚焦,细胞轮廓使用16个顶点绘制,如图17所示。
由此可知,采用本公开的细胞轮廓渲染方法,可以实现根据用户设置切换精细度,能达到较好的渲染效果。
综上,根据本公开实施例提供的细胞轮廓方法,获取切片细胞数据,对切片细胞数据分块处理,生成分块数据;基于切片细胞数据,对切片中细胞的轮廓顶点进行剖分处理和/或减面处理,生成多层精细度的轮廓顶点索引数据;将多层精细度的轮廓顶点索引数据写入对应的分块数据中,生成多层精细度的待渲染数据;根据待渲染数据进行细胞轮廓渲染。本公开使用多层精细度渲染,可根据用户设置切换不同精细度的渲染表现,用户缩放细胞大小时对切换精细度切换感知较弱,而且采用分块后使用顶点索引绘制,分块所有精细度数据压缩在同一个文件中,压缩率高,网络请求渲染文件时较快,渲染时占用电脑运行内存以及GPU显存较小,可适配多种机器配置,渲染效果更好,用户体验更佳。
为了实现上述本申请实施例提供的方法中的各功能,网络设备和终端设备可以包括硬件结构、软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能可以以硬件结构、软件模块、或者硬件结构加软件模块的方式来执行。
与上述几种实施例提供的细胞轮廓渲染方法相对应,本公开还提供一种细胞轮廓渲染装置,由于本公开实施例提供的细胞轮廓渲染装置与上述几种实施例提供的细胞轮廓渲染方法相对应,因此细胞轮廓渲染方法的实施方式也适用于本实施例提供的细胞轮廓渲染装置,在本实施例中不再详细描述。
图18为本公开实施例提供的一种细胞轮廓渲染装置300的结构示意图,如图18所示,该装置300可以包括:分块模块310,用于获取切片细胞数据,对切片细胞数据分块处理,生成分块数据;处理模块320,用于基于切片细胞数据,对切片中细胞的轮廓点进行剖分处理和/或减面处理,生成多层精细度的顶点索引数据;生成模块330,用于将多层精细度的顶点索引数据写入对应的分块数据中,生成多层精细度的待渲染数据;渲染模块340,用于根据待渲染数据进行细胞轮廓渲染。
在一些实施例中,分块模块310具体用于:确定切片中细胞所在位置的上边界和下边界,获取包围盒;根据包围盒的宽高以及分块中细胞数量的期望阈值,切分包围盒,得到不同的分块;读取切片中细胞的中心点位置,根据细胞的中心点位置,确定细胞所在的分块,生成分块数据。
在一些实施例中,处理模块320具体用于:基于切片细胞数据,对切片中细胞的轮廓点进行剖分处理,得到第一层精细度的顶点索引数据;对第一层精细度的轮廓点进行减面处理和剖分处理,得到第二层精细度的顶点索引数据,其中,第二层精细度的细胞轮廓点数量小于第一层精细度的细胞轮廓点数量;对第二层精细度的细胞轮廓点进行减面处理和剖分处理,得到第三层精细度的顶点索引数据,其中,第三次精细度的细胞轮廓点数量小于第二层精细度的细胞轮廓点数量。
在一些实施例中,处理模块320具体用于:生成第四层精细度的数据,其中,第四层精细度的细胞轮廓点数量小于第三层精细度的细胞轮廓点数量。
在一些实施例中,处理模块320还用于:当切片中细胞的轮廓点数量超过第一层精细度的轮廓点数量,将细胞拆分。
在一些实施例中,采用earcut三角剖分算法进行剖分处理。
在一些实施例中,采用保留有效面积算法进行减面处理。
在一些实施例中,生成模块330具体用于:将多层精细度的顶点索引及其对应的分块数据压缩到实例化数组中,获得多层精细度的待渲染数据。
在一些实施例中,渲染模块340具体用于:根据待渲染分块的大小以及设定的轮廓顶点密度确定渲染精细度,将待渲染数据按渲染精细度进行细胞轮廓渲染。
在一些实施例中,根据待渲染分块的大小以及设定的轮廓顶点密度确定渲染精细度包括:当待渲染分块的大小不变时,根据设定的轮廓点密度确定渲染精细度,或当设定的轮廓点密度不变时,根据待渲染分块的大小确定渲染精确度。
在一些实施例中,渲染模块340还用于:基于第一层精细度的待渲染数据,绘制第一层精细度的细胞轮廓,或基于第二层精细度的待渲染数据,绘制第二层精细度的细胞轮廓,或基于第三层精细度的待渲染数据,绘制第三层精细度的细胞轮廓。
在一些实施例中,渲染模块340还用于:基于视锥体,确定在可视范围内的分块,对可视范围内的分块进行细胞轮廓渲染。
在一些实施例中,渲染模块340还用于:对分块中的细胞,按照面积大小进行排序,从面积最大的细胞开始渲染。
综上,根据本公开实施例提供的细胞轮廓渲染装置,通过获取切片细胞数据,对切片细胞数据分块处理,生成分块数据;基于切片细胞数据,对切片中细胞的轮廓点进行剖分处理和/或减面处理,生成多层精细度的顶点索引数据;将多层精细度的顶点索引数据写入对应的分块数据中,生成多层精细度的待渲染数据;根据待渲染数据进行细胞轮廓渲染,可根据用户设置切换不同精细度的渲染表现,且采用分块后使用顶点索引绘制,分块所有精细度数据压缩为同一实例化数组,压缩率高,网络请求渲染文件时较快,渲染时占用电脑运行内存以及GPU显存较小,因此可适配多种机器配置,渲染效果更好,用户体验更佳。
上述本申请提供的实施例中,对本申请实施例提供的方法及装置进行了介绍。为了实现上述本申请实施例提供的方法中的各功能,电子设备可以包括硬件结构、软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能可以以硬件结构、软件模块、或者硬件结构加软件模块的方式来执行。
图19是根据一示例性实施例示出的一种用于实现上述细胞轮廓渲染或数据处理方法的电子设备400的框图。例如,电子设备400可以是移动电话,计算机,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
[根据细则91更正 12.06.2023]
参照图19,电子设备400可以包括以下一个或多个组件:处理组件402,存储器404,电源组件405,多媒体组件406,音频组件410,输入/输出(I/O)的接口412,传感器组件414,以及通信组件416。
参照图19,电子设备400可以包括以下一个或多个组件:处理组件402,存储器404,电源组件405,多媒体组件406,音频组件410,输入/输出(I/O)的接口412,传感器组件414,以及通信组件416。
处理组件402通常控制电子设备400的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件402可以包括一个或多个处理器520来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件402可以包括一个或多个模块,便于处理组件402和其他组件之间的交互。例如,处理组件402可以包括多媒体模块,以方便多媒体组件408和处理组件402之间的交互。
存储器404被配置为存储各种类型的数据以支持在电子设备400的操作。这些数据的示例包括用于在电子设备400上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器404可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件405为电子设备400的各种组件提供电力。电源组件405可以包括电源管理系统,一个或多个电源,及其他与为电子设备400生成、管理和分配电力相关联的组件。
多媒体组件406包括在电子设备400和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件408包括一个前置摄像头和/或后置摄像头。当电子设备400处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件410被配置为输出和/或输入音频信号。例如,音频组件410包括一个麦克风(MIC),当电子设备400处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器404或经由通信组件416发送。在一些实施例中,音频组件410还包括一个扬声器,用于输出音频信号。
I/O接口412为处理组件402和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件414包括一个或多个传感器,用于为电子设备400提供各个方面的状态评估。例如,传感器组件414可以检测到电子设备400的打开/关闭状态,组件的相对定位,例如组件为电子设备400的显示器和小键盘,传感器组件414还可以检测电子设备400或电子设备400一个组件的位置改变,用户与电子设备400接触的存在或不存在,电子设备400方位或加速/减速和电子设备400的温度变化。传感器组件414可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件414还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件414还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件416被配置为便于电子设备400和其他设备之间有线或无线方式的通信。电子设备400可以接入基于通信标准的无线网络,如WiFi,2G或3G,4G LTE、5G NR(New Radio)或它们的组合。在一个示例性实施例中,通信组件415经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件416还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备400可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器404,上述指令可由电子设备400的处理器520执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本公开的实施例还提出了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开上述实施例中描述的细胞轮廓渲染或数据处理方法。
本公开的实施例还提出一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行本公开上述实施例中描述的细胞轮廓渲染或数据处理方法。
本公开的实施例还提出了一种芯片,该芯片包括一个或多个接口电路和一个或多个处理器;接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令,当处理器执行计算机指令时,使得电子设备执行本公开上述实施例中描述的细胞轮廓渲染或数据处理方法。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本说明书的描述中,参考术语“一个实施方式”、“一些实施方式”、“示意性实施方式”、“示例”、“具体示例”或“一些示例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理模块的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(控制方法),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
应当理解,本发明的实施方式的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明的各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。
尽管上面已经示出和描述了本发明的实施方式,可以理解的是,上述实施方式是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施实施进行变化、修改、替换和变型。
Claims (18)
- 一种细胞轮廓渲染方法,其特征在于,所述方法包括:获取切片细胞数据,对所述切片细胞数据分块处理,生成分块数据;基于所述切片细胞数据,对切片中细胞的轮廓点进行剖分处理和/或减面处理,生成多层精细度的顶点索引数据;将所述多层精细度的顶点索引数据写入对应的分块数据中,生成多层精细度的待渲染数据;根据所述待渲染数据进行细胞轮廓渲染。
- 根据权利要求1所述的方法,其特征在于,所述获取切片细胞数据,对所述切片细胞数据分块处理,生成分块数据包括:确定所述切片中细胞所在位置的上边界和下边界,获取包围盒;根据所述包围盒的宽高以及分块中细胞数量的期望阈值,切分所述包围盒,得到不同的分块;读取切片中细胞的中心点位置,根据细胞的中心点位置,确定所述细胞所在的分块,生成分块数据。
- 根据权利要求1所述的方法,其特征在于,所述基于所述切片细胞数据,对切片中细胞的轮廓点进行剖分处理和/或减面处理,生成多层精细度的顶点索引数据包括:基于所述切片细胞数据,对切片中细胞的轮廓点进行剖分处理,得到第一层精细度的顶点索引数据;对所述第一层精细度的轮廓点进行减面处理和剖分处理,得到第二层精细度的顶点索引数据,其中,所述第二层精细度的细胞轮廓点数量小于所述第一层精细度的细胞轮廓点数量;对所述第二层精细度的细胞轮廓点进行减面处理和剖分处理,得到第三层精细度的顶点索引数据,其中,所述第三次精细度的细胞轮廓点数量小于所述第二层精细度的细胞轮廓点数量,
- 根据权利要求3所述的方法,其特征在于,所述方法还包括:生成第四层精细度的数据,其中,所述第四层精细度的细胞轮廓点数量小于所述第三层精细度的细胞轮廓点数量。
- 根据权利要求3所述的方法,其特征在于,所述方法还包括:当所述切片中细胞的轮廓点数量超过第一层精细度的轮廓点数量,将所述细胞拆分。
- 根据权利要求3所述的方法,其特征在于,采用earcut三角剖分算法进行剖分处理。
- 根据权利要求3所述的方法,其特征在于,采用保留有效面积算法进行减面处理。
- 根据权利要求1所述的方法,其特征在于,所述生成多层精细度的待渲染数据包括:将所述多层精细度的顶点索引及其对应的分块数据压缩到实例化数组中,获得所述多层精细度的待渲染数据。
- 根据权利要求1所述的方法,其特征在于,所述根据所述待渲染数据进行细胞轮廓渲染包括:根据待渲染分块的大小以及设定的轮廓顶点密度确定渲染精细度,将所述待渲染数据按所述渲染精细度进行细胞轮廓渲染。
- 根据权利要求9所述的方法,其特征在于,所述根据待渲染分块的大小以及设定的轮廓顶点密度确定渲染精细度包括:当所述待渲染分块的大小不变时,根据设定的轮廓顶点密度确定渲染精细度,或当所述设定的轮廓顶点密度不变时,根据待渲染分块的大小确定渲染精确度。
- 根据权利要求3所述的方法,其特征在于,所述将待渲染数据按所述渲染精细度进行细胞轮廓渲染包括:基于第一层精细度的待渲染数据,绘制第一层精细度的细胞轮廓,或基于第二层精细度的待渲染数据,绘制第二层精细度的细胞轮廓,或基于第三层精细度的待渲染数据,绘制第三层精细度的细胞轮廓。
- 根据权利要求1-11中任一项所述的方法,其特征在于,所述方法还包括:基于视锥体,确定在可视范围内的分块,对所述可视范围内的分块进行细胞轮廓渲染。
- 根据权利要求1-11中任一项所述的方法,其特征在于,所述方法还包括:对所述分块中的细胞,按照面积大小进行排序,从面积最大的细胞开始渲染。
- 一种细胞轮廓渲染装置,其特征在于,所述装置包括:分块模块,用于获取切片细胞数据,对所述切片细胞数据分块处理,生成分块数据;处理模块,用于基于所述切片细胞数据,对切片中细胞的轮廓点进行剖分处理和/或减面处理,生成多层精细度的顶点索引数据;生成模块,用于将所述多层精细度的顶点索引数据写入对应的分块数据中,生成多层精细度的待渲染数据;渲染模块,用于根据待渲染数据进行细胞轮廓渲染。
- 一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-13中任一项所述的方法。
- 一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行根据权利要求1-13中任一项所述的方法。
- 一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-13中任一项所述的方法。
- 一种芯片,其特征在于,包括一个或多个接口电路和一个或多个处理器;所述接口电路用于从电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括存储器中存储的计算机指令,当所述处理器执行所述计算机指令时,使得所述电子设备执行权利要求1-13中任一项所述的方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2023/096112 WO2024239286A1 (zh) | 2023-05-24 | 2023-05-24 | 细胞轮廓渲染方法、装置及系统 |
| CN202380096255.XA CN120937047A (zh) | 2023-05-24 | 2023-05-24 | 细胞轮廓渲染方法、装置及系统 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2023/096112 WO2024239286A1 (zh) | 2023-05-24 | 2023-05-24 | 细胞轮廓渲染方法、装置及系统 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024239286A1 true WO2024239286A1 (zh) | 2024-11-28 |
Family
ID=93588794
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2023/096112 Ceased WO2024239286A1 (zh) | 2023-05-24 | 2023-05-24 | 细胞轮廓渲染方法、装置及系统 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN120937047A (zh) |
| WO (1) | WO2024239286A1 (zh) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101814193A (zh) * | 2010-03-09 | 2010-08-25 | 哈尔滨工业大学 | 基于gpu加速的实时三维心脏数据体绘制方法 |
| CN112113937A (zh) * | 2020-07-20 | 2020-12-22 | 浙江大学 | 一种基于连续切片、多色荧光和三维重建的组织器官立体成像与分析方法 |
| CN115904234A (zh) * | 2022-11-10 | 2023-04-04 | 长沙眸瑞网络科技有限公司 | 一种分层分块三维模型的数据存储方法、装置和电子装置 |
-
2023
- 2023-05-24 CN CN202380096255.XA patent/CN120937047A/zh active Pending
- 2023-05-24 WO PCT/CN2023/096112 patent/WO2024239286A1/zh not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101814193A (zh) * | 2010-03-09 | 2010-08-25 | 哈尔滨工业大学 | 基于gpu加速的实时三维心脏数据体绘制方法 |
| CN112113937A (zh) * | 2020-07-20 | 2020-12-22 | 浙江大学 | 一种基于连续切片、多色荧光和三维重建的组织器官立体成像与分析方法 |
| CN115904234A (zh) * | 2022-11-10 | 2023-04-04 | 长沙眸瑞网络科技有限公司 | 一种分层分块三维模型的数据存储方法、装置和电子装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN120937047A (zh) | 2025-11-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN108536463B (zh) | 获取资源包的方法、装置、设备及计算机可读存储介质 | |
| CN110047152B (zh) | 基于虚拟环境的物体构建方法、装置及可读存储介质 | |
| KR20220083839A (ko) | 가상 장면을 표시하는 방법 및 장치, 그리고 기기 및 저장 매체 | |
| CN108765531A (zh) | 图像渲染方法、装置、存储介质及智能终端 | |
| CN112245926B (zh) | 虚拟地形的渲染方法、装置、设备及介质 | |
| CN114066714B (zh) | 一种合批渲染方法、装置、设备及存储介质 | |
| CN112843700B (zh) | 地形图像的生成方法、装置、计算机设备和存储介质 | |
| CN111603772B (zh) | 区域检测方法、装置、设备及存储介质 | |
| JP7210089B2 (ja) | リソースの表示方法、装置、機器及びコンピュータプログラム | |
| CN112395375B (zh) | 一种地图呈现方法及终端、计算机可读存储介质 | |
| CN115814407B (zh) | 信息处理方法、装置、存储介质以及电子装置 | |
| KR102662691B1 (ko) | 적응적 인트라 리프레시 메커니즘에 기반한 디코딩 및 인코딩 | |
| US20220351478A1 (en) | Stereoscopic image acquisition method, electronic device and storage medium | |
| CN117635799B (zh) | 三维模型的渲染方法、装置、电子设备及存储介质 | |
| CN108921798B (zh) | 图像处理的方法、装置及电子设备 | |
| CN110209325A (zh) | 一种3d场景显示控制方法、系统及设备 | |
| WO2023226371A1 (zh) | 目标对象交互式重现的控制方法、装置、设备及存储介质 | |
| CN114491914A (zh) | 模型简化方法、装置、终端设备及可读存储介质 | |
| CN113082699A (zh) | 游戏的显示控制方法、装置以及电子终端 | |
| WO2024239286A1 (zh) | 细胞轮廓渲染方法、装置及系统 | |
| CN112116719B (zh) | 三维场景中对象的确定方法、装置、存储介质和电子设备 | |
| CN118172465A (zh) | 虚拟场景的渲染方法、装置、计算机设备及存储介质 | |
| CN116962783A (zh) | 可视化元素的处理方法、装置、计算机设备及存储介质 | |
| CN116188552A (zh) | 基于区域的深度测试方法、装置、设备及存储介质 | |
| CN115457200A (zh) | 2.5维图像自动真立体显示方法、装置、设备及存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23937960 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |