Webgl-based seismic wave ct achievement data visualization method

By generating a spatial reference point set and performing color rendering based on a WebGL-based method, the real-time performance and ease of operation of the 3D visualization tool for seismic CT results data were solved, enabling efficient data display and analysis.

CN118312688BActive Publication Date: 2026-05-29NORTHWEST ENGINEERING CORPORATION LIMITED

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
NORTHWEST ENGINEERING CORPORATION LIMITED
Filing Date
2024-04-23
Publication Date
2026-05-29

AI Technical Summary

Technical Problem

Existing 3D visualization tools for seismic CT data have limitations in terms of real-time performance, ease of operation, and interactivity. They are difficult to intuitively display the distribution, orientation, and spatial location of underground anomalies, and have high computer hardware requirements, which affects the visualization of the detection results.

Method used

A WebGL-based method is used to generate a set of spatial reference points within the integer bounding box of a 3D model. Wave velocity values ​​are calculated using the DSI interpolation method, and color rendering is performed using shaders to achieve 3D visualization of seismic CT results data.

Benefits of technology

It enables efficient, real-time loading and rendering of seismic CT data, improving communication and decision-making efficiency in engineering projects, reducing the requirements for computer hardware, and expanding the audience for the technology's application.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118312688B_ABST
    Figure CN118312688B_ABST
Patent Text Reader

Abstract

The WebGL-based seismic wave CT achievement data visualization method disclosed by the application comprises the following steps: generating a set of spatial reference points within the range of the three-dimensional model integer bounding box; calculating the wave velocity values of all the reference points in the set of spatial reference points by using a DSI interpolation calculation method; judging whether to simplify the set of spatial reference points and transmitting the obtained result to a shader; calculating the wave velocity values of to-be-rendered points according to the set of spatial reference points and the wave velocity values of the reference points, determining the color values of the to-be-rendered points and performing color rendering. The application solves the problems of inconvenience in demonstration and poor real-time performance when using ItasCAD and other software to demonstrate and report the seismic wave CT three-dimensional model achievements, and can realize real-time loading and rendering of large-scale data by generating a set of reference points according to the seismic wave CT achievement data for three-dimensional visualization on the Web side, so that the seismic wave CT achievement data can be understood and analyzed intuitively and efficiently, thereby improving the communication and decision-making efficiency of engineering projects.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the field of building information modeling and computer graphics technology, specifically involving a WebGL-based method for visualizing seismic wave CT results data. Background Technology

[0002] In geological exploration, seismic wave CT is a commonly used geophysical method that can relatively accurately determine the distribution of karst, faults, and fractured rock masses within boreholes. The propagation speed of seismic waves in strata depends on the physical properties of the rock constituents and is related to the structural characteristics of the rock mass. Different rock types produce different seismic wave propagation speeds; even within the same rock mass, changes in structural characteristics will alter the propagation speed. Seismic wave CT utilizes the close relationship between seismic wave velocity and the mechanical properties of the medium to obtain the spatial distribution of seismic wave velocity in the subsurface medium. However, the results obtained by seismic wave CT are scattered and independent two-dimensional profile data. The correlation and connectivity of data across different profiles are not easily analyzed, and the distribution, orientation, spatial location, and morphological information of subsurface anomalies cannot be intuitively presented. Furthermore, its poor intuitiveness makes it difficult for non-geologists to understand and construct a three-dimensional spatial distribution, thus affecting the visualization of the exploration results. While traditional 3D visualization tools, such as ItasCAD software, can achieve 3D visualization of seismic CT results data, they have obvious limitations in terms of real-time performance, ease of operation, and interactivity. They are also prone to delays when processing large amounts of data and have high requirements for computer hardware, which limits their practicality in presentations and reports.

[0003] With the development of computer graphics and the continuous advancement of Web technology, WebGL, as a technology for implementing 3D graphics rendering in browsers, has been widely used. Through WebGL, developers can directly display complex 3D scenes and models on web pages without relying on any plugins. By combining seismic CT data with lightweight models, 3D visualization can be achieved on the web. Leveraging the cross-platform compatibility, ease of access, and real-time updating capabilities of the web, a more flexible, lightweight, and easily shareable solution for 3D visualization of seismic CT data can be provided. Summary of the Invention

