Visualization and evaluation of 3D cross-sections

By determining a cross-section and performing ray tracing to highlight relevant pixels, the method addresses the challenge of visualizing and evaluating 3D model intersections, improving interaction and analysis capabilities in 3D modeling.

JP7695254B2Active Publication Date: 2025-06-18VERTEX SOFTWARE LLC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2022546104
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-01-29
Filing Date
2021-01-29
Publication Date
2025-06-18
Estimated Expiration
2041-01-29

AI Technical Summary

Technical Problem

Existing 3D modeling technologies lack efficient methods for visualizing and evaluating the intersection of a 3D polygon model with a 3D cross-section, limiting designers' ability to interact with and analyze 3D models in real-time.

Method used

The method involves determining a cross-section that intersects a 3D model, performing ray tracing by passing rays through corresponding pixels of a projection plane, determining rays within a threshold distance of the model, and highlighting corresponding pixels in the same color.

Benefits of technology

This approach enables effective visualization and evaluation of 3D model cross-sections, allowing designers to interact with, analyze, and measure components within the 3D model, thereby enhancing the design process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007695254000001
    Figure 0007695254000001
  • Figure 0007695254000002
    Figure 0007695254000002
  • Figure 0007695254000003
    Figure 0007695254000003
Patent Text Reader

Abstract

A method, system, and computer-readable medium for generating a cross-section of a 3D model are disclosed. The example method includes determining a cross-section that intersects with the 3D model, performing ray tracing by passing each of a plurality of rays through a corresponding pixel of a projection plane such that each ray intersects with the cross-section, determining one or more rays that are within a threshold distance of the 3D model at their respective intersections with the cross-section, and highlighting pixels corresponding to the determined rays.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Cross - Reference to Related Applications This is a PCT application claiming priority to U.S. Patent Application No. 62 / 967,490, filed on January 29, 2020, under the title "VISUALIZING AND EVALUATING 3D CROSS - SECTIONS", which is hereby incorporated by reference in its entirety.

[0002] The present disclosure generally relates to three - dimensional (3D) modeling, and more particularly, to methods and systems for visualizing and evaluating the intersection of a 3D polygon model with a 3D cross - section.

Background Art

[0003] 3D geometric models are often used to design products for manufacturing (e.g., in architecture, construction, real estate, gaming, healthcare, scientific and technological visualization, movies, etc.). During the design process, iterative changes to the 3D model are often made by engineers, technicians, craftsmen, manufacturers, and others to develop the final design that can be used. During the design process, it can be beneficial for the designer of the 3D model to manipulate the 3D model in real - time to take measurements between various surfaces of the 3D model and interact with the 3D model in other ways. In a specific case, it can be beneficial for the designer of the 3D model to obtain a cross - section of the 3D model and be able to contact the surfaces of the model on the cross - section.

Summary of the Invention

Means for Solving the Problems

[0004] The examples disclosed herein may enable visualization and evaluation of the intersection of a 3D polygon model with a 3D cross-section. Specifically, a method for generating a cross-section of a 3D model is disclosed. The method for generating a cross-section includes determining a cross-section that intersects the 3D model. The method also includes performing ray tracing by passing each of a plurality of rays through corresponding pixels of a projection plane such that each ray intersects the cross-section. The method further includes determining one or more rays that are within a threshold distance of the 3D model at their respective intersections with the cross-section. And the method further includes highlighting, in the same color and within the threshold distance, along the threshold distance of the plane, the pixels corresponding to the determined rays.

[0005] In another example, a non-transitory computer-readable medium has instructions stored thereon that, when executed by a processor, cause a set of operations to be performed for generating a cross-section of a 3D model. The set of operations includes determining a cross-section that intersects the 3D model, performing ray tracing by passing each of a plurality of rays through corresponding pixels of a projection plane such that each ray intersects the cross-section, determining one or more rays that are within a threshold distance of the 3D model at their respective intersections with the cross-section, and highlighting the pixels corresponding to the determined rays in the same color.

[0006] In a third example, a system for generating a cross-section of a 3D model is disclosed. The system includes a memory configured to store data corresponding to the 3D model and a processor. The processor is configured to determine a cross-section that intersects the 3D model, perform ray tracing by passing each of a plurality of rays through corresponding pixels of a projection plane such that each ray intersects the cross-section, determine one or more rays that are within a threshold distance of the 3D model at their respective intersections with the cross-section, and highlight the pixels corresponding to the determined rays in the same color. BRIEF DESCRIPTION OF THE DRAWINGS

