WO2008022057A1 - Method and system for trimmed surface tessellation - Google Patents
Method and system for trimmed surface tessellation Download PDFInfo
- Publication number
- WO2008022057A1 WO2008022057A1 PCT/US2007/075760 US2007075760W WO2008022057A1 WO 2008022057 A1 WO2008022057 A1 WO 2008022057A1 US 2007075760 W US2007075760 W US 2007075760W WO 2008022057 A1 WO2008022057 A1 WO 2008022057A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- polygons
- tessellation
- computer
- curve
- representation
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/30—Polynomial surface description
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
Definitions
- the presently preferred embodiment of the innovations described herein relate generally to computer graphics software applications. More specifically, the presently preferred embodiment relates to a method and system for improving trimmed surface tessellation speed.
- Geometric representation that is capable of comprehensive functionality requirements is becoming increasingly important for engineering visualization industry as three-dimensional (“3D") data usage is being expanded to non-engineering purposes such as training, maintenance, etc.
- 3D representation can result in geometric files growing in size from "light weight” (also "light” or “Iw”)) files can be less than 500 kilobytes to "heavy weight” (also “heavy” or “hw”) files can be more than 2, 5 or 20 megabytes, for example.
- Light-weight 3D representation is crucial for collaborative visualization, where the visualization activity occurs in a distributed enterprise environment with the data being physically located on a different computer in the network (particularly if the visualization data must be transferred via LAN, WAN, email or any other low- bandwidth transmission medium).
- LOD resolutions are fixed in the file format, so the curved surface may not appear smooth when zoomed-in, or magnified, thereby creating undesirable visual artifacts.
- flat facets in mesh representation are merely linear approximations to the real object geometry. Some geometric operations, such as derivative computation, may not be meaningful at all for mesh, and other operations may not result in the desired accuracy.
- LOD representations can be heavy even with state-of-art advanced compression. Fundamentally, flat facets, the basic element of LOD representation, does not exploit the intrinsic property of curved surface geometry.
- An alternative format called Boundary Representation, or BREP can be used for graphics display in the file format BREP contains accurate geometry description of object geometry in which the modeling primitives can be curved.
- BREP representation is also the industry standard for 3D representation in CAD packages where the engineering models are authored, and therefore contains necessary information for all kinds of geometric operations with required accuracy.
- BREP representation is heavy and frequently heavier than typical LOD representation.
- BREP surface representation in general can't be directly accepted by mainstream graphics APIs such as OpenGL and DirectX. Facet representation needs to be generated by BREP with a process commonly called tessellation, before the object can be displayed on screen. The speed of BREP tessellation is therefore critical for graphics performance. Including both LOD and BREP representations in the file would fulfill most graphics and geometry operations and requirements, but only at the cost of making the file size even bigger. [Para 7] What is needed is a system, process, and method for improving the
- the present application provides a method for tessellation, comprising tessellating a curve having a plurality of polygons; connecting said plurality of polygons in a preferred direction; decomposing polygons into a plurality of triangles; and whereby a mesh representation is creating from said plurality of triangles.
- the method further comprising tessellating a surface.
- the method further comprising tessellating said curve by a conventional approach.
- the method wherein said decomposition step occurs by monotone positioning.
- a model representation provides said curves for tessellation.
- Another advantage of the presently preferred embodiment is to provide a system for tessellation, comprising a curve tessellation having a plurality of polygons; a connection of said plurality of polygons in a preferred direction; and a decomposed polygon consisting of a plurality of triangles.
- the system further comprising a surface tessellation.
- the system further comprising a curve tessellated by a conventional approach.
- the system further comprising a model representation form that provides one of a BREP representation and a light model representation.
- Another advantage of the presently preferred embodiment is to provide a computer-program product tangibly embodied in a machine readable medium to perform a method for tessellation, comprising instructions operable to cause a computer to tessellate a curve having a plurality of polygons; connect said plurality of polygons in a preferred direction; and decompose polygons into a plurality of triangles.
- the computer-program product further comprising instructions to tessellate a surface.
- the computer- program product further comprising instructions to tessellate said curve by a conventional approach.
- the computer-program product, wherein said decomposition instructions occur by monotone positioning.
- a model representation provides said curves for tessellation.
- Still another advantage of the presently preferred embodiment is to provide a data processing system having at least a processor and accessible memory to implement a method for tessellation, comprising means for tessellating a curve having a plurality of polygons; means for connecting said plurality of polygons in a preferred direction; and means for decomposing polygons into a plurality of triangles.
- FIG. 1 is a flow diagram illustrating a visualization system
- FIG. 1 5 is a flow chart to obtain a tessellated mesh from a light model representation
- Figure 3 is an illustration of a monotone partitioning algorithm processing a monotone polygon to an output set of triangles;
- Figure 4 is an illustration of a trimmed cylinder tessellation using the technique disclosed in the presently preferred embodiment;
- Figure 5 is a block diagram of a computer environment in which the presently preferred embodiment may be practiced.
- an exemplary system for implementing the presently preferred embodiment includes a general-purpose computing device in the form of a computer 500, such as a desktop or laptop computer, including a plurality of related peripheral devices (not depicted).
- the computer 500 includes a microprocessor 505 and a bus 510 employed to connect and enable communication between the microprocessor 505 and a plurality of components of the computer 500 in accordance with known techniques.
- the bus 510 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
- the computer 500 typically includes a user interface adapter 515, which connects the microprocessor 505 via the bus 510 to one or more interface devices, such as a keyboard 520, mouse 525, and/or other interface devices 530, which can be any user interface device, such as a touch sensitive screen, digitized pen entry pad, etc.
- the bus 510 also connects a display device 535, such as an LCD screen or monitor, to the microprocessor 505 via a display adapter 540.
- the bus 510 also connects the microprocessor 505 to a memory 545, which can include ROM, RAM, etc.
- the computer 500 further includes a drive interface 550 that couples at least one storage device 555 and/or at least one optical drive 560 to the bus.
- the storage device 555 can include a hard disk drive, not shown, for reading and writing to a disk, a magnetic disk drive, not shown, for reading from or writing to a removable magnetic disk drive.
- the optical drive 560 can include an optical disk drive, not shown, for reading from or writing to a removable optical disk such as a CD ROM or other optical media.
- the aforementioned drives and associated computer-readable media provide nonvolatile storage of computer readable instructions, data structures, program modules, and other data for the computer 500.
- the computer 500 can communicate via a communications channel 565 with other computers or networks of computers.
- the computer 500 may be associated with such other computers in a local area network (LAN) or a wide area network (WAN), or it can be a client in a client/server arrangement with another computer, etc.
- LAN local area network
- WAN wide area network
- the presently preferred embodiment may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
- program modules may be located in both local and remote memory storage devices. All of these configurations, as well as the appropriate communications hardware and software, are known in the art.
- Software programming code that embodies the presently preferred embodiment is typically stored in the memory 545 of the computer 500.
- such software programming code may be stored with memory associated with a server.
- the software programming code may also be embodied on any of a variety of non-volatile data storage device, such as a hard- drive, a diskette or a CD-ROM.
- the code may be distributed on such media, or may be distributed to users from the memory of one computer system over a network of some type to other computer systems for use by users of such other systems.
- the techniques and methods for embodying software program code on physical media and/or distributing software code via networks are well known and will not be further discussed herein.
- FIG. 1 is a flow diagram illustrating a visualization system.
- a light model visualization system generally illustrated at 100, has a light model format stored on disk 105 produced from a BREP model 110 derived from CAD data by a light model production component 115, written to disk by a light model compression component 120, and consumed by a tessellation kernel 125, a visualization kernel 130, and a geometric kernel 135 to fulfill engineering visualization functions such as to a graphics display 140 or a geometric analysis 145.
- Figure 2 is a flow chart to obtain a tessellated mesh from a light model representation.
- the surfaces of the light model representation are tessellated (Step 200), as are the curves (Step 205).
- the resulting tessellated surface becomes part of a triangle mesh representation (Step 210).
- the process of tessellating curves produces a set of polygons.
- the polygons that belong to a single surface need to be connected (Step 215).
- a decision has to be made to connect the polygons based on the existence of a preferred direction. If the polygons are connected with certain direction restriction so that the tessellation result still matches the surface well (Step 220), then a preferred direction exists.
- the polygons are further decomposed into simple triangles (Step 225) utilizing known techniques to those skilled in the art.
- One such technique to decompose polygons is known as monotone partitioning (incorporated herein by reference) that runs in O(n log(n)) time with an input of a monotone polygon and an output a set of triangles.
- Step 220 if the tessellation result does not match the surface well, then a preferred direction does not exist and a conventional tessellation approach is used (Step 230) in a manner that is commonly known in the art, for example divide and conquer.
- the tessellated polygons are then incorporated in the triangle mesh representation (Step 210). Operation
- FIG 3 is an illustration of a trimmed cylinder tessellation using the technique disclosed in the presently preferred embodiment.
- FIG 4 there are numerous possible ways to connect vertex A in trimmed polygon 300 to other vertices in the trimmed polygon.
- all the other vertices need to be geometrically evaluated in order to identify best candidate vertices B, C, and D.
- the directional curvature along its axis direction V 305 is zero at any surface location. This implies that the preferred direction to connect the polygon vertices is fixed at the axis direction.
- the problem "how to produce geometrically optimal tessellation” is now turned into an equivalent problem "how to produce tessellation in the parameter space with a given preferred direction to connect the lines".
- the preferred direction is the vertical direction because with cylinders, for example, the preferred direction lies in the direction of the central axis.
- one or more 2-dimensional polygons are efficiently tessellated to define a connected region, such as the three polygons indicated at B, C, and D, with a preferred direction.
- a cylindrical surface is being used as an example, the above described method can be applied to any surface type where a preferred direction produces optimal tessellation or acceptable tessellation due to its curvature characteristics.
- preferred direction is directly known as parameter V direction for analytic surface types including plane, cylinder, and cone surface types, it can also exist for other surface types such as sphere, and torus, or even NURBS depending on their curvature distribution and trimming type and can be pre-computed as a Boolean flag and stored in light model. Similar techniques can be used for other trimmed polygons 320 & 325.
- Conclusion [Para 27] The presently preferred embodiment may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations thereof.
- An apparatus of the presently preferred embodiment may be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor; and method steps of the presently preferred embodiment may be performed by a programmable processor executing a program of instructions to perform functions of the presently preferred embodiment by operating on input data and generating output.
- the presently preferred embodiment may advantageously be implemented in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device.
- the application program may be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language may be a compiled or interpreted language.
- a processor will receive instructions and data from a read-only memory and/or a random access memory.
- Storage devices suitable for tangibly embodying computer program instructions and data include all forms of nonvolatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD- ROM disks. Any of the foregoing may be supplemented by, or incorporated in, specially-designed ASICs (application-specific integrated circuits).
Abstract
A system, method, and computer program for tessellation, comprising tessellating a curve having a plurality of polygons; connecting said plurality of polygons in a preferred direction; decomposing polygons into a plurality of triangles; and whereby a mesh representation is creating from said plurality of triangles, and appropriate means and computer-readable instructions.
Description
METHOD AND SYSTEM FOR TRIMMED SURFACE TESSELLATION
Priority of Application
[Para 1 ] The present application claims priority of U.S. provisional application Serial No. 60/822,133 filed August 11, 2006, which is incorporated herein by reference.
Cross-Reference to Related Applications
[Para 2] This application is related to US Ser. No. , entitled
"METHOD AND SYSTEM FOR ORGANIZING TOPOLOGY ELEMENTS FOR BETTER
COMPRESSION" and US Ser. No. , entitled "VISUAL FILE REPRESENTATION", both filed on even date herewith, which applications are incorporated by reference here.
Technical Field
[Para 3] The presently preferred embodiment of the innovations described herein relate generally to computer graphics software applications. More specifically, the presently preferred embodiment relates to a method and system for improving trimmed surface tessellation speed.
Background
[Para 4] Geometric representation that is capable of comprehensive functionality requirements is becoming increasingly important for engineering visualization industry as three-dimensional ("3D") data usage is being expanded to non-engineering purposes such as training, maintenance, etc. 3D representation can result in geometric files growing in size from "light weight" (also "light" or "Iw")) files can be less than 500 kilobytes to "heavy weight" (also "heavy" or "hw") files can be more than 2, 5 or 20 megabytes, for example. Light-weight 3D representation is crucial for collaborative visualization, where the visualization activity occurs in a distributed enterprise environment with the data being physically located on a different computer in the network (particularly if the visualization data must be transferred via LAN, WAN, email or any other low- bandwidth transmission medium). [Para 5] Two important visualization functionalities are fast graphics display and accurate geometric analysis. Most visualization systems today use mesh representation in their file formats for maximum speed to reduce conversions from the file format to the graphics hardware, given that current graphics hardware is designed in a way such that its performance is best when the input data is represented in mesh format consisting of a collection of planar triangles. For better performance, several mesh representations of different details, usually call Level -Of- Detail or LOD, for the same part geometry may simultaneously exist in the file so that the graphics engine can choose to use less-detailed version for objects that are considered visually less significant in the scene. There are three major issues with LOD representation. First, LOD resolutions are fixed in the file
format, so the curved surface may not appear smooth when zoomed-in, or magnified, thereby creating undesirable visual artifacts. Second, flat facets in mesh representation are merely linear approximations to the real object geometry. Some geometric operations, such as derivative computation, may not be meaningful at all for mesh, and other operations may not result in the desired accuracy. Third, LOD representations can be heavy even with state-of-art advanced compression. Fundamentally, flat facets, the basic element of LOD representation, does not exploit the intrinsic property of curved surface geometry. [Para 6] An alternative format called Boundary Representation, or BREP, can be used for graphics display in the file format BREP contains accurate geometry description of object geometry in which the modeling primitives can be curved. BREP representation is also the industry standard for 3D representation in CAD packages where the engineering models are authored, and therefore contains necessary information for all kinds of geometric operations with required accuracy. However, BREP representation is heavy and frequently heavier than typical LOD representation. In addition, BREP surface representation in general can't be directly accepted by mainstream graphics APIs such as OpenGL and DirectX. Facet representation needs to be generated by BREP with a process commonly called tessellation, before the object can be displayed on screen. The speed of BREP tessellation is therefore critical for graphics performance. Including both LOD and BREP representations in the file would fulfill most graphics and geometry operations and requirements, but only at the cost of making the file size even bigger.
[Para 7] What is needed is a system, process, and method for improving the
trimmed surface tessellation speed of a light model representation.
Summary
[Para 8] To achieve the foregoing, and in accordance with the purpose of the presently preferred embodiment as broadly described herein, the present application provides a method for tessellation, comprising tessellating a curve having a plurality of polygons; connecting said plurality of polygons in a preferred direction; decomposing polygons into a plurality of triangles; and whereby a mesh representation is creating from said plurality of triangles. The method, further comprising tessellating a surface. The method, further comprising tessellating said curve by a conventional approach. The method, wherein said decomposition step occurs by monotone positioning. The method, wherein a model representation provides said curves for tessellation. The method, wherein said model representation is one of a BREP and a light model. [Para 9] Another advantage of the presently preferred embodiment is to provide a system for tessellation, comprising a curve tessellation having a plurality of polygons; a connection of said plurality of polygons in a preferred direction; and a decomposed polygon consisting of a plurality of triangles. The system, further comprising a surface tessellation. The system, further comprising a curve tessellated by a conventional approach. The system, further comprising a model representation form that provides one of a BREP representation and a light model representation.
[Para 1 0] And another advantage of the presently preferred embodiment is to provide a computer-program product tangibly embodied in a machine readable medium to perform a method for tessellation, comprising instructions operable to cause a computer to tessellate a curve having a plurality of
polygons; connect said plurality of polygons in a preferred direction; and decompose polygons into a plurality of triangles. The computer-program product, further comprising instructions to tessellate a surface. The computer- program product, further comprising instructions to tessellate said curve by a conventional approach. The computer-program product, wherein said decomposition instructions occur by monotone positioning. The computer- program product, wherein a model representation provides said curves for tessellation. The computer-program product of Claim 15, wherein said model representation is one of a BREP and a light model. [Para 1 1 ] And still another advantage of the presently preferred embodiment is to provide a data processing system having at least a processor and accessible memory to implement a method for tessellation, comprising means for tessellating a curve having a plurality of polygons; means for connecting said plurality of polygons in a preferred direction; and means for decomposing polygons into a plurality of triangles.
[Para 1 2] Other advantages of the presently preferred embodiment will be set forth in part in the description and in the drawings that follow, and, in part will be learned by practice of the presently preferred embodiment. The presently preferred embodiment will now be described with reference made to the following Figures that form a part hereof. It is understood that other embodiments may be utilized and changes may be made without departing from the scope of the presently preferred embodiment.
Brief Description of the Drawings
[Para 1 3] A presently preferred embodiment will hereinafter be described in conjunction with the appended drawings, wherein like designations denote like elements, and: [Para 1 4] Figure 1 is a flow diagram illustrating a visualization system; [Para 1 5] Figure 2 is a flow chart to obtain a tessellated mesh from a light model representation
[Para 1 6] Figure 3 is an illustration of a monotone partitioning algorithm processing a monotone polygon to an output set of triangles; [Para 1 7] Figure 4 is an illustration of a trimmed cylinder tessellation using the technique disclosed in the presently preferred embodiment; and [Para 1 8] Figure 5 is a block diagram of a computer environment in which the presently preferred embodiment may be practiced.
Detailed Description of the Preferred Embodiments
[Para 1 9] The numerous innovative teachings of the present application will be described with particular reference to the presently preferred embodiments. It should be understood, however, that this class of embodiments provides only a few examples of the many advantageous uses of the innovative teachings herein. The presently preferred embodiment provides, among other things, a system and method for trimmed surface tessellation. Now therefore, in accordance with the presently preferred embodiment, an operating system executes on a computer, such as a general-purpose personal computer. Figure 5 and the following discussion are intended to provide a brief, general description of a suitable computing environment in which the presently preferred embodiment may be implemented. Although not required, the presently preferred embodiment will be described in the general context of computer- executable instructions, such as program modules, being executed by a personal computer. Generally program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implementation particular abstract data types. The presently preferred embodiment may be performed in any of a variety of known computing environments. [Para 20] Referring to Figure 5, an exemplary system for implementing the presently preferred embodiment includes a general-purpose computing device in the form of a computer 500, such as a desktop or laptop computer, including a plurality of related peripheral devices (not depicted). The computer 500 includes a microprocessor 505 and a bus 510 employed to connect and enable
communication between the microprocessor 505 and a plurality of components of the computer 500 in accordance with known techniques. The bus 510 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The computer 500 typically includes a user interface adapter 515, which connects the microprocessor 505 via the bus 510 to one or more interface devices, such as a keyboard 520, mouse 525, and/or other interface devices 530, which can be any user interface device, such as a touch sensitive screen, digitized pen entry pad, etc. The bus 510 also connects a display device 535, such as an LCD screen or monitor, to the microprocessor 505 via a display adapter 540. The bus 510 also connects the microprocessor 505 to a memory 545, which can include ROM, RAM, etc.
[Para 21 ] The computer 500 further includes a drive interface 550 that couples at least one storage device 555 and/or at least one optical drive 560 to the bus. The storage device 555 can include a hard disk drive, not shown, for reading and writing to a disk, a magnetic disk drive, not shown, for reading from or writing to a removable magnetic disk drive. Likewise the optical drive 560 can include an optical disk drive, not shown, for reading from or writing to a removable optical disk such as a CD ROM or other optical media. The aforementioned drives and associated computer-readable media provide nonvolatile storage of computer readable instructions, data structures, program modules, and other data for the computer 500.
[Para 22] The computer 500 can communicate via a communications channel 565 with other computers or networks of computers. The computer 500 may be
associated with such other computers in a local area network (LAN) or a wide area network (WAN), or it can be a client in a client/server arrangement with another computer, etc. Furthermore, the presently preferred embodiment may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices. All of these configurations, as well as the appropriate communications hardware and software, are known in the art. [Para 23] Software programming code that embodies the presently preferred embodiment is typically stored in the memory 545 of the computer 500. In the client/server arrangement, such software programming code may be stored with memory associated with a server. The software programming code may also be embodied on any of a variety of non-volatile data storage device, such as a hard- drive, a diskette or a CD-ROM. The code may be distributed on such media, or may be distributed to users from the memory of one computer system over a network of some type to other computer systems for use by users of such other systems. The techniques and methods for embodying software program code on physical media and/or distributing software code via networks are well known and will not be further discussed herein. System
[Para 24] Figure 1 is a flow diagram illustrating a visualization system. Referring to Figure 1, a light model visualization system, generally illustrated at 100, has a light model format stored on disk 105 produced from a BREP model
110 derived from CAD data by a light model production component 115, written to disk by a light model compression component 120, and consumed by a tessellation kernel 125, a visualization kernel 130, and a geometric kernel 135 to fulfill engineering visualization functions such as to a graphics display 140 or a geometric analysis 145. Technique
[Para 25] Figure 2 is a flow chart to obtain a tessellated mesh from a light model representation. Referring to Figure 2, the surfaces of the light model representation are tessellated (Step 200), as are the curves (Step 205). The resulting tessellated surface becomes part of a triangle mesh representation (Step 210). The process of tessellating curves produces a set of polygons. The polygons that belong to a single surface need to be connected (Step 215). A decision has to be made to connect the polygons based on the existence of a preferred direction. If the polygons are connected with certain direction restriction so that the tessellation result still matches the surface well (Step 220), then a preferred direction exists. With a preferred direction, the polygons are further decomposed into simple triangles (Step 225) utilizing known techniques to those skilled in the art. One such technique to decompose polygons is known as monotone partitioning (incorporated herein by reference) that runs in O(n log(n)) time with an input of a monotone polygon and an output a set of triangles. Returning to Step 220, if the tessellation result does not match the surface well, then a preferred direction does not exist and a conventional tessellation approach is used (Step 230) in a manner that is commonly known in the art, for example divide and conquer. The tessellated
polygons are then incorporated in the triangle mesh representation (Step 210). Operation
[Para 26] Figure 3 is an illustration of a trimmed cylinder tessellation using the technique disclosed in the presently preferred embodiment. Referring to Figure 4, there are numerous possible ways to connect vertex A in trimmed polygon 300 to other vertices in the trimmed polygon. In fact, all the other vertices need to be geometrically evaluated in order to identify best candidate vertices B, C, and D. Even with some optimization to reduce the number of geometric evaluations, it is still computationally very expensive to available resources to produce the optimal tessellation result. For cylindrical surfaces, the directional curvature along its axis direction V 305 is zero at any surface location. This implies that the preferred direction to connect the polygon vertices is fixed at the axis direction. This is true in both a model space 310 and a parameter space 315. Therefore, for the surface shown in Figure 3, the problem "how to produce geometrically optimal tessellation" is now turned into an equivalent problem "how to produce tessellation in the parameter space with a given preferred direction to connect the lines". For the example shown in Figure 4, the preferred direction is the vertical direction because with cylinders, for example, the preferred direction lies in the direction of the central axis. Using the monotone partitioning algorithm in the presently preferred embodiment, one or more 2-dimensional polygons are efficiently tessellated to define a connected region, such as the three polygons indicated at B, C, and D, with a preferred direction. Although a cylindrical surface is being used as an example, the above described method can be applied to any surface type where
a preferred direction produces optimal tessellation or acceptable tessellation due to its curvature characteristics. While preferred direction is directly known as parameter V direction for analytic surface types including plane, cylinder, and cone surface types, it can also exist for other surface types such as sphere, and torus, or even NURBS depending on their curvature distribution and trimming type and can be pre-computed as a Boolean flag and stored in light model. Similar techniques can be used for other trimmed polygons 320 & 325. Conclusion [Para 27] The presently preferred embodiment may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations thereof. An apparatus of the presently preferred embodiment may be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor; and method steps of the presently preferred embodiment may be performed by a programmable processor executing a program of instructions to perform functions of the presently preferred embodiment by operating on input data and generating output.
[Para 28] The presently preferred embodiment may advantageously be implemented in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. The application program may be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if
desired; and in any case, the language may be a compiled or interpreted language.
[Para 29] Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of nonvolatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD- ROM disks. Any of the foregoing may be supplemented by, or incorporated in, specially-designed ASICs (application-specific integrated circuits).
[Para 30] A number of embodiments have been described. It will be understood that various modifications may be made without departing from the spirit and scope of the presently preferred embodiment. Therefore, other implementations are within the scope of the following claims.
Claims
What is claimed is:
[Claim 1 ] A method for tessellation, comprising: tessellating a curve having a plurality of polygons; connecting said plurality of polygons in a preferred direction; decomposing polygons into a plurality of triangles; and whereby a mesh representation is creating from said plurality of triangles.
[Claim 2] The method of Claim 1, further comprising tessellating a surface. [Claim 3] The method of Claim 1, further comprising tessellating said curve by a conventional approach. [Claim 4] The method of Claim 1, wherein said decomposition step occurs by monotone positioning. [Claim 5] The method of Claim 1, wherein a model representation provides said curves for tessellation. [Claim 6] The method of Claim 5, wherein said model representation is one of a BREP and a light model. [Claim 7] A system for tessellation, comprising: a curve tessellation having a plurality of polygons; a connection of said plurality of polygons in a preferred direction; and a decomposed polygon consisting of a plurality of triangles. [Claim 8] The system of Claim 7, further comprising a surface tessellation. [Claim 9] The system of Claim 7, further comprising a curve tessellated by a conventional approach. [Claim 1 0] The system of Claim 7, further comprising a model representation form that provides one of a BREP representation and a light model representation.
[Claim 1 1 ] A computer-program product tangibly embodied in a machine readable medium to perform a method for tessellation, comprising instructions operable to cause a computer to: tessellate a curve having a plurality of polygons; connect said plurality of polygons in a preferred direction; and decompose polygons into a plurality of triangles. [Claim 1 2] The computer-program product of Claim 11, further comprising tessellating a surface. [Claim 1 3] The computer-program product of Claim 11, further comprising tessellating said curve by a conventional approach. [Claim 14] The computer-program product of Claim 11, wherein said decomposition step occurs by monotone positioning. [Claim 1 5] The computer-program product of Claim 11, wherein a model representation provides said curves for tessellation. [Claim 1 6] The computer-program product of Claim 15, wherein said model representation is one of a BREP and a light model.
[Claim 1 7] A data processing system having at least a processor and accessible memory to implement a method for tessellation, comprising: means for tessellating a curve having a plurality of polygons; means for connecting said plurality of polygons in a preferred direction;and means for decomposing polygons into a plurality of triangles.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP07814006A EP2050079A1 (en) | 2006-08-11 | 2007-08-11 | Method and system for trimmed surface tessellation |
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US82213306P | 2006-08-11 | 2006-08-11 | |
US60/822,133 | 2006-08-11 | ||
US11/837,402 | 2007-08-10 | ||
US11/837,305 US8988420B2 (en) | 2006-08-11 | 2007-08-10 | Visual file representation |
US11/837,371 US9070178B2 (en) | 2006-08-11 | 2007-08-10 | Method and system for organizing topology elements for better compression |
US11/837,402 US8884956B2 (en) | 2006-08-11 | 2007-08-10 | System and method for trimmed surface tessellation |
US11/837,371 | 2007-08-10 | ||
US11/837,305 | 2007-08-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2008022057A1 true WO2008022057A1 (en) | 2008-02-21 |
Family
ID=38819269
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2007/075760 WO2008022057A1 (en) | 2006-08-11 | 2007-08-11 | Method and system for trimmed surface tessellation |
PCT/US2007/075758 WO2008022055A1 (en) | 2006-08-11 | 2007-08-11 | Visual file representation |
PCT/US2007/075759 WO2008022056A2 (en) | 2006-08-11 | 2007-08-11 | Method and system for organizing topology elements for better compression |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2007/075758 WO2008022055A1 (en) | 2006-08-11 | 2007-08-11 | Visual file representation |
PCT/US2007/075759 WO2008022056A2 (en) | 2006-08-11 | 2007-08-11 | Method and system for organizing topology elements for better compression |
Country Status (2)
Country | Link |
---|---|
EP (3) | EP2050078A2 (en) |
WO (3) | WO2008022057A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112115390A (en) * | 2019-06-20 | 2020-12-22 | 华为技术有限公司 | Method, device and equipment for displaying topology structure diagram and storage medium |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6191791B1 (en) * | 1997-09-30 | 2001-02-20 | Hewlett-Packard Company | Methods for high precision, memory efficient surface normal compression and expansion |
US6167159A (en) * | 1998-04-30 | 2000-12-26 | Virtue Ltd. | Triangle mesh compression |
US6573890B1 (en) * | 1998-06-08 | 2003-06-03 | Microsoft Corporation | Compression of animated geometry using geometric transform coding |
US7248257B2 (en) * | 2001-02-14 | 2007-07-24 | Technion Research & Development Foundation Ltd. | Low bandwidth transmission of 3D graphical data |
JP2004005373A (en) * | 2001-11-27 | 2004-01-08 | Samsung Electronics Co Ltd | Node structure for representing three-dimensional object based on depth image |
KR20070083652A (en) * | 2004-09-13 | 2007-08-24 | 이엑스피웨이 | Method for compressing and decompressing a sequence of floating point numbers |
EP1839265A4 (en) * | 2005-01-14 | 2012-10-17 | Iucf Hyu | Method of encoding and decoding texture coordinates in three-dimensional mesh information for effective texture mapping |
-
2007
- 2007-08-11 WO PCT/US2007/075760 patent/WO2008022057A1/en active Application Filing
- 2007-08-11 WO PCT/US2007/075758 patent/WO2008022055A1/en active Application Filing
- 2007-08-11 EP EP07814005A patent/EP2050078A2/en not_active Withdrawn
- 2007-08-11 WO PCT/US2007/075759 patent/WO2008022056A2/en active Application Filing
- 2007-08-11 EP EP07814004A patent/EP2050077A1/en not_active Withdrawn
- 2007-08-11 EP EP07814006A patent/EP2050079A1/en not_active Withdrawn
Non-Patent Citations (5)
Title |
---|
ALLIEZ P ET AL: "Anisotropic polygonal remeshing", ACM TRANSACTIONS ON GRAPHICS ACM USA, vol. 22, no. 3, July 2003 (2003-07-01), pages 485 - 493, XP002463076, ISSN: 0730-0301 * |
LAMOT M ET AL: "Algorithms for triangulating simple polygons", INFORMATION TECHNOLOGY INTERFACES, 2000. ITI 2000. PROCEEDINGS OF THE 22ND INTERNATIONAL CONFERENCE ON JUNE 13-16, 2000, PISCATAWAY, NJ, USA,IEEE, 13 June 2000 (2000-06-13), pages 429 - 436, XP010538672, ISBN: 953-96769-1-6 * |
MARINOV M ET AL: "Direct anisotropic quad-dominant remeshing", COMPUTER GRAPHICS AND APPLICATIONS, 2004. PG 2004. PROCEEDINGS. 12TH PACIFIC CONFERENCE ON SEOUL, KOREA 6-8 OCT. 2004, PISCATAWAY, NJ, USA,IEEE, 6 October 2004 (2004-10-06), pages 207 - 216, XP010735042, ISBN: 0-7695-2234-3 * |
PIEGL L A ET AL: "Geometry-based triangulation of trimmed NURBS surfaces", COMPUTER AIDED DESIGN, ELSEVIER PUBLISHERS BV., BARKING, GB, vol. 30, no. 1, January 1998 (1998-01-01), pages 11 - 18, XP004112164, ISSN: 0010-4485 * |
RODRIGUES DE ARAUJO ET AL: "Adaptive polygonization of implicit surfaces", COMPUTERS AND GRAPHICS, ELSEVIER, GB, vol. 29, no. 5, October 2005 (2005-10-01), pages 686 - 700, XP005130480, ISSN: 0097-8493 * |
Also Published As
Publication number | Publication date |
---|---|
EP2050079A1 (en) | 2009-04-22 |
WO2008022055A1 (en) | 2008-02-21 |
WO2008022056A2 (en) | 2008-02-21 |
EP2050078A2 (en) | 2009-04-22 |
WO2008022056A3 (en) | 2008-12-24 |
EP2050077A1 (en) | 2009-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8988420B2 (en) | Visual file representation | |
US9836884B2 (en) | Parameterizing a 3D modeled object for tessellation | |
US9881388B2 (en) | Compression and decompression of a 3D modeled object | |
EP2750109B1 (en) | Tessellation of a parameterized 3D modeled object | |
EP3379495B1 (en) | Seamless fracture in an animation production pipeline | |
EP3321817A1 (en) | Querying a database based on a parametric view function | |
KR20080022551A (en) | Triangulating procedural geometric objects | |
KR100503789B1 (en) | A rendering system, rendering method, and recording medium therefor | |
CN111382530A (en) | Learning neural networks for inferring CAD features of entities | |
CN111382778A (en) | Forming datasets for inferring CAD features of entities | |
Nguyen et al. | Triangular mesh and boundary representation combined approach for 3D CAD lightweight representation for collaborative product development | |
US8884956B2 (en) | System and method for trimmed surface tessellation | |
US9070178B2 (en) | Method and system for organizing topology elements for better compression | |
Sun | A digital mock-up visualization system capable of processing giga-scale CAD models | |
US11605200B2 (en) | System for optimizing a 3D mesh | |
JP5458440B2 (en) | Curved surface generation device and curved surface generation program | |
WO2008022057A1 (en) | Method and system for trimmed surface tessellation | |
US20190251218A1 (en) | System and Method for Performing Isogeometric Analysis and Finite Element Analysis Using H-Splines | |
US11640485B1 (en) | Generating CAD models from topology optimization data | |
US8514223B2 (en) | Apparatus and method for generating three-dimensional model data | |
US7091969B2 (en) | Frontier advancing polygonization | |
JP2008533614A (en) | System and method for generating matched contour profiles | |
Chen et al. | A real-time, interactive method for fast modification of large-scale CAE mesh models | |
US11869123B2 (en) | Anti-aliasing two-dimensional vector graphics using a compressed vertex buffer | |
Liyan et al. | Segmentation and parametrization of arbitrary polygon meshes |
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: 07814006 Country of ref document: EP Kind code of ref document: A1 |
|
REEP | Request for entry into the european phase |
Ref document number: 2007814006 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2007814006 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
NENP | Non-entry into the national phase |
Ref country code: RU |