[0004] The purpose of this invention is to provide a WebGL-based method for visualizing seismic CT results, which solves the problem of low efficiency in displaying and reporting seismic CT 3D model results using existing software.

[0005] The technical solution adopted in this invention is: a WebGL-based method for visualizing seismic CT results data, comprising the following steps:

[0006] Step 1: Generate a set of spatial reference points within the integer bounding box of the 3D model;

[0007] Step 2: Based on the seismic wave CT results, calculate the wave velocity values ​​of all reference points in the spatial reference point set using the DSI interpolation method;

[0008] Step 3: Determine whether to simplify the spatial reference point set based on the size of the model coordinate data span input by the user, and pass the resulting spatial reference point set into the shader;

[0009] Step 4: Calculate the wave velocity value of the point to be rendered based on the set of spatial reference points and the wave velocity values ​​of the reference points, determine the color value of the point to be rendered, and perform color rendering.

[0010] The invention is further characterized in that,

[0011] Step 1 specifically includes the following steps:

[0012] Step 1.1: Import the relevant 3D model data. Determine the smallest integer hexahedral bounding box B with axis alignment based on the 3D model used. Let X... min Y min Z min Let X be the minimum value of the coordinate point of the 3D model in the X, Y, and Z axes respectively. max Y max Z max Let x be the maximum values ​​of the coordinates of the three-dimensional model points along the X, Y, and Z axes, respectively. Let [] be the floor sign, and [x] represent the largest integer not exceeding x. Then the coordinates x, y, and z of all points within and on the boundary of the bounding box B satisfy the following:

[0013]

[0014] Step 1.2: Let the side lengths of the bounding box B in the X, Y, and Z axes be L respectively. x L y L z Then we have:

[0015]

[0016] Reference points are generated at integer coordinates both inside and at the boundary of bounding box B, ultimately forming a spatial reference point set across the entire bounding box.

[0017] Step 1.3: Store each reference point in the reference point set in a three-dimensional array P, and establish a correspondence between the three-dimensional coordinates of the reference points and the array indices. Initialize the floating-point three-dimensional array float P[L x ][L y ][L z ],set up:

[0018]

[0019] In the formula, B xmin B ymin B zmin Let x, y, and z represent the offsets of the smallest x, y, and z coordinates relative to 0 within the integer bounding box B. If the coordinates of a reference point are (x, y, z), then P[xB] in the array... xmin ][yB ymin ][zB zmin ] represents a reference point, and the value stored in the array element represents the wave velocity value of the reference point. Any element in array P represents a point in the set of reference points, thus completing the generation and storage of the reference point set.

[0020] The simplification method in step 3 specifically includes the following steps:

[0021] Step 3.1: For reference points on the model surface, if the model shape is regular, only the integer reference points around the model vertices are retained, and a new mapping relationship is formed between the reference point coordinates and the array subscripts; if the model is irregular, the reference points are sparsed, or the reference points in the largest hexahedral space inside the model are removed. After removal, the remaining reference points are stored continuously in the array, and the offset of each dimension is set according to the removal method to form a new mapping relationship between the array subscripts and the reference points.

[0022] For the reference points of the model profile, the nearest integer reference points on both sides of the profile are retained for simplification;

[0023] Step 3.2: Create a texture buffer and store the simplified reference point set data into the texture buffer.

[0024] Step 4, when rendering colors on the model surface, specifically includes the following steps:

[0025] Step 4.1: Divide the wave velocity value and color band according to the user's set parameters;

[0026] Step 4.2: Combine the model vertices, projection matrix, view matrix, and model matrix M. model And a texture buffer with reference point set data is passed to the shader;

[0027] Step 4.3: In the vertex shader, pass the vertex coordinates of the model to the fragment shader;

[0028] Step 4.4: Calculate the world coordinates V of the current point V to be rendered in the fragment shader. world Let the local coordinates of the current point to be rendered be V. local The model matrix is ​​M model Then we have: V world =M model·V local ;