[0007]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Mode for Carrying Out the Invention

[0008] The figures are not to scale. As far as possible, the same reference numbers are used throughout the drawings and the accompanying description to refer to the same or similar parts.

[0009] As described above, it may be beneficial to enable the designer of the 3D model, or other stakeholders, to interact with the 3D model by manipulating it. Specifically, it may be beneficial to view the cross-section of the 3D model to reveal the internal components and their interactions with each other. Providing a cross-section of the 3D model allows the designer to interact with, analyze, and evaluate the 3D model by selecting surfaces, measuring the distances between one or more selected surfaces or points, and ensuring the spacing between various components, among other things.

[0010] Generally, as used herein, the term 3D model may refer to a mathematical representation in three dimensions of the surface of an object. A 3D model may include a single component or may include multiple components. In some examples, the multiple components may be configured to move relative to each other by rotation, sliding, bending, or the like. Each component may include a specific geometry and may be made from one or more surfaces that are interconnected. Each of the surfaces may be mathematically defined, and thus the surface may exist only in two dimensions (e.g., it may be infinitely thin in three dimensions).

[0011] In some embodiments, the 3D model can be rendered on the screen using ray tracing. Ray tracing, as used herein, can be understood as a rendering technique for generating an image by tracing the optical path (i.e., the ray) as a pixel in the projection plane. Each ray is cast from the perspective of the corresponding pixel of the projection plane. Based on the first intersection of the ray with either the 3D model or the background, the corresponding pixel is displayed using a specific color, shading, etc. For example, if the first ray is cast from the first pixel and intersects the first component of the 3D model, the first pixel can be colored red. If the second ray is cast from the second pixel and intersects the second component of the 3D model, the second pixel can be colored blue. When all the rays are cast, they can result in an image where the first component is colored red and the second component is colored blue.

[0012] Referring now to FIGS. 1 - 3, an example embodiment is shown in which a cross-section of the 3D model 100 is obtained. The functions described herein, such as cross-section selection, ray tracing, and cross-section display, can be performed by a system, including, among other things, a memory and a processor. The system can include one or more computing devices, such as the computing device described with respect to FIG. 4. In some examples, the system can include a plurality of computing devices (e.g., a distributed system), and the 3D model can be divided into components or shards and analyzed and processed independently of each other. This is described in more detail below.

[0013] In some examples, the processor is configured to (1) determine a cross-section that intersects the 3D model, (2) perform ray tracing by passing each of a plurality of rays through the corresponding pixel of the projection plane such that each ray intersects the cross-section, (3) determine one or more rays that are within a threshold distance of the 3D model at their respective intersections with the cross-section, and (4) highlight the pixels corresponding to the determined rays in the same color.

[0014] Regarding the first feature described above, the embodiments shown in FIGS. 1-3 show that the processor can be configured to determine a cross-section 200 that intersects the 3D model 100.

[0015] In some examples, the cross-section 200 can be selected by the user using the system's user interface. The cross-section 200 can be positioned at the midpoint of the 3D model 100 by default. In some examples, the cross-section 200 can be set or positioned based on a selected component, surface, or other part of the 3D model 100. For example, the user can select a target surface, and the cross-section 200 can be positioned at the midpoint of the target surface, at the end of the target surface, or in another way based on the target surface. In some examples, the position of the cross-section 200 can be input by the user, such as via the input of specific X, Y, Z coordinates or distances. In some examples, the system can allow the user to change the position of the cross-section 200 in 3D space using a slider, arrow keys, mouse, touch, or other user input.

[0016] In addition, the cross-section 200 can be oriented in various directions with respect to the 3D model 100. For example, the orientation can be set to be parallel to the projection plane 300 by default, so that it is perpendicular to the user's field of view. In some examples, the orientation of the cross-section 200 can be changed or adjusted by the user, such as by input using a slider, arrow keys, mouse, touch, or other user input. In some examples, the orientation of the cross-section can be set based on a selected component, surface, or other feature of the 3D model 100. For example, the orientation can "snap" to a specific selected surface, so that the cross-section 200 is oriented parallel to or in contact with the selected surface.

[0017] In some examples, the system can include a menu with selectable options for the user to choose from in order to allow the system to switch between various modes. For example, there can be a default mode, a component selection mode, a surface selection mode, a distance selection mode, a manual input mode, and so on.

[0018] In some examples, the cross-section 200 defines a front face 202a and a back face 202b of the 3D model 100. The front face 202a is the side of the 3D model closer to the projection plane 100. The back face 202b is the side of the 3D model opposite the projection plane 100. It should be understood that the terms "front" and "back" are used herein for illustrative purposes only. The front and back can be reversed such that the front is on the side of the cross-section 200 opposite the projection plane 300. This can occur specifically when the projection plane is rotated around the 3D model 100 to enable the user to view the back of the 3D model. In some cases, rotating the projection plane 300 around the 3D model 100 can leave the front face 202a and the back face 202b of the model the same, such that the user can still view the back face 202b of the 3D model 100. Alternatively, in some examples, rotating the projection plane 300 around the 3D model 100 can reverse the front face 202a and the back face 202b of the model, such that when the projection plane 300 is positioned on the back face 202b of the model, only the front face 202a of the model is visible (i.e., the opposite side of FIG. 1).

[0019] In some examples, the cross-section 200 is mathematically defined and thus is infinitely thin. Alternatively, the cross-section 200 can be defined by the use of a threshold distance therefrom to create a thickness with respect to the cross-section 200. Further, as will be described in more detail below, for each pixel where a ray intersects the 3D model at the cross-section 200, a threshold is determined and applied to create a specific threshold distance or thickness with respect to the cross-section 200 for that pixel, such that the cross-section 200 can have a different effective thickness at the 3D model intersection for each pixel.

[0020] The processor may also be configured to perform ray tracing by passing each of a plurality of light rays through corresponding pixels of the projection plane 300 such that each light ray intersects the cross-section 200. To perform ray tracing, each light ray (e.g., light rays 310a, 310b, 310c, and 310d) is cast from a corresponding pixel (e.g., pixels 320a, 320b, 320c, and 320d) of the projection plane 300. Although FIG. 1 shows the projection plane 300 as including only 64 pixels, it will be understood that more or fewer pixels may be used.

[0021] In some examples, performing ray tracing includes casting a plurality of light rays, each from the position of a corresponding pixel on a straight line within the 3D space. Each light ray ultimately contacts and / or intersects something (i.e., either the 3D model 100 or the background). Each corresponding pixel of the projection plane 300 is then colored based on the portion of the 3D model or background where the light ray intersects. When the light ray intersects the 3D model at or near the cross-section 200, the coloring is applied at the intersection to enable an enhanced visualization of the cross-section of the 3D model.

[0022] In the present disclosure, one or more light rays (e.g., light rays 310a, 310b, and 310c) are truncated so that each light ray does not contact or intersect something on the front face 202a of the 3D model 100 (the space before the light ray reaches the user-selected or default position of the cross-section 200). This allows the resulting image of the projection plane 300 to bypass the components and surfaces of the 3D model 100 located on the front face 202a and display the components and surfaces of the 3D model 100 on the back face 202b, thereby enabling the display of the cross-section of the 3D model (i.e., the portion of the 3D model 100 at and beyond / behind the user-selected or default position of the cross-section 200).

[0023] In some examples, during the ray tracing process, each ray continues to travel until its first intersection with the 3D model 100 or the background, where the first intersection is either within the cross-section 200 of the 3D model 100 or on the back surface 202b. The color of the pixel corresponding to the ray is determined based on the intersection point of that ray.

[0024] For example, as shown in FIG. 1, a first ray 310a is cast from pixel 320a and intersects the cross-section 200 at a first intersection point 220a. The ray 310a does not intersect the 3D model 100 at the intersection point 220a, so the ray continues to travel along its path. The ray 310a intersects the background, and thus the pixel 320a is colored white.

[0025] A second ray 310b is cast from pixel 320b and intersects the cross-section 200 at a second intersection point 220b. At the second intersection point 220b, the ray 310b either intersects the 3D model 100 or is within a threshold distance of the 3D model (the threshold distance is described in more detail below). In this case, since the pixel 320b corresponds to the ray 310b that intersects (or is within the threshold distance of) the 3D model 100 within the cross-section 200, the corresponding second pixel 320b is colored blue.

[0026] A third ray 310c is cast from pixel 320c and intersects the cross-section 200 at a third intersection point 220c. At the third intersection point 220c, the third ray 310c does not intersect the 3D model 100 and is not within the threshold distance of the 3D model 100. The third ray 310c continues to travel along its path and finally intersects the 3D model 100 at point 120c. Point 120c corresponds to the inner surface of the 3D model 100 offset from the cross-section 200. Therefore, the third pixel 320c is colored gray based on the surface of the 3D model that intersects the third ray 310c at point 120c.