[0029] Step 4.5: Based on world coordinates V world Obtain the coordinates of 8 reference points in the cube space where it is located, and get the wave velocity values ​​of the 8 reference points in the texture buffer;

[0030] Step 4.6: Based on the wave velocity values ​​at 8 reference points and the distance from the 8 reference points to V... world Distance interpolation calculation V world The wave velocity value;

[0031] Step 4.7: Obtain the color value of the current point V to be rendered based on the wave velocity value range and color band division results. After all points to be rendered are rendered, a three-dimensional model is formed in which the surface color represents the wave velocity information.

[0032] Step 4.5 specifically involves:

[0033] If the spatial reference point set is not simplified, let the world coordinates of the point V to be rendered be V0. world Coordinates are (x v y v , z v Based on the coordinates of point V, eight reference points are determined within the cube space containing it. The coordinates of these eight reference points are as follows:

[0034] P1([x v ][y v ][z v ])

[0035] P2([x v ][y v ][z v +1])

[0036] P3([x v ][y v +1][z v ])

[0037] P4([x v ][y v +1][z v +1])

[0038] P5([x v +1][y v ][z v ])

[0039] P6([x v +1][y v ][z v +1])

[0040] P7([xv +1][y v +1][z v ])

[0041] P8([x v +1][y v +1][z v +1])

[0042] Based on the coordinates of the eight reference points P1 to P8, obtain the corresponding wave velocity values ​​from array P.

[0043]

[0044] If the spatial reference point set is simplified, then according to the mapping relationship between the array index and the reference point formed by the simplification method in step 3, eight reference points P1 to P8 are found, and the wave velocity values ​​corresponding to the eight reference points are obtained in the texture buffer.

[0045] Step 4, when rendering the model profile with color, specifically includes the following steps:

[0046] Step 4.1: Divide the wave velocity value and color band according to the user's set parameters;

[0047] Step 4.2: Generate the four vertices of the profile based on the profile location information that the user wants to view;

[0048] Step 4.3: Combine the profile vertices, projection matrix, view matrix, and model matrix M. model And a texture buffer with reference point set data is passed to the shader;

[0049] Step 4.4: In the vertex shader, pass the vertex coordinates of the profile to the fragment shader;

[0050] Step 4.5: Calculate the world coordinates V of the current point V to be rendered in the fragment shader. world Let the local coordinates of the current point to be rendered be V. local The model matrix is ​​M model Then we have: V world =M model ·V local ;

[0051] Step 4.6, if world coordinates V world If the point is not within the spatial reference point set, then the color of the current point V to be rendered is directly set to white semi-transparent; if the world coordinates V world Within the set of spatial reference points, then according to V world The coordinates of the eight reference points in the cube space where it is located are obtained, and the wave velocity values ​​of the eight reference points are obtained in the texture buffer;

[0052] Step 4.7: Based on the wave velocity values ​​at 8 reference points and the distance from the 8 reference points to V... world Distance interpolation calculation V world The wave velocity value;

[0053] Step 4.8: Obtain the color value of the current point V to be rendered based on the wave velocity value and the color band division result. After all points to be rendered are rendered, a cross-section representing the wave velocity information through the surface color is formed.

[0054] The beneficial effects of this invention are as follows: The WebGL-based seismic CT result data visualization method of this invention solves the problems of inconvenience and poor real-time performance when displaying and reporting seismic CT 3D model results using software such as ItasCAD. By generating a reference point set based on the seismic CT result data for 3D visualization on the Web, it can realize the real-time loading and rendering of large-scale data, and can intuitively and efficiently understand and analyze the seismic CT result data, thereby improving the efficiency of communication and decision-making in engineering projects. Attached Figure Description

[0055] Figure 1 This is a flowchart illustrating the WebGL-based method for visualizing seismic CT results data according to the present invention.

[0056] Figure 2 This is a schematic diagram of the cubic space formed by every 8 reference points in the WebGL-based seismic CT result data visualization method of the present invention;

[0057] Figure 3 This is a schematic diagram showing the positional relationship of eight reference points in the cube space where the point to be rendered is located in the WebGL-based seismic CT result data visualization method of the present invention.

[0058] Figure 4 This is a schematic diagram of the effect of rendering the surface of a three-dimensional model obtained by the WebGL-based seismic CT results data visualization method of the present invention;

[0059] Figure 5 This is a schematic diagram of the effect of rendering a three-dimensional model profile obtained by the WebGL-based seismic wave CT result data visualization method of the present invention. Detailed Implementation

[0060] The present invention will now be described in detail with reference to the accompanying drawings and specific embodiments.

[0061] Example 1

[0062] This invention provides a WebGL-based method for visualizing seismic CT results data, such as... Figure 1 As shown:

[0063] First, data preparation is performed before visualization rendering. The 3D model and seismic CT data are imported into the system platform. The seismic CT data is in the form of the x, y, and z 3D coordinates of each measured point and the wave velocity value at that point. After importation, reference points are generated at locations where the coordinates are all integers within the smallest integer bounding box region of the model. The set of these reference points is called the spatial reference point set. Every eight reference points in the reference point set form a cubic space, such as... Figure 2 The gray area is shown. The spatial reference point set is stored using a three-dimensional integer array. During storage, the three-dimensional coordinates of the points are associated with the array index, allowing for quick lookup and access to reference points based on coordinate values ​​later. Then, based on the wave velocity values ​​measured from the seismic CT data, the points within the spatial reference point set are interpolated using the DSI interpolation algorithm to obtain the wave velocity values ​​for each point in the spatial reference point set. Afterward, the number of reference points in the spatial reference point set is checked. If the number of reference points is very large, it can be reduced to meet hardware and driver limitations during subsequent rendering.

[0064] Next, the model visualization and rendering work is performed. Based on the maximum and minimum wave velocity values ​​in the seismic CT data and the number of color divisions set by the user, the range of each wave velocity and its corresponding color are determined to establish the mapping relationship between wave velocity values ​​and color values. When rendering the model surface, the world coordinates (denoted as v) of all points to be rendered are calculated in parallel in the fragment shader. Based on these coordinates, eight reference points in the cube space where the point is located are found. Then, the wave velocity value of point v is calculated by interpolation using the wave velocity values ​​of these eight points and their distances to point v. After that, the color value of the point to be rendered is obtained according to the mapping relationship between wave velocity values ​​and color values. Finally, the rendering is performed in the fragment shader to obtain a 3D model with wave velocity contour maps. When analyzing the wave velocity information of a model by dissecting it, the four vertices of the quadrilateral are first determined based on the user-inputted cross-section points and direction vectors, and the quadrilateral is drawn. Then, similar to the model surface rendering process, the world coordinates (denoted as p) of all points to be rendered on the quadrilateral are calculated in parallel in the fragment shader. The wave velocity value of point p is then calculated by interpolating the wave velocity values ​​of these eight points and their distances to point p. Based on the mapping relationship between wave velocity values ​​and color values, the color value of the point to be rendered is obtained. Rendering in the fragment shader yields a cross-section with wave velocity contour map information, and a relatively fast result response can be achieved.

[0065] Example 2

[0066] This invention provides a WebGL-based method for visualizing seismic CT results data, and the specific steps are as follows:

[0067] 1. Generate a set of spatial reference points within the integer bounding box of the 3D model.

[0068] First, for the 3D model, its smallest integer bounding box is formed; second, within the bounding box region, reference points are generated at all positions where the coordinate values ​​are integers, forming a spatial reference point set to prepare data for subsequent model rendering. This mainly involves the following steps:

[0069] 1. Import the relevant 3D model data into the system. Based on the 3D model used, determine the smallest integer hexahedral bounding box B aligned to the axes of the model. This is the smallest hexahedron that completely contains the model, has edges parallel to the coordinate axes, and whose eight vertices have integer 3D coordinate values. Let X... min Y min Z min Let X be the minimum value of the model coordinate point in the X, Y, and Z axes respectively. max Y max Z max Let x be the maximum value of the model coordinates along the X, Y, and Z axes respectively. Let [] be the floor sign, and [x] represent the largest integer not exceeding x. Then the coordinates x, y, and z of all points within and outside the bounding box B satisfy the following:

[0070]

[0071] 2. Let the side lengths of the hexagonal bounding box B in the X, Y, and Z axes be L, respectively. x L y L z Then we have:

[0072]

[0073] Reference points are generated at integer coordinates both inside and at the boundary of the bounding box B, ultimately forming a spatial reference point set across the entire hexahedral bounding box.

[0074] 3. Store each reference point in a 3D array P, ensuring that the coordinates of the 3D points correspond to the array indices. Initialize the floating-point 3D array float P[L x ][L y ][L z ],set up:

[0075]

[0076] In the formula B xmin B ymin B zmin These represent the offsets of the smallest x, y, and z coordinates relative to 0 within the integer bounding box B, respectively. The purpose is to make the element P[0][0][0] in array P represent the coordinate point (B) within the bounding box B. xmin B ymin B zminBased on this correspondence, if the coordinates of a reference point are (x, y, z), then P[xB] in the array can be made to... xmin ][yB ymin ][zB zmin The array P represents a reference point, and each element stores the wave velocity value at that point. Thus, any element in array P represents a point in the spatial reference point set, completing the generation and storage of the spatial reference point set. Furthermore, because these reference points are regularly arranged in space, the entire space is divided into numerous cubic spaces, each with 8 reference points, such as... Figure 2 As shown.

[0077] II. Calculating the wave velocity value of a spatial reference point set

[0078] The seismic wave CT results data are in the form of three-dimensional coordinate points and wave velocity values ​​at those points. In order to obtain the wave velocity values ​​of all reference points, the DSI interpolation method is used to calculate the wave velocity values ​​of all reference points based on the seismic wave CT results data.

[0079] The DSI interpolation method treats each point in the spatial reference point set as a grid node, and calculates the wave velocity value of each node as a function on the grid node. The estimation problem, according to the DSI method, involves the following steps:

[0080] 1. Establish the objective function for calculating the optimal solution at each node of the computational grid. in For global roughness function, This is the linear constraint violation function.

[0081] 2. By making the objective function To find the minimum, we need to find the solution separately. and To reach the minimum.

[0082] (1) Make the global roughness function To achieve a minimum, thus making the function value at any node as close as possible to the mean of the values ​​of the nodes in the neighborhood of that node, that is, to make each node... The values ​​should be as smooth as possible;

[0083] (2) Transform the original sampled data into linear constraints defined on some nodes, and make the violation function of the linear constraints... To achieve the minimum, that is, to maximize the degree of compliance with the linear constraints, so that the values ​​of the relevant nodes are as close as possible to the sampled data.

[0084] 3. Simplify the spatial reference point set and pass it to the shader.

[0085] When the user-input model coordinate data spans a very large range, the amount of data and computation required for the spatial reference point set generated by the above method will be enormous. This not only affects system performance but, more importantly, the large array size may exceed hardware or driver limitations during rendering. Therefore, for complex geological and structural models, appropriate research objects can be selected based on the research objectives, and different ranges can be chosen for different scenarios to reasonably simplify the model. An engineering mechanics model containing geological and cavern structural information can be abstracted and generalized from actual engineering. Secondly, reference points that will not affect the rendering results should be removed and not carried over to the rendering process. This can be done as follows:

[0086] 1. When rendering the model surface, if the model is highly regular, only the integer reference points around the model vertices can be retained, and a new mapping relationship can be formed between the coordinates of the reference points and the array indices. If the model is irregular, the reference points can be sparsed, for example, by setting a reference point every two integers. Furthermore, since the cloud map is only rendered on the outer surface of the model, the reference points inside the model will not be accessed in the calculation. To facilitate data simplification, reference points in the largest hexahedral space inside the model can be removed based on the overall vertex coordinates of the model. After removal, the remaining reference points should be stored contiguously in an array, and the offset of each dimension should be set according to the removal method. A new mapping relationship between array indices and reference points is formed to ensure that the eight reference points in the cube space where a point is located can be quickly found based on the coordinates of that point.

[0087] 2. When rendering the profile, since it is a quadrilateral plane, only the nearest integer reference points on both sides of the plane can be retained for simplification.

[0088] 3. Create a texture buffer and store the spatial reference point set data into the texture buffer. One characteristic of the texture buffer is its loose size limit. The texture buffer is similar to a traditional one-dimensional texture, but larger.

[0089] IV. Calculation of wave velocity value and color rendering of the point to be rendered

[0090] The following steps are used when rendering the model surface:

[0091] 1. Obtain the maximum and minimum wave velocity values ​​of the seismic wave CT data. Based on the number of color segments set by the user and the color values ​​set for the lowest and highest points, obtain the color values ​​corresponding to each wave velocity region. Subsequently, the color value can be determined by the wave velocity region where a certain wave velocity value is located.

[0092] 2. Configuring the model vertices, projection matrix, view matrix, and model matrix M. model And a texture buffer with spatial reference point set data is passed to the shader.

[0093] 3. In the vertex shader, pass the vertex coordinates of the model to the fragment shader.

[0094] 4. Calculate the world coordinates V for each point V to be rendered in the fragment shader. world Let the local coordinates of the rendering point be V. local The model matrix is ​​M model Then we have: V world =M model ·V local .

[0095] 5. Based on coordinate V world Get V world The coordinates of the 8 reference points in the cube space are determined as follows: Without simplifying the spatial reference point set (i.e., ensuring the reference point coordinates match the array indices), let the world coordinates of the point V to be rendered be V0. world Coordinates are (x v y v , z v If a coordinate value is used, then eight reference points in the cube space where the object is located can be quickly determined, such as... Figure 3 As shown. The coordinates of these 8 points are as follows:

[0096] P1([x v ][y v ][z v ])

[0097] P2([x v ][y v ][z v +1])

[0098] P3([x v ][y v +1][z v ])

[0099] P4([x v ][y v +1][z v +1])

[0100] P5([x v +1][y v ][z v ])

[0101] P6([x v +1][y v ][z v +1])

[0102] P7([x v +1][y v +1][z v ])

[0103] P8([xv +1][y v +1][z v +1])

[0104] Based on the coordinate values, the wave velocity values ​​corresponding to points P1-P8 You can quickly obtain the following from array P:

[0105]

[0106] Since array P is already stored as a texture buffer, the wave velocity values ​​of these 8 reference points can be obtained from the texture buffer according to the above principle.

[0107] If the spatial reference point set is simplified, then the eight points P1-P8 are found based on the mapping relationship between the array indices and reference points formed by the simplification method. The wave velocity values ​​of these eight reference points are then obtained from the texture buffer.

[0108] 6. Based on the wave velocity values ​​at these 8 reference points and their values ​​to V world Distance, interpolation calculation V world The wave velocity value.

[0109] 7. Based on the wave velocity range and color banding results, the color value of rendering point V is obtained. After all rendering points are completed, a 3D model is formed where surface color represents wave velocity information, such as... Figure 4 As shown.

[0110] A cross-section is actually an internal section obtained by dividing the model into quadrilateral facets. Since the cross-section has only four vertices, in order to generate a cloud map of wave velocity information on the quadrilateral cross-section, the color value of each pixel on the cross-section needs to be determined pixel by pixel when rendering the cross-section. The following steps are used when rendering the cross-section:

[0111] 1. Obtain the maximum and minimum wave velocity values ​​of the seismic wave CT data. Based on the number of color segments set by the user and the color values ​​set for the lowest and highest points, obtain the color values ​​corresponding to each wave velocity region. Subsequently, the color value can be determined by the wave velocity region where a certain wave velocity value is located.

[0112] 2. Generate the four vertices of the profile based on the profile location information that the user wants to view.

[0113] 3. Combine the profile vertices, projection matrix, view matrix, and model matrix M. model And a texture buffer with spatial reference point set data is passed to the shader.

[0114] 4. In the vertex shader, pass the vertex coordinates of the profile to the fragment shader.

[0115] 5. Calculate the world coordinates V of the current drawing point V in the fragment shader. worldLet the local coordinates of the currently drawn point be V. local The model matrix is ​​M model Then we have: V world =M model ·V local .

[0116] 6. If V world If the pixel is not within the spatial reference point set, then the pixel color of that point is directly set to white and semi-transparent; if V world Within the set of spatial reference points, then according to V world Get V world The coordinates of the eight reference points in the cube space are obtained, and the wave velocity values ​​of these eight reference points are obtained in the texture buffer.

[0117] 7. Based on the wave velocity values ​​at these 8 reference points and their values ​​to V world Distance interpolation calculation V world The wave velocity value.

[0118] 8. Based on the wave velocity value and color banding results, obtain the color value of the current drawing point V. After all drawing points are completed, a profile representing wave velocity information through surface color is formed, such as... Figure 5 As shown.

[0119] Example 3

[0120] The WebGL-based seismic CT results data visualization method of this invention effectively solves the problems of inconvenient demonstration and poor real-time performance when displaying and reporting seismic CT 3D model results in software such as ItasCAD. The beneficial effects are mainly reflected in the following aspects:

[0121] (1) Based on the relevant information of the three-dimensional model, the present invention generates a set of regular spatial reference points within a certain range and stores them in a three-dimensional array. When storing, the subscript of the three-dimensional array is associated with the three-dimensional coordinates of the reference points, so that when calculating the wave velocity value of a certain rendering point, the eight reference points in the cube space where it is located can be found quickly, providing a fast data lookup basis for the subsequent cloud map rendering on the model surface and cross section, and enabling the color value calculation of the model surface and cross section to respond quickly.

[0122] (2) A WebGL-based online three-dimensional visualization method for seismic CT results is proposed. Geological information is rendered in the form of contour cloud maps on the surface and profile of a three-dimensional model on the Web, which facilitates the efficient display, analysis and sharing of seismic CT data on the Web.

[0123] (3) This invention simplifies the complex operation process of traditional software such as ItasCAD, enabling users to easily process and display seismic wave CT data without professional software background knowledge, thereby lowering the technical threshold and expanding the audience of the technology application.

Claims

1. A WebGL-based method for visualizing seismic CT results data, characterized in that, Includes the following steps: Step 1: Generate a set of spatial reference points within the integer bounding box of the 3D model; specifically including the following steps: Step 1.1: Import the relevant 3D model data and determine the smallest integer hexahedral bounding box with axis alignment based on the 3D model used. B ,set up X min , Y min , Z min These are the minimum values ​​of the coordinates of the 3D model points along the X, Y, and Z axes, respectively. X max , Y max , Z max Let [] represent the maximum values ​​of the coordinates of the 3D model points along the X, Y, and Z axes, respectively, and let [] denote the floor sign. x [ indicates no more than] x The largest integer is within the bounding box. B Coordinates of all points on the boundary and inside x , y , z satisfy: Step 1.2: Set the bounding box B The side lengths in the X, Y, and Z axes are respectively L x , L y , L z Then we have: In the enclosure B Reference points are generated at positions with integer coordinates both inside and at the boundary, ultimately forming a set of spatial reference points within the entire bounding box. Step 1.3: Store each reference point in the reference point set in a three-dimensional array P, and establish a correspondence between the three-dimensional coordinates of the reference points and the array indices. Initialize the floating-point three-dimensional array floatP[ ][ ][ ],set up: In the formula, Representing integer bounding boxes B smallest among x , y , z The offset of the coordinate value relative to 0, if the coordinates of a reference point are ( x , y , z ), then make P[ in the array xB xmin ][ yB ymin ][ z-B zmin ] represents a reference point, and the value stored in the array element represents the wave velocity value of the reference point. Any element in array P represents a point in the set of reference points, thus completing the generation and storage of the reference point set; Step 2: Based on the seismic wave CT results, calculate the wave velocity values ​​of all reference points in the spatial reference point set using the DSI interpolation method; Step 3: Determine whether to simplify the spatial reference point set based on the size of the model coordinate data span input by the user, and pass the resulting spatial reference point set to the shader; the simplification method specifically includes the following steps: Step 3.1: For reference points on the model surface, if the model shape is regular, only the integer reference points around the model vertices are retained, and a new mapping relationship is formed between the reference point coordinates and the array subscripts; if the model is irregular, the reference points are sparsed, or the reference points in the largest hexahedral space inside the model are removed. After removal, the remaining reference points are stored continuously in the array, and the offset of each dimension is set according to the removal method to form a new mapping relationship between the array subscripts and the reference points. For the reference points of the model profile, the nearest integer reference points on both sides of the profile are retained for simplification; Step 3.2: Create a texture buffer and store the simplified reference point set data into the texture buffer; Step 4: Calculate the wave velocity value of the point to be rendered based on the set of spatial reference points and the wave velocity values ​​of the reference points, determine the color value of the point to be rendered, and perform color rendering.

2. The WebGL-based seismic CT results data visualization method as described in claim 1, characterized in that, Step 4, when rendering the model surface with color, specifically includes the following steps: Step 4.1: Divide the wave velocity value and color band according to the user's set parameters; Step 4.2: Combine the model vertices, projection matrix, view matrix, and model matrix. M model And a texture buffer with reference point set data is passed to the shader; Step 4.3: In the vertex shader, pass the vertex coordinates of the model to the fragment shader; Step 4.4: Calculate the current point to be rendered in the fragment shader. V World coordinates Let the local coordinates of the current point to be rendered be... The model matrix is Then we have: ; Step 4.5: Based on world coordinates Obtain the coordinates of 8 reference points in the cube space where it is located, and get the wave velocity values ​​of the 8 reference points in the texture buffer; Step 4.6: Based on the wave velocity values ​​of the 8 reference points and the distances from the 8 reference points to... Distance interpolation calculation The wave velocity value; Step 4.7: Obtain the current point to be rendered based on the wave velocity range and color band division results. V The color values ​​are used to form a 3D model that uses surface color to represent wave velocity information after all points to be rendered are rendered.

3. The WebGL-based method for visualizing seismic CT results data as described in claim 2, characterized in that, Step 4.5 specifically involves: If the spatial reference point set is not simplified, set the points to be rendered... V World coordinates The coordinates are ( x v , y v , z v ), then according to V The coordinates of a point determine eight reference points within the cube space in which it resides. The coordinates of these eight reference points are as follows: Based on 8 reference points ~ The coordinates are used to obtain the corresponding wave velocity value from array P. ~ : If the spatial reference point set is simplified, then 8 reference points are found based on the mapping relationship between the array indices and reference points formed by the simplification method in step 3. ~ And obtain the wave velocity values ​​corresponding to the 8 reference points in the texture buffer.

4. The WebGL-based seismic CT results data visualization method as described in claim 1, characterized in that, Step 4, when rendering the model profile with color, specifically includes the following steps: Step 4.1: Divide the wave velocity value and color band according to the user's set parameters; Step 4.2: Generate the four vertices of the profile based on the profile location information that the user wants to view; Step 4.3: Combine the profile vertices, projection matrix, view matrix, and model matrix. M model And a texture buffer with reference point set data is passed to the shader; Step 4.4: In the vertex shader, pass the vertex coordinates of the profile to the fragment shader; Step 4.5: Calculate the current point to be rendered in the fragment shader. V World coordinates Let the local coordinates of the current point to be rendered be... The model matrix is Then we have: ; Step 4.6, if world coordinates If the point is not within the spatial reference point set, then the current point to be rendered will be directly used. V The color is set to white and semi-transparent; if world coordinates Within the set of spatial reference points, then according to The coordinates of the eight reference points in the cube space where it is located are obtained, and the wave velocity values ​​of the eight reference points are obtained in the texture buffer; Step 4.7: Based on the wave velocity values ​​of the 8 reference points and the distances from the 8 reference points to... Distance interpolation calculation The wave velocity value; Step 4.8: Obtain the current point to be rendered based on the wave velocity value and color banding results. V The color values, after all points to be rendered are rendered, form a profile that represents wave velocity information through surface color.