[0027] The fourth ray 310d is cast from pixel 320d and intersects the cross-section 200 at the fourth intersection 220d. At the fourth intersection 220d, the fourth ray 310d does not intersect the 3D model 100. However, the fourth ray 310d is within the threshold distance of the 3D model 100. Since pixel 320d corresponds to a ray 310d that is within the threshold distance of the 3D model 100 within the cross-section 200, the fourth pixel 320d is colored blue.

[0028] As described above, the pixel color for each pixel in the projection plane 300 is determined based on the intersection of each of the plurality of rays corresponding to that pixel with the 3D model or the background of each of the plurality of rays, depending on whether the intersection occurs within the cross-section.

[0029] As a result, the processor of the system is configured to render the pixels of the projection plane 300 as an image for the user to view.

[0030] As described above, particularly with respect to the fourth ray 310d, the processor can be configured to determine one or more rays that are within the threshold distance of the 3D model 100 at their respective intersections with the cross-section 200. Since the 3D model 100 and its geometry are defined by one or more mathematical formulas, one or more surfaces of the 3D model can potentially be infinitely thin. Depending on the angle at which a given surface is oriented with respect to the cross-section 200, a given ray may not intersect at all. This is because the resolution of the pixels, and / or the spacing of the rays (i.e., the resolution of the rays) is smaller than the infinite resolution of the 3D model 100.

[0031] For example, if the surface of the 3D model is perpendicular to the cross-section 200 and still intersects the cross-section 200 (i.e., the surface appears directly side-on to the viewer), a given ray can extend through the cross-section 200 without intersecting the infinitely thin surface and only contact the surface of the 3D model further away (or deeper) in the 3D model 100. If the pixel is colored based on a further or deeper intersection with the 3D model 100, it can give the false impression that the 3D model 100 does not intersect the cross-section at that pixel.

[0032] To absorb this, the processor may be configured to determine a threshold distance from the intersection point between each ray and the cross-section 200, such that if any part of the 3D model 100 is located within the threshold distance, the pixel associated with that ray can be colored as if it intersects the 3D model at that intersection point.

[0033] In some examples, the threshold distance extends two-dimensionally within the cross-section 200 from the intersection point between the ray and the cross-section 200.

[0034] Alternatively, in some examples, the threshold distance extends two-dimensionally perpendicular to the ray from the intersection point between the ray and the cross-section 200. When the ray is cast perpendicular to the cross-section (e.g., the central pixel where the projection plane 300 and the cross-section 200 are parallel), this threshold distance may be the same as the previously described threshold distance. However, when the ray is cast to intersect the cross-section at an angle (e.g., a pixel on the periphery of the projection plane 300 where the projection plane 300 and the cross-section 200 are parallel, or any pixel of the projection plane 300 where the projection plane 300 and the cross-section 200 are not parallel), the threshold distance may extend at an angle with respect to the cross-section 200.

[0035] Alternatively, in some examples, the threshold distance can extend three-dimensionally from the intersection point between the ray and the cross-section 200.

[0036] In some examples, the threshold distance may be based on the viewing distance, which includes the distance between the pixel of the projection plane corresponding to the ray and the intersection of the cross-section of the ray. The threshold distance and the viewing distance may have a direct relationship, so the threshold distance increases as the viewing distance increases. Thus, for example, when the cross-section 200 is parallel to the projection plane 300 (e.g., the view shown in FIG. 2), the ray corresponding to the pixel on the edge of the projection plane may have a larger threshold distance than the ray corresponding to the central pixel. Additionally, when the cross-section 200 is oriented at an angle with respect to the projection plane 300 (i.e., they are not parallel), the ray intersecting the cross-section 200 near the projection plane 300 may have a corresponding threshold distance smaller than the ray intersecting the cross-section 200 far from the projection plane 300.

[0037] In some examples, the threshold distance can be one pixel width, half a pixel width, or some other value. In some examples, a first threshold distance corresponding to a first pixel (and ray) can be set, and other threshold distances corresponding to other pixels (and rays) can be appropriately scaled based on their positions relative to the intersection of the first pixel and ray. In other examples, the minimum / maximum range of the threshold distance can be pre-computed based on the distance of the projection plane and the farthest range with respect to the camera eye of the model. For any given intersection of a ray and a plane, a local threshold is calculated by linear interpolation of the threshold range using the distance of the intersection from the camera eye. This process ensures that the resulting highlighting has a consistent image pixel width regardless of the distance of the intersection from the eye.

[0038] In some examples, the threshold distance may depend on one or more other factors. For example, the system may include a distributed architecture, so the 3D model is divided into a plurality of shards, each consisting of a plurality of triangles. This distributed nature is described in more detail below. However, the result of the distributed nature is that the threshold distance (i.e., proximity calculation) for a particular ray can be prioritized or optimized based on distance within the same triangle and within the same shard.

[0039] If a given ray does not intersect the 3D model 100 in the cross-section 200 (and is not within the threshold distance of the 3D model at this point either), the ray continues to extend on the back surface 202b of the 3D model 100 until it contacts the 3D model 100 (or the background).

[0040] In some examples, the threshold distance is user-configurable.

[0041] In some examples, the processor is also configured to highlight the pixels corresponding to rays that intersect the 3D model 100 in the cross-section 200 (or are within the threshold distance at the intersection of the ray and the cross-section 200). All the pixels corresponding to the rays that intersect the 3D model 100 in the cross-section 200 can be colored or highlighted with the same color, which is different from the color of the model. These pixels can be called a stencil 150. The stencil 150 is illustrated in FIG. 3 and, at the intersection with the cross-section 200, allows only the pixels corresponding to the rays that intersect the 3D model or are within the threshold distance of the 3D model to pass through.

[0042] In some examples, the processor may enable various functions based on ray tracing, rendering, stencils, and other features described herein.

[0043] For example, the processor can enable a perfect selection of the pixels of the geometric surface of the 3D model 100, particularly the portion of the geometric surface present on the cross-section 200, by comparing, for example, the position of the pointer (such as the mouse icon, touch point, etc.) with the stencil 150. This can be achieved in a similar way to the ray tracing operation described above, where the ray is cast from the position of the pointer and the processor determines whether there is any surface of the 3D model within the threshold distance of the ray at the intersection with the cross-section 200. In this case, the threshold distance can be the same as or different from the threshold distance described above for the ray tracing operation. To facilitate the user in selecting the desired surface, it may be beneficial to increase the threshold distance during the surface selection process.

[0044] In some examples, selecting a geometric surface can include (1) selecting a pixel of the projection plane, (2) determining the closest highlighted pixel corresponding to the selected pixel of the projection plane, and (3) selecting the geometric surface of the 3D model corresponding to the closest highlighted pixel.

[0045] The processor can also be configured to determine the distance between two geometric surfaces of the 3D model 100. To achieve this, the two surfaces can be selected in the manner described above. Determining the distance between the first selected geometric surface and the second selected geometric surface of the 3D model results in (1) selecting a first pixel of the projection plane, (2) determining the first closest highlighted pixel corresponding to the first selected pixel of the projection plane, (3) selecting the first geometric surface of the 3D model corresponding to the first closest highlighted pixel, (4) selecting a second pixel of the projection plane, (5) determining the second closest highlighted pixel corresponding to the second selected pixel of the projection plane, (6) selecting the second geometric surface of the 3D model corresponding to the second closest highlighted pixel, and (7) measuring the distance between the selected first geometric surface and the selected second geometric surface.

[0046] Various other functions are also possible by interacting with and analyzing the stencil 150 in addition to the 3D model 100.

[0047] As described above, the system of the present disclosure can be configured to operate using a plurality of computing devices within a distributed system. For example, the system can divide a 3D model into a plurality of components (e.g., shards). Then, for each of the components individually, the system can (1) determine a cross-section that intersects the component of the 3D model, (2) perform ray tracing by passing each of a plurality of rays through corresponding pixels of a projection plane such that each ray intersects the cross-section, (3) determine one or more rays that are within a threshold distance of the component of the 3D model at their respective intersections with the cross-section, and (4) highlight the pixels corresponding to the determined rays in the same color. The system can then (5) combine the highlighted pixels from each of two or more components into a single image, which can then be displayed to the user.

[0048] Further details regarding the distributed nature of the operation can be found in U.S. Patent Application No. 16 / 257,393, which is incorporated by reference in its entirety.

[0049] FIG. 4 shows a simplified block diagram of an example computing device 400 according to an embodiment of the present disclosure. The computing device 400 can be configured to perform various functions or operations, such as those described in the present disclosure (and the accompanying drawings). The computing device 400 can include various components, such as, for example, a processor 410, a memory 420, a user interface 430, and a communication interface 440, all of which are communicatively coupled by a system bus, network, or other connection mechanism 450. It should be understood that the examples disclosed herein can refer to computing devices and / or systems having components that may or may not be physically disposed in close proximity to each other. Some embodiments can take the form of a cloud-based system or device, and the term "computing device" is understood to include distributed systems and devices (such as cloud-based ones), as well as software, firmware, and other components configured to perform one or more of the functions described herein.

[0050] Processor 410 may include a general-purpose processor (e.g., a microprocessor) and / or a dedicated processor (e.g., a digital signal processor (DSP)). Processor 410 can be any custom or commercially available processor. Processor 410 can also represent a plurality of parallel processors or distributed processors that operate in unison.

[0051] Memory 420 can include one or more volatile (e.g., random access memory (RAM) such as DRAM, SRAM, SDRAM, etc.) and non-volatile (e.g., ROM, hard drive, flash drive, CDROM, etc.) removable and / or fixed storage components such as magnetic, optical, or flash storage, and can be integrated with processor 410, in whole or in part. These and other components can be present on a device located anywhere on a network or within a cloud configuration. Further, memory 420 can take the form of a persistent computer-readable storage medium having program instructions (e.g., compiled or non-compiled program logic and / or machine code) stored thereon, which, when executed by processor 410, cause device 400 to perform one or more functions or operations such as those described in this disclosure. Such program instructions can define or be part of individual software applications that can be executed in response to certain inputs received, for example, from user interface 430 and / or communication interface 440. Memory 420 can also store other types of information or data such as those of the type described throughout this disclosure.

[0052] The user interface 430 can facilitate interaction with the user of the device, if applicable. To that end, the user interface 430 can include input components such as a keyboard, keypad, mouse, touch sensor panel, microphone, and camera, as well as output components such as a display screen (which can be coupled to, for example, a touch sensor panel), a voice speaker, and a tactile feedback system. The user interface 430 can also include devices that communicate with an input or output, such as a short-range transceiver (e.g., RFID, Bluetooth), a telephone interface, a mobile communication port, a router, or other types of network communication devices. The user interface 430 can be internal to the computing device 400 or external and can be connected wirelessly or using a connection cable, such as through a universal serial bus port.

[0053] The communication interface 440 can be configured to enable the device 400 to communicate with one or more devices (or systems) according to one or more protocols. In one example, the communication interface 440 can be a wired interface, such as an Ethernet interface or a high-definition serial digital interface (HD-SDI). As another example, the communication interface 440 can be a wireless interface, such as a mobile communication or Wi-Fi interface. In some examples, each of the plurality of computing devices 400 and / or other devices or systems on the network can be configured to use a set of Internet protocols (TCP / IP) to communicate with each other. However, it is understood that various network protocols can also be adopted, such as IEEE 802.11 Wi-Fi, Address Resolution Protocol ARP, Spanning Tree Protocol STP, or Fiber Distributed Data Interface FDDI. Some embodiments can include a computing device 400 having a broadband or wireless connection to the Internet (such as DSL, cable, wireless, T-1, T-3, OC3 or satellite, etc.), but it is also understood that the principles of the present invention can be implemented through a standard modem for dial-up connections or other connection means. Wireless network connections are also contemplated, such as wireless Ethernet, satellite, infrared, radio frequency, Bluetooth, near-field communication, and mobile communication networks.

[0054] In the context of this document, a "computer-readable medium" can be any means that can store, communicate, propagate, or transport data objects for use by or in connection with the systems and methods described herein. A computer-readable medium can be, for example, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, propagation medium, or any other device of similar functionality. More specific examples (a non-exhaustive list) of computer-readable media include: electrical connections (electronic) having one or more wires, random access memory (RAM) (electronic), read-only memory (ROM) (electronic), erasable programmable read-only memory (EPROM, EEPROM, or flash memory) (electronic), optical fiber (electronic), and portable read-only compact disc (CDROM) (electronic). Note that a computer-readable medium can even be paper or another suitable medium on which a program is printed, as the program can be electronically captured, for example, by optical scanning of the paper or other medium and then compiled, interpreted, or otherwise processed in a suitable manner and stored in a computer memory. The systems, apparatus, and methods can be embodied in any type of computer-readable medium for use by or in connection with an instruction execution system or apparatus such as a computer.

[0055] FIG. 5 shows an example method 500 for generating a cross-section of a 3D model according to an embodiment of the present disclosure. The method 500 can be executed by one or more computing devices or systems, such as the system described with respect to FIGS. 1-3. The flowchart of FIG. 5 can be stored in a memory (such as the memory 420 of the computing device 400) and, when executed by a processor (such as the processor 410 of the computing device 400), can cause one or more systems or devices to perform one or more of the functions described herein. It can include one or more programs that represent machine-readable instructions that can cause one or more systems or devices to perform one or more of the functions described herein. Although the program example is described with reference to the flowchart shown in FIG. 5, many other methods for performing the functions described herein can be used as alternatives. For example, the order of execution of the blocks can be rearranged, or executed sequentially, or in parallel with each other, and the blocks can be modified, removed, and / or combined to execute the method 500. Further, since the method 500 is disclosed in relation to the components of FIGS. 1-4, the functions of some of these components are not described in detail below.

[0056] FIG. 5 begins with block 502. At block 504, the method 500 includes determining a cross-section that intersects the 3D model. This can be done in any of a variety of ways, such as those described above in relation to FIGS. 1-3.

[0057] At block 506, the method 500 includes performing ray tracing by passing each of a plurality of rays through a corresponding pixel of the projection plane such that each ray intersects the cross-section.

[0058] At block 508, the method 500 includes determining one or more of the plurality of rays that are within a threshold distance of the 3D model at their respective intersections with the cross-section.

[0059] In block 510, method 500 includes highlighting pixels corresponding to the determined rays in the same color. This enables the creation of a stencil that includes only the pixels corresponding to the rays that intersect the 3D model or are within a threshold distance of the model at the intersection with the cross-section.

[0060] In block 512, method 500 includes rendering the highlighted pixels. This causes the stencil of the components of the 3D model that intersect the cross-section to be displayed. Method 500 then ends in block 514.

[0061] Although one or more specific embodiments have been illustrated and described in connection with the present invention(s), it is to be understood that the present invention(s) should not be limited to any single embodiment, but rather should be construed in terms of the breadth and scope accorded by the appended claims.

Claims

1. A method for generating a cross-section of a 3D model, the method comprising: determining a cross-section that intersects the 3D model; performing ray tracing by passing each of a plurality of rays through a corresponding pixel of a projection plane such that each ray intersects the cross-section; determining one or more rays that are within a threshold distance of the 3D model at their respective intersections with the cross-section, wherein for each ray, the threshold distance includes a distance in two dimensions extending from the intersection of the ray and the cross-section within the cross-section; highlighting pixels corresponding to the determined rays; and a method comprising.

2. The method according to claim 1, wherein for each ray, the threshold distance is based on a viewing distance, the viewing distance including a distance between the pixel of the projection plane corresponding to the ray and the intersection of the ray with the cross-section.

3. The method according to claim 2, wherein the threshold distance and the viewing distance have a direct relationship, such that the threshold distance increases as the viewing distance increases.

4. dividing the 3D model into a plurality of components; for two or more of the components, individually, determining a cross-section that intersects the component of the 3D model; performing ray tracing by passing each of a plurality of rays through a corresponding pixel of the projection plane such that each ray intersects the cross-section; determining one or more rays that are within a threshold distance of the component of the 3D model at their respective intersections with the cross-section; highlighting pixels corresponding to the determined rays in the same color and combining the highlighted pixels from each of the two or more components into a single image; and further comprising the method according to claim 1.

5. A method for generating a cross-section of a 3D model, the method comprising: determining a cross-section that intersects the 3D model; performing ray tracing by passing each of a plurality of rays through corresponding pixels of a projection plane such that each ray intersects the cross-section; determining one or more rays that are within a threshold distance of the 3D model at their respective intersection points with the cross-section; highlighting pixels corresponding to the determined rays; selecting a geometric surface of the 3D model, wherein selecting the geometric surface comprises: selecting a pixel of the projection plane; determining the closest highlighted pixel corresponding to the selected pixel of the projection plane; selecting the geometric surface of the 3D model corresponding to the closest highlighted pixel; and a method comprising the above.

6. determining a distance between a first geometric surface and a second geometric surface of the 3D model, wherein determining the distance comprises: selecting a first pixel of the projection plane; determining a first closest highlighted pixel corresponding to the first selected pixel of the projection plane; selecting a first geometric surface of the 3D model corresponding to the first closest highlighted pixel; selecting a second pixel of the projection plane; determining a second closest highlighted pixel corresponding to the second selected pixel of the projection plane; selecting a second geometric surface of the 3D model corresponding to the second closest highlighted pixel; measuring a distance between the selected first geometric surface and the selected second geometric surface; and The method according to claim 5, further comprising **Claim 7** A persistent computer-readable medium having instructions stored thereon, which, when executed by a processor, cause a set of operations for generating a cross-section of a 3D model to be executed, the set of operations comprising determining a cross-section that intersects the 3D model; performing ray tracing by passing each of a plurality of rays through corresponding pixels of a projection plane such that each ray intersects the cross-section; determining one or more rays that are within a threshold distance of the 3D model at their respective intersections with the cross-section, wherein for each ray, the threshold distance includes a distance in a two-dimensional plane extending from the intersection of the ray and the cross-section within the cross-section; highlighting pixels corresponding to the determined rays; A persistent computer-readable medium comprising **Claim 8** The persistent computer-readable medium according to claim 7, wherein for each ray, the threshold distance is based on a viewing distance, the viewing distance including a distance between the pixel of the projection plane corresponding to the ray and the intersection of the ray with the cross-section of the ray. **Claim 9** The persistent computer-readable medium according to claim 8, wherein the threshold distance and the viewing distance have a direct relationship such that the threshold distance increases as the viewing distance increases. **Claim 10** The set of operations comprises dividing the 3D model into a plurality of components; using two or more processors for two or more of the components to separately determine a cross-section that intersects the component of the 3D model; performing ray tracing by passing each of the plurality of rays through corresponding pixels of the projection plane such that each ray intersects the cross-section; Determining one or more rays within a threshold distance of a component of the 3D model at each of their respective intersections with the cross-section; Highlighting pixels corresponding to the determined rays with the same color and combining the highlighted pixels from each of the two or more components into a single image; The persistent computer-readable medium of claim 7, further comprising. **Claim 11**: A persistent computer-readable medium having instructions stored thereon, which, when executed by a processor, perform a set of operations for generating a cross-section of a 3D model, the set of operations comprising: Determining a cross-section that intersects the 3D model; Performing ray tracing by passing each of a plurality of rays through corresponding pixels of a projection plane such that each ray intersects the cross-section; Determining one or more rays within a threshold distance of the 3D model at each of their respective intersections with the cross-section; Highlighting pixels corresponding to the determined rays; Selecting a geometric surface of the 3D model, wherein selecting the geometric surface comprises: Selecting pixels of the projection plane; Determining the nearest highlighted pixel corresponding to the selected pixel of the projection plane; Selecting the geometric surface of the 3D model corresponding to the nearest highlighted pixel; Including; A persistent computer-readable medium including. **Claim 12**: The set of operations comprises: Determining a distance between a first geometric surface and a second geometric surface of the 3D model, wherein determining the distance comprises: Selecting a first pixel of the projection plane; Determining a first nearest highlighted pixel corresponding to the first selected pixel of the projection plane; Selecting a first geometric surface of the 3D model corresponding to the first closest highlighted pixel; Selecting a second pixel of the projection plane; Determining a second closest highlighted pixel corresponding to the second selected pixel of the projection plane; Selecting a second geometric surface of the 3D model corresponding to the second closest highlighted pixel; Measuring the distance between the selected first geometric surface and the selected second geometric surface; Including The persistent computer-readable medium according to claim 11, further comprising.

13. A system for generating a cross-section of a 3D model, the system comprising: A memory configured to store data corresponding to the 3D model; A processor, Determining a cross-section that intersects the 3D model; Performing ray tracing by passing each of a plurality of rays through a corresponding pixel of a projection plane such that each ray intersects the cross-section; Determining one or more rays that are within a threshold distance of the 3D model at their respective intersections with the cross-section, wherein for each ray, (1) the threshold distance includes a distance in two dimensions extending from the intersection of the ray and the cross-section within the cross-section, and (2) the threshold distance is based on a viewing distance, the viewing distance including a distance between the pixel of the projection plane corresponding to the ray and the intersection of the ray with the cross-section; Highlighting the pixels corresponding to the determined rays; A processor configured to perform; A system comprising.

Citation Information

Patent Citations

  • Fast rendering of quadrics and marking of silhouettes thereof

    JP2018106712A

  • Systems and methods for three dimensional computation and visualization using a parallel processing architecture

    US10475227B1

  • Image process apparatus for three-dimensional model

    US20070291032A1