HK1174135B - Connectivity depended geometry optimization for real-time rendering - Google Patents
Connectivity depended geometry optimization for real-time rendering Download PDFInfo
- Publication number
- HK1174135B HK1174135B HK13101482.8A HK13101482A HK1174135B HK 1174135 B HK1174135 B HK 1174135B HK 13101482 A HK13101482 A HK 13101482A HK 1174135 B HK1174135 B HK 1174135B
- Authority
- HK
- Hong Kong
- Prior art keywords
- component
- components
- rendering
- computer
- determining
- Prior art date
Links
Description
Technical Field
The present invention relates to a method for visualising/rendering a computer model. In particular, the present invention relates to an efficient computational method for visualising/rendering a computer model.
Background
3D computer graphics is used in a wide range of fields such as Computer Aided Design (CAD) and computer games. 3D computer graphics can be used to generate perspective views of 3D models. This can be used during design (as is common in CAD) or for entertainment purposes (as is common in computer games). One common problem facing 3D computer graphics is the large computational resources required. This is particularly a problem for real-time 3D computer graphics, since a lack of computational resources will result in a reduced frame rate and a corresponding reduced user experience.
Intensive research on calculations has been matched by a similar increase in complexity of the computer model. This is true for both CAD, where larger structures are designed, and computer games, where increased levels of detail result in more complex models. The common set of objects represented with 3D computer graphics is a composite product. A composite product is a product that includes a plurality of smaller physical components.
Examples of composite products that include a large number of components include large machinery, automobiles, aircraft and other vehicles, buildings, and products sold and transported unassembled, such as furniture, toy models, and the like. Specific examples of products comprising a large number of smaller components include toy construction sets (sets) comprising a plurality of interconnectable toy construction elements.
There are various known types of modelling concepts of toy construction sets. In particular, building block or semi-building block concepts are very popular because they provide an interesting and challenging play experience. Typically, these concepts provide a set of prefabricated building elements that can be connected to each other in some predetermined manner by means of connecting elements or other coupling components of the prefabricated elements. The pre-manufactured construction elements may resemble well-known objects that are suitable for the specific modeling task. Thus in a model for example building a house, the building elements may resemble wall tiles, doors and windows. An advantage of selecting the building elements in this way is that play is put into the system and the work involved in building the model of the house is significantly reduced compared to a situation where all details of the house are to be defined each time a new model is to be made. However, for simplicity of building a model, the full freedom to build a house or other object is traded off.
For example, a toy construction set available under the brand LEGO comprises a plurality of different kinds of interconnectable building elements having protrusions and corresponding recesses as connecting elements. The connecting elements are arranged according to a regular grid pattern, thereby allowing various connections between the construction elements.
A known method of reducing the computational load required to visualize/render a computer model is occlusion culling (occluationculling). Occlusion culling works by finding hidden faces from a given viewing perspective. However, known occlusion culling algorithms are slow and need to run each time the viewpoint changes. This is particularly a problem for computer aided design and computer games, since the viewpoint in these applications typically changes often, resulting in a large computational load due to occlusion culling algorithms.
It remains a problem to visualize/render composite products in a computationally efficient manner.
Disclosure of Invention
A first aspect of the invention relates to a computer-implemented method for visualising/rendering a computer model, the computer model comprising a plurality of components, wherein the method comprises:
a plurality of parts storing at least one of the plurality of components, each part comprising geometrical information for visualizing/rendering the part,
storing information indicative of the positions and orientations of the plurality of components in a coordinate system,
determining a spatial relationship between respective ones of the components based on the stored information indicative of the respective positions and orientations of the plurality of components,
based on the determined spatial relationships between the respective components, a plurality of stored components is determined for at least one component for surfacing/rendering the component.
The computer model may represent any object, such as a composite product, e.g., a toy model, or alternatively a non-composite product, e.g., a digital signature. The computer model may have any dimension, such as two or three dimensions. The computer model may also be animated over time. The animation of the computer model may involve the entire model or selected components of the model. The component may be any subset of a model, such as a toy construction element or alternatively a set of faces of a toy construction element when the computer model represents a toy model built from the toy construction elements. The component may be any subset of the assembly, such as a set of faces of a protruding cylinder or alternatively a protruding cylinder on a toy construction element.
In one embodiment, the subgroup being the appropriate subgroup means that the component cannot be the entire model, and the part cannot be the entire component.
In one embodiment, the subset is not limited to an appropriate subset meaning that the component can be the entire model, and the part can be the entire component.
The component may contain geometric information defining the geometry of the assembly. The geometric information may be stored in any form, such as a polygonal mesh, NURBS faces, or Patch faces. The component may also include material properties of the component, such as texture properties, reflection properties, refraction properties, transparency settings, and shading properties.
The information indicative of the position and orientation of the component may be the position and orientation of the component in any local or global coordinate system or information describing their relationship with respect to another model, component, part, etc., as disclosed in, for example, WO 04034333.
The number of components used to visualize/render the assembly may be any number, including special cases when all components of the assembly are used and no components are used.
The result of visualizing/rendering the computer model may be to create an image or a series of images. The one or more images may be 2-dimensional. One or more images may be displayed directly on the screen and/or saved in a digital file.
By sub-dividing a component into multiple parts and using the spatial relationships between the components to determine the multiple parts for visualizing/rendering the component, knowledge about the geometry of individual components and the connection of the components to other components can be used to find hidden parts that can be removed without having a visual impact on the model.
This makes it possible to find hidden components without using computationally complex ray tracing algorithms, thereby making the method suitable for real-time use. By using the spatial relationship between the various components, rather than the spatial relationship between the virtual camera and the components as in standard occlusion culling algorithms, a viewpoint-independent optimization can be obtained. This saves computational resources because the method only needs to be re-run when a structural change occurs to the composite model (e.g., a new component is added or an existing component is removed). Even if a structural change does occur, the method only needs to be re-run for components that are in the vicinity of the change. This saves computational resources for subsequent optimization.
By dividing the assembly into components and storing the components before performing the optimization, any computational resources used to divide the assembly in the optimization step are saved. The sub-division of the components may be performed using an automated process or alternatively manually. When the sub-division is performed manually, it can be performed with human skill using knowledge about geometry and/or connections of components, thereby enabling efficient optimization.
A second aspect of the invention relates to a computer program, wherein the computer program comprises executable computer program code adapted to cause a data processing system to perform the steps of:
at least one design step comprising:
providing a computer-implemented construction tool for allowing a user to select respective digital representations of a plurality of components from a component repository, wherein each component comprises a plurality of parts, and arranging the selected components in a spatial relationship to each other such that a digital representation of a composite product is generated;
and further processing steps comprising:
generating a visualization/rendering of at least a portion of a composite product, wherein the generating comprises:
a plurality of parts storing at least one of the plurality of components, each part comprising geometrical information for visualizing/rendering the part,
storing information indicative of the positions and orientations of the plurality of components in a coordinate system,
determining a spatial relationship between respective ones of the components based on the stored information indicative of the positions and orientations of the plurality of components,
based on the determined spatial relationships between the respective components, a plurality of stored components is determined for at least one component for surfacing/rendering the component.
In one embodiment, the computer program is a toy computer program for children.
The computer-implemented construction tool may be a graphical user interface.
The task of creating a digital model can be very challenging. The normal physical limit of presence in the real world is a priori not present in the digital environment. The endless possibility makes it possible to create any model, but it also makes the design step very challenging. The key skill of any numerical modeler is to use the correct number of details at the correct points in the model. This means that in addition to having to focus on the shape of the digital model, the digital designer needs to focus on the underlying structure of the model, such as the amount of vertices used in various places. This is important because the modeling task is an interactive process that typically involves continuous real-time visualization/rendering of the model, which allows a digital designer to visually inspect the model as it is designed. If the model becomes unnecessarily complex, the frame rate of the real-time rendering of the model will be reduced, making more design processing problematic.
When the user of such a system is a child, it becomes important to simplify the design process as much as possible. By providing the child with a digital construction tool that includes a repository of components and further automatically simplifying the constructed model using the spatial relationships between the components, the complexity of the design process is greatly reduced. This would allow children to focus exclusively on the task of building a model without having to worry about applying the correct complexity measures to the correct points of the model. This would allow a child to create larger, more interesting models, increase the play value of the toy computer program, and allow a smaller child to use the toy program.
In one embodiment, at least one component has at least one connection region associated therewith, wherein the connection region indicates the portion of the connection region to which the component can be connected to a similar component.
The connection region may be any predetermined region in the vicinity of the component. In one embodiment, the connection region is located at a surface of the component. The connection region may correspond to or be defined by one or more components (e.g., portions of a surface) of the assembly. The connection region may have any shape, for example a plane or a part of a plane or a rounded or curved surface. The location of the connection region may be defined in a global coordinate system or relative to the component. The assembly may include any number of connection regions. There may be multiple types of connection regions. The connection areas may be compatible with a predetermined number of connection area types, e.g. a connection area representing a component of a toy construction element (linked to the top of the component) may be compatible only with a connection area linked to the bottom of a component representing a similar toy construction element. In some embodiments, the information indicating the compatibility of the various types of connection areas, i.e., the information indicating whether the various types of connection areas are connectable to each other, may be stored in an appropriate data structure (e.g., a table). For example, the information may indicate for each connection region of a given type which type of connection region is connectable with the connection region of the given type. In one embodiment, the data structure may indicate, for each pair of connection region types, whether the pair of connection region types is compatible, incompatible, or inconsequential. When a pair of connection regions are compatible, they may provide a connection between the two components. When a pair of connection regions are incompatible, they prevent placing the two components in close proximity to each other. When a pair of connection areas is not of concern, they allow two components to be placed in close proximity to each other without actually providing a connection between the components.
By providing the components with predetermined connection areas, the work of creating a model from the components is simplified. This reduces the production cost of developing a model, whether the model is for CAD, computer games, or other applications.
In one embodiment of the invention, the step of determining the spatial relationship between the components comprises the step of determining the spatial relationship of the connection regions of the components.
In one embodiment of the invention, the step of determining the spatial relationship between the respective connection regions comprises the step of determining the distance between two connection regions.
The distance may be any norm distance, such as a 2-norm euclidean distance. The distance may be a distance between two points of the connection area or a plurality of points on the connection area. In one embodiment, the distance is defined as the closest distance between two connected regions. In one embodiment, the process determines that two connected regions are connected when the distance between the two connected regions is within a predetermined range.
Determining the spatial relationship between two connected regions by examining their distance is an efficient and computationally simple method. This will reduce the computational resources required by the method, thereby reducing the overall number of computations required to visualize/render the model.
In one embodiment, each connection region has a direction associated therewith, and the step of determining the spatial relationship between the connection regions comprises the step of determining the direction of one connection region relative to another connection region.
In one embodiment, the process determines that two connection regions are connected when the two connection regions have a predetermined orientation relative to each other, i.e., when the connection regions are parallel or nearly parallel to each other. The spatial relationship between the connection regions may be determined by a combination of the distance between the connection regions and their relative orientation.
Two connection regions may be placed close to each other without alignment, but a more accurate determination may be obtained by additionally using the relative direction between the connection regions to determine their spatial relationship.
In some embodiments, the process determines that two connection regions are connected when they are placed within a predetermined proximity relative to each other and when their respective orientations and types are compatible with each other.
In some embodiments, processing determines that the first component is not used to render/render the component only when the component has one or more connection regions associated with the first component that are connected to another connection region of another component.
By optimizing only the actually connected components, re-optimization can be avoided when moving unconnected components relative to each other during animation. This will reduce the need for re-optimization, thereby resulting in a corresponding reduction of computational resources required for optimization, since the probability of an event that connected toy construction elements move relative to each other is much smaller than for unconnected toy construction elements.
In an alternative embodiment, the process also determines that the first component is not used to render/render the components when the connection region associated with the first component is within a predetermined proximity and/or orientation to the connection region of another component without actually providing a connection for a connection between the components (e.g., because the types of the two connection regions do not matter relative to each other).
By also optimizing the unconnected components, more components of the assembly can be optimized. This will reduce the computational resources required to visualize/render the computer model, especially when the components of the model are fixed.
In one embodiment, determining the spatial relationship includes determining whether the connection regions of the respective components have compatible types that provide/allow the connection.
In one embodiment, in the step of determining a plurality of components for at least one component for rendering/rendering the component, fewer components are used when connecting at least one connection area of the component.
In one embodiment, the processing determines that the first part is not used to visualize/render the component when at least a predetermined portion of the surface area of the first part is covered by one or more other parts when viewed from any direction outside the bounding box of the computer model. The predetermined percentage may be any percentage. Preferably, it is 40%; more preferably, it is 70%; even more preferably, it is 90%. The bounding box is the smallest box that can contain the entire model. By not using parts covered by a predetermined percentage to visualize/render a given component, any visual impact of the optimization model may be limited. This further provides a flexible system in which the trade-off between visual impact and computational complexity can be controlled. In a given application, such as real-time computer graphics, it may be useful to prioritize low numbers of computations over the visual accuracy of the model, resulting in a high frame rate, while in other applications visual accuracy may be more important than the number of computations.
In one embodiment of the invention, the step of determining for at least one component a plurality of parts for visualising/rendering said component comprises the steps of: determining a material property of the component; and determining a plurality of components for visualizing/rendering the assembly based on the determined spatial relationship and the determined material property.
In one embodiment, the step of determining the material property comprises the step of determining a transparency setting of the component. The transparency setting may be any setting regarding the transparency of a component or a portion of a component. Transparency may relate to a refraction phenomenon. The parts of the assembly of the model that would normally be hidden may be visible if the part or other parts connected to the part are transparent. By using the determined spatial relationship and material properties, a more accurate determination of the hidden component may be obtained.
In some embodiments, the computer model represents a composite product. In some embodiments, the computer model represents a toy model built from toy construction elements, wherein each component of the calculator model corresponds to a toy construction element. In some embodiments the toy construction elements have connection units for connecting them with other similar toy construction elements. The connection unit may have any shape, for example circular or rectangular.
In one embodiment, the first component comprises a first occlusion region of a predetermined type and the second component comprises a second occlusion region of the predetermined type, wherein a spatial relationship between the first and second occlusion regions is used to determine the portion of the first component occluded by the second component.
The occlusion region may have a shape similar to or even identical to a portion of the component. For example, the occlusion region may be defined as a portion of a surface of the component of the assembly. The occluded area can be linked to a particular component or components of the assembly. One or more parts linked to the occlusion region may be determined to be occluded when the occlusion region linked to the part is occluded. The spatial relationship between the first and second occlusion regions may be determined by the spatial relationship between one or more connection regions of the first component and one or more connection regions of the second component. The type of occlusion region may be related to its shape. The occlusion region may have any shape, such as circular or rectangular. The type of occlusion region may also be related to the size of the occlusion region. The type of occlusion region may determine how one component occludes the other, e.g., a circular occlusion region may occlude another circular occlusion region but not a square occlusion region, a square occlusion region may occlude both circular and square occlusion regions.
The connection region may determine how one component may be connected to other components, while the occlusion region may determine how one component occludes another component. Two components may be connected without obscuring each other and two components may be obscured without being connected.
The assembly and/or one or more components of the assembly may have one or more occlusion regions and/or one or more connection regions associated therewith. In one embodiment, the connection region may also function as an occlusion region.
By assigning occlusion regions to components, the method can easily find hidden parts in the computer model. Hidden components can be found by examining the spatial relationship between two connection regions of two assemblies. If two connected regions associated with respective components are found to be connected, processing may determine one or more occluded parts based on respective occlusion regions associated with respective parts, e.g., based on logical rules related to respective types of associated occlusion regions (e.g., square region covering circular region, etc.). Thus, each component may have associated therewith one or more connection regions and one or more occlusion regions.
In one embodiment, multiple occlusion regions are linked to a single component.
In one embodiment, a part is occluded if all of the occluded regions linked to the part are occluded.
In one embodiment, the computer model may be animated independently of other computer models, components of the computer model may be animated independently of other components of the computer model, and components of the components may be animated independently of other components of the components.
In one embodiment, the first part and the second part represent a common portion of the component, wherein the first part has a higher level of detail than the second part, and wherein the step of determining a plurality of stored parts for visualizing/rendering the component further comprises selecting at most one of the first part and the second part for visualizing/rendering the component.
By having multiple components represent a common part of the assembly, components that are only partially hidden in a given situation can still be optimized. This will result in a more efficient optimization and make the work of dividing the assembly into components simpler.
The different aspects of the invention can be implemented in different ways, including the computer-implemented method, a data processing system and a toy computer program and further product units described above and in the following, each yielding one or more of the benefits and advantages described in connection with at least one of the above-mentioned aspects, each having one or more preferred embodiments corresponding to the preferred embodiments described in connection with at least one of the above-mentioned aspects and/or disclosed in the dependent claims. Furthermore, it will be understood that embodiments described in connection with one of the aspects described herein may be equally applied to the other aspects.
In one embodiment, the components are predefined.
In one embodiment, each component includes a plurality of faces, where a face is defined as a plane given by three vertices.
In one embodiment, occlusion culling is used in conjunction with the disclosed methods.
In one embodiment, a component represents a physical component of a composite product, such as a physical component of a composite product that cannot be further decomposed in smaller components without destruction, e.g. a screw in an airplane, or a toy construction element in a toy model built from toy construction elements of a toy construction system.
Drawings
The above and/or further objects, features and advantages of the present invention will be further elucidated by the following exemplary and non-limiting detailed description of an embodiment of the invention with reference to the drawings, in which:
fig. 1 a-1 c show examples of optimized forms of the prior art.
FIG. 2a shows an example of a computer model comprising a plurality of components.
FIG. 2b shows an example of an assembly of a computer model comprising a plurality of components.
FIG. 2c shows an example of a number of components of an assembly of computer models according to an embodiment of the present invention.
FIG. 3 illustrates an example of a number of components of an assembly of computer models in accordance with an embodiment of the present invention.
FIG. 4a shows a computer model comprising a plurality of components prior to optimization.
FIG. 4b shows the computer model including a plurality of components after optimization.
FIG. 5a shows a computer model comprising a plurality of components prior to optimization.
FIG. 5b shows the computer model including a plurality of components after optimization.
FIG. 6a shows a computer model comprising a plurality of components prior to optimization.
FIG. 6b shows the computer model including a plurality of components after optimization.
Fig. 7a shows a connection area defined with respect to a component.
Fig. 7b shows the compatibility of the connection area.
Fig. 8a shows a connection area defined with respect to a component.
Fig. 8b illustrates compatibility with respect to a connection region defined by a component.
FIG. 9a shows an example of a computer model comprising a plurality of components.
FIG. 9b shows an example of a number of components of an assembly of computer models in accordance with an embodiment of the present invention.
FIG. 9c shows an example of a number of components of an assembly of computer models in accordance with an embodiment of the present invention.
FIG. 10a shows a computer model including a plurality of components prior to optimization.
FIG. 10b shows the computer model including a plurality of components after optimization.
FIG. 11a shows a computer model including a plurality of components prior to optimization.
FIG. 11b shows the computer model including a plurality of components after optimization.
FIG. 12 illustrates a flow diagram of a method of visualising/rendering a computer model according to an embodiment of the invention.
FIG. 13 illustrates an example of a number of components of an assembly of computer models in accordance with an embodiment of the present invention.
FIG. 14 shows an example of a number of components of an assembly of computer models in accordance with an embodiment of the present invention.
15 a-15 f illustrate examples of assemblies, components, and occlusion regions according to embodiments of the invention.
FIG. 16 shows an example of computer model optimization according to an embodiment of the invention.
FIG. 17 shows an example of computer model optimization according to an embodiment of the invention.
FIG. 18 shows an example of a number of components of an assembly of computer models in accordance with an embodiment of the present invention.
FIG. 19 shows an example of computer model optimization according to an embodiment of the invention.
FIG. 20 shows a flow diagram of a method of visualising/rendering a computer model according to an embodiment of the invention.
Fig. 21 illustrates an example of a data structure according to an embodiment of the present invention.
Fig. 22 shows a schematic view of an example of a computer system.
23 a-23 b illustrate examples of components and occlusion regions according to embodiments of the invention.
FIG. 23c shows an example of computer model optimization according to an embodiment of the present invention.
FIG. 24 illustrates a graphical user interface of a computer-implemented build tool according to an embodiment of the invention.
Detailed Description
In the following description, reference is made to the accompanying drawings which show, by way of illustration, how the invention may be practiced.
1 a-1 c show examples of prior art forms of optimization, occlusion culling. The basic idea of occlusion culling is to examine the spatial relationship between the camera and the scene to find hidden surfaces that can be omitted in the rendering/visualization process. Fig. 1a shows a top view (topview) of a 3D scene containing two virtual cameras 102, 103, large boxes 104, 105, 106, 107 and small boxes 108, 109, 110, 111. Fig. 1b shows an image generated by the virtual camera 102. Only two surfaces 104, 106 of the large box are visible, all other surfaces being hidden. Using ray tracing methods, the occlusion culling algorithm can find these hidden faces and remove them. However, this is a process that requires high calculation. Fig. 1c shows an image generated from the camera 103. The small box, which was previously hidden by the large box, is now visible due to the change in perspective. This illustrates the limitations of the occlusion culling method. They are highly dependent on viewpoint. This makes occlusion culling less suitable for applications in which the viewing perspective changes often.
Fig. 2a shows an example of a computer model 201 according to an embodiment of the invention. In this example, computer model 201 represents a toy model built by the construction elements of a toy construction system. The computer model is built up of six similar components 202; however, in other embodiments, the number and type of components may be different. These six components are located on top of each other, creating a model of a triangle. FIG. 2b shows an example of an assembly 202 of computer models 201 according to an embodiment of the invention. Assembly 202 represents a toy construction element. The toy construction element 202 comprises six rectangular faces 215, 216, 217, 218, 219, 220 and eight cylinders 207, 208, 209, 210, 211, 212, 213, 214 protruding from the top. Figure 2c shows an example of components of an assembly according to an embodiment of the invention. Eight cylinders 207, 208, 209, 210, 211, 212, 213, 214 and six rectangles 215, 216, 217, 218, 219, 220 are shown. Table 1 shows the possible face counts for the different components.
TABLE 1
FIG. 3 illustrates various components of an assembly according to one embodiment. In this example, the assembly is a toy construction element as shown in fig. 2 b. A cylinder 301 and three rectangles 302, 303, 304 are shown. In this example, only the unique components remain.
FIG. 7a shows an example of a connection region associated with a component, according to an embodiment of the invention. The connection area determines how the component may be connected to other components. In this example, six connection regions are associated with a component; any number of connection regions may be defined. Type a connection regions are associated with the front and back of the component, type B connection regions are associated with the left and right sides of the component, type C connection regions are associated with the top of the component, and type D connection regions are associated with the bottom of the component. Different types of connection regions are optionally compatible with other types of connection regions. Fig. 7b shows an example of a compatibility table of the connection region defined in fig. 7 a. Connection region a is compatible with connection regions A, B and D, connection region B is compatible with connection regions A, B and D, connection region C is compatible with connection region D, and connection region D is compatible with connection regions A, B, C and D. The connection area can be used to determine the spatial relationship before the different components.
Fig. 8 shows another example of a connection region of a component according to an embodiment of the invention. In this example, the connection areas are only defined where the toy construction elements represented by the assembly may be connected to each other by a friction fit or other physical connection. Fig. 8b shows the compatibility of the connection area. FIG. 8c shows an example of a connection region associated with a component. In this example, multiple connection regions are placed side-by-side at the top and bottom of the assembly. Fig. 8d shows an example of a circular connection area. The figure shows an assembly representing a rim 801. The rim 801 has an associated single circular connection area 802. Figure 8e shows a computer model 804 containing two components, namely a rim 801 and a tyre 803 attached to the rim 801.
FIG. 4 illustrates an embodiment of the present invention for optimizing a computer model of a toy model. Figure 4a shows the toy model before optimization and figure 4b shows the toy model after optimization. The toy model is built up of three toy building bricks 401, 402, 403 placed side by side. In this embodiment, each toy brick represents one physical component of the model; however, in other embodiments the components may be defined in other ways, for example a first component may be defined as two toy building bricks 401, 402 and a second component may be defined as toy building brick 403, or a first component may be defined as a first set of faces of toy building brick 401 and a second component may be defined as a second set of faces of toy building brick 401. In this example, each assembly 401, 402, 403 comprises the components shown in fig. 1c and has the number of faces shown in table 1. For each of the components 401, 402, 403, groups of six connection areas are associated, as shown in fig. 7 a-b. Before the optimization step, each of the components 401, 402, 403 included 1546 faces, resulting in 4644 faces for the entire model. To optimize the model, the spatial relationships between the components 401, 402, 403 are determined. This can be achieved by using the connection area of the component. The first step may be to determine if any of the connection regions are within a predetermined proximity of other connection regions and/or if any of the connection regions are within a predetermined range of relative directions. In this example, the two type B connection regions of components 401 and 402 are in contact with the two type B connection regions of components 402 and 403. As can be seen from the table of fig. 7B, the connection region of type B is compatible with itself. The type of connection between the connection regions is then determined. Using the determined spatial relationships between the components 401, 402, 403, a number of parts of each component are selected. In this example, component 218 may be omitted when component 401 is represented, components 216 and 218 may be omitted when component 402 is represented, and component 216 may be omitted when component 403 is represented. Thus, the entire model after optimization can be represented by 4636 surfaces, as compared to 4644 surfaces before optimization. Table 2 shows the faces of the model before and after optimization.
| Reference numerals | 411 | 401 | 402 | 403 |
| Optimized number of the latter | 4636 | 1536 | 1544 | 1546 |
| Optimized number of fronts | 4644 | 1548 | 1548 | 1548 |
TABLE 2
FIG. 5 illustrates an embodiment of the present invention for re-optimizing the model after a structural change. Model 510 is the model of model 411 shown in FIG. 4 with the addition of two components 504, 505 of the same type as components 501, 502, 503. The two assemblies 504, 505 are located on top of the three bottom layer assemblies 50, 502, 503. To determine the spatial relationship between the components, the spatial relationship between the connection regions is examined. The checking of the spatial relationship between the three original components 501, 502, 503 can be skipped since the components 501, 502, 503 have already been optimized. The assembly 504 has: a connection region of type D, which is in contact with the connection regions of two types C of the components 501, 502; and a type B connection region that contacts a type B connection region of the component 505. As can be seen from the table in fig. 7B, the connection region of type D is compatible with the connection region of type C, and the connection region of type B is compatible with the connection region of type B. In this example, there is a partial connection between components 504, 501 and 504, 502, and a full connection between components 504, 505. The component 505 has: a connection region of type D in contact with the connection regions of both types C of the components 502, 503; and a type B connection region that contacts a type B connection region of the component 504. As can be seen from the table in fig. 7b, the connection region of type D is compatible with the connection region of type C. Also, there are partial connections between components 505, 502 and 505, 503. Using the determined spatial relationships between the components, a number of parts of each component may be selected to represent the component. For assembly 501, components 207, 208, 211, 212, 215, 216, 217, 219, 220 are used; for assembly 502, components 215, 219, 220 are used; for assembly 503, components 209, 210, 213, 214, 215, 218, 219, 220 are used; for assembly 504, components 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 219 are used; for assembly 505, components 207, 208, 209, 210, 211, 212, 213, 214, 215, 217, 218, 219 are used. It should be noted that component 209 is still used to represent assembly 503 even though this component is not visible in fig. 5 b. This is because the component is not hidden as a result of the spatial relationship of the components of the model, but rather as a result of the spatial relationship between the model and the virtual camera. The entire model can be represented using 4650 faces, corresponding to a 39.9% reduction in the number of faces, compared to 7740 faces before optimization. Table 3 shows the counts of the faces of the model before and after optimization.
| Reference numerals | 511 | 501 | 502 | 503 | 504 | 505 |
| Number of faces after optimization | 4650 | 778 | 6 | 778 | 1544 | 1544 |
| Number of faces after partial optimization | 7732 | 1546 | 1544 | 1546 | 1548 | 1548 |
| Number of unoptimized facets | 7740 | 1548 | 1548 | 1548 | 1548 | 1548 |
TABLE 3
FIG. 6 shows an example of a re-optimization of a model in which a structural change has occurred, according to an embodiment of the invention. Model 611 is the model of model 511 of FIG. 5 with the addition of another component of the same type as components 601, 602, 603, 604, 605. Component 606 is located on top of components 604, 605. To determine the spatial relationship between the components, the spatial relationship between the connection regions is examined. The checking of the relation between the connection areas of the five original components 601, 602, 603, 604, 605 may be skipped, since the components 601, 602, 603, 604, 605 have already been optimized. The component 606 has: a connection region of type D which is in contact with the connection regions of both types C of the components 604, 605. As can be seen from the table in fig. 7b, the connection region of type D is compatible with the connection region of type C. There are partial connections between components 606, 604 and 606, 605. Using the determined spatial relationships between the components, a number of parts of each component may be selected to represent the component. For assembly 601, components 207, 208, 211, 212, 215, 216, 217, 219, 220; for the assembly 602, the components 215, 219, 220 are used; for component 603, components 209, 210, 213, 214, 215, 218, 219, 220 are used; for assembly 604, components 207, 208, 211, 212, 215, 216, 217, 219 are used; for assembly 605, components 209, 210, 213, 214, 215, 217, 218, 219 are used; for assembly 606, components 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219 are used. As was the case in the previous example, it should be noted that component 209 is still used to represent both components 603 and 605, even though this component is not visible in FIG. 6 b. The entire model can be represented using 4660 faces, corresponding to a 49.8% reduction in the number of faces, compared to 9288 faces before optimization. Table 4 shows the counts of the faces of the model before and after optimization.
| Reference numerals | 611 | 601 | 602 | 603 | 604 | 605 | 606 |
| Number of faces after optimization | 4660 | 778 | 6 | 778 | 776 | 776 | 1546 |
| Number of faces after partial optimization | 6198 | 778 | 6 | 778 | 1544 | 1544 | 1548 |
| Number of unoptimized facets | 9288 | 1548 | 1548 | 1548 | 1548 | 1548 | 1548 |
TABLE 4
As can be seen from the examples, the method becomes more efficient for complex models. This is a very useful effect of the method, since for complex models optimization is particularly important.
FIG. 9a shows another example of a computer model 1001 according to an embodiment of the invention. Computer model 1001 represents a marker pen (marker). Computer model 1001 includes two components: 901 corresponding to the cap of the marker and 902 corresponding to the body of the marker. FIG. 9b shows a possible way of dividing the marker body 902 into components. The tip of the marker body is divided into 5 parts: 903. 904, 905, 906, 907, the grip portion 908 of the marker body is represented using a single member 908. FIG. 9c shows an example of how the cap 901 of the marker can be divided into parts. The exterior of the cover is represented by element 909 and the interior of the cover is represented by element 910.
FIG. 10 shows an example of how an embodiment of the method of the present invention may be used to optimize the computer model shown in FIG. 9. By examining the spatial relationship between the two components 1002 and 1003, the method can determine that the components 903, 904, 905, 906, 907, 910 are hidden in all perspectives. This can be accomplished by examining the occlusion and/or connection areas of components 1002 and 1003. The components may thus be omitted as shown in fig. 10b, which shows the computer model after optimization.
FIG. 11 shows another example of how embodiments of the method of the present invention may be used to optimize the computer model described with respect to FIG. 9. By examining the spatial relationship between the two assemblies 1002 and 1003, the method can determine that no part is hidden in all perspectives. As a result, no parts are thus omitted, and the computer model after optimization shown in fig. 11b is the same as the computer model before optimization shown in fig. 11 a.
FIG. 12 shows a flow diagram of a method of visualising/rendering a computer model according to an embodiment of the invention. The computer model is defined to include a plurality of components, and each component is defined to include a plurality of parts. For each component, an embodiment of the method of the present invention selectively selects a plurality of components for rendering/rendering the model. In a first step of method 1201, a plurality of components of an assembly are stored. This means that by how a component is divided into components, the way in which the component can be optimized is determined. At next step 1202, the position and orientation of the component is stored. The locations may be stored in any coordinate system. Next, at step 1203, the stored locations of the components are used to determine spatial relationships between the components. The spatial relationship may be determined by examining connection regions of the components, wherein determining the spatial relationship may include determining connectivity attributes of the components, for example, by determining connection regions of one component that connect to compatible connection regions of another component. WO2004034333 discloses a method for determining a connection relationship between components. The determined spatial relationships of the components are then used to select, for each component, a number of parts for surfacing/rendering the component in step 1204, and the model is surfaced/rendered using the determined parts in step 1205.
Figures 13 and 14 illustrate various components used to represent an assembly in accordance with an embodiment of the present invention. In this example, the component is a toy building brick. Eight elements 1302, 1303, 1304, 1305 are used to represent the handles of the toy building bricks, one element to represent the outer shells 1306 of the bricks, two elements to represent the inner shells 1307, 1308 of the bricks, and three elements to represent the cylinders 1309, 1310, 1311 under the bricks.
FIG. 15a shows an assembly 1501 according to an embodiment of the present invention. Assembly 1501 represents a square toy construction element. FIG. 15b shows an assembly 1502 according to an embodiment of the invention. Assembly 1502 represents a cylindrical toy construction element. Fig. 15c shows components 1503, 1504, 1505, 1506, 1507, 1515 of assembly 1501. Fig. 15d shows the components 1508, 1509, 1510 of the assembly 1502. FIG. 15e shows two occlusion regions 1511, 1512 of a particular type in relation to the component 1501. The occlusion regions 1511, 1512 are preferably located on the component at portions where the component can be connected to other components. In this example, occlusion regions 1511, 1512 are located at the top and bottom of the component 1501. These positions correspond to parts of the toy construction element represented by component 1501 that may be connected to other toy construction elements. The type of occlusion region may depend on its shape and/or size. In this example, occlusion regions 1511, 1512 are square occlusion regions. The obscured area may be linked to one or more components of its assembly. In this example, occlusion region 1512 is linked to component 1503 and occlusion region 1511 is linked to component 1515. FIG. 15f shows two occlusion regions 1513, 1514 of a particular type in relation to the assembly 1502. In this example, the occlusion regions 1513, 1514 are located at the top and bottom of the assembly 1502. These positions correspond to the parts of the toy building element represented by the assembly 1502 that can be connected to other toy building elements. In this example, the occlusion regions 1513, 1514 are circular. In this example, the occlusion region 1513 is linked to the member 1510, and the occlusion region 1514 is linked to the member 1509.
FIG. 16 shows an example of model optimization according to an embodiment of the invention. Computer model 1601 represents a toy model built from two square toy construction elements 1603, 1604. In this example, each toy construction element 1603, 1604 corresponds to an assembly and each assembly comprises a part 1503, 1504, 1505, 1506, 1507, 1515 shown in fig. 15 c. Each component also includes two associated occlusion regions 1511, 1512 as shown in FIG. 15 c. To optimize the computer model 1601, the spatial relationship between the occlusion regions of the two components 1603, 1604 is examined. By examining the distance between occlusion region 1511 of component 1603 and occlusion region 1512 of component 1604 and their orientation relative to each other, the method can determine that the two occlusion regions are touching. When two occlusion regions are in contact, logical rules can be used to determine whether one occlusion region occludes the other and whether any components linked to any occlusion region can be omitted for surfacing/rendering the component. In this example, possible logical rules may be:
1. a square occlusion region of size X occludes circular and square occlusion regions of size less than or equal to X.
2. The circular occlusion region with the size of Y occludes the circular occlusion region with the size less than or equal to Y.
3. When visualizing/rendering the component, parts linked to occluded occlusion areas may be omitted.
Using logical rule 1, the method can determine that occlusion region 1511 of part 1603 occludes occlusion region 1512 of part 1604, and occlusion region 1512 of part 1604 occludes occlusion region 1511 of part 1603. Thus, optimized model 1602 may be represented without component 1515 to represent component 1603 and component 1503 to represent component 1604.
FIG. 17 shows an example of model optimization according to an embodiment of the invention. Computer model 1701 represents a toy model built from square toy construction elements 1704 and circular toy construction elements 1703. In this example, each toy construction element 1703, 1704 corresponds to a component. A square toy construction element comprises parts 1503, 1504, 1505, 1506, 1507, 1515 shown in fig. 15c and a circular toy construction element comprises parts 1508, 1509, 1510 shown in fig. 15 d. The square toy construction element 1704 has two associated occlusion regions 1511, 1512 as shown in figure 15e, and the circular toy construction element 1703 has two associated occlusion regions 1513, 1514 as shown in figure 15 f. To optimize the computer model 1601, the spatial relationship between the occlusion regions of the two components 1703, 1704 is examined. In this example, occlusion region 1514 of component 1703 is found in contact with occlusion region 1512 of component 1704. Using the three aforementioned logic rules, the method determines that the square occlusion region 1512 of the component 1704 occludes the circular occlusion region 1514 of the component 1703, whereas the circular occlusion region 1514 of the component 1703 does not occlude the square occlusion region 1512 of the component 1704. Thus, optimized computer model 1702 may be represented without using components 1509 to represent assembly 1703, but the full number of components are still required to represent assembly 1704.
Fig. 23a shows an example of how a component may be divided into components according to an embodiment of the invention. The assembly represented by the multiple parts is a square toy construction element 1501 as shown in figure 15 a. In this example, cylindrical 2305 and box 2306 are represented using components. FIG. 23b shows an example according to an embodiment of the invention of how occlusion regions can be associated with components. In this example, an occlusion region is associated with component 1501. The occlusion areas 2311 and 2312 are used to find parts of the component 1501 that are occluded by other components, and the occlusion area 2313 is used to find parts of the component 1501 that are occluded by other components. Obscured regions 2311 and 2312 are not linked to any component and obscured region 2313 is linked to component 2305.
FIG. 23c shows an example of model optimization according to an embodiment of the invention. Computer model 2301 represents a toy model built from square toy construction elements 2304 and circular toy construction elements 2303. In this example, each toy construction element 2303, 2304 corresponds to one component. A square toy construction element comprises parts 2305, 2306 shown in figure 23a and a circular toy construction element comprises parts 1508, 1509, 1510 shown in figure 15 d. The square toy construction element 2304 has three associated occlusion areas 2311, 2312, 2313 as shown in figure 23b and the circular toy construction element 2303 has two associated occlusion areas 1513, 1514 as shown in figure 15 f. To optimize the computer model 2301, the spatial relationship between the occlusion regions of the two components 2303, 2304 is examined. In this example, the occlusion region 1514 of component 2303 is found in contact with the occlusion region 2312 of component 2304, and the occlusion region 2313 of component 2304 is found in contact with the occlusion region 1513 of component 2303. Using the three aforementioned logic rules, the method determines that the square occlusion region 2312 of the component 2304 occludes the circular occlusion region 1514 of the component 2303, and that the circular occlusion region 1514 of the component 2303 occludes the circular occlusion region 2313 of the component 2304. Thus, optimized computer model 2301 may be represented without component 1509 representing component 2303 and without component 2305 representing component 2304. In embodiments of the present invention, the first and second sets of one or more occlusion regions may be associated with a component. A first set of one or more occlusion regions may be used to find parts of the component that are occluded by other components, and a second set of one or more occlusion regions may be used to find parts of the component that are occluded by other components.
FIG. 18 shows an example of how a component may be divided into components, according to an embodiment of the invention. The assembly represented by the multiple parts is a square toy construction element 1501 as shown in figure 15 a. In this example, two components 1802, 1803 represent common components of component 1501. The first member 1802 corresponds to a square having a cylindrical shape at the top, and the second member 1803 corresponds to a square. The first component has a higher level of detail than the second component. Thus, the rendering/rendering of the second component 1803 requires less computing resources than the rendering/rendering of the first component 1802. Preferably, at that time, at most one of the first part 1802 and the second part 1803 is used to represent a toy construction element 1501. The remaining components 1804, 1805, 1806, 1807, 1808 correspond to the components shown in fig. 15 c.
FIG. 19c shows an example of model optimization according to an embodiment of the invention. Computer model 1901 represents a toy model built from square toy construction elements 1904 and circular toy construction elements 1903. In this example, each toy construction element 1903, 1904 corresponds to an assembly. Square toy construction elements 1904 are represented using parts 1802, 1803, 1804, 1805, 1806, 1807, 1808 shown in fig. 18, and circular toy construction elements are represented using parts 1508, 1509, 1510 shown in fig. 15 d. The component 1904 has two associated occlusion regions 1511, 1512 as shown in FIG. 15e, the difference being that occlusion region 1511 is linked to means 1803 and occlusion region 1512 is linked to both means 1802 and 1803. The assembly 1903 has two associated occlusion regions 1513, 1514 as shown in FIG. 15 f. To optimize the computer model 1901, the spatial relationship between the occlusion regions of the two components 1903, 1904 is examined. In this example, occlusion region 1514 of component 1903 is found in contact with occlusion region 1512 of component 1904. When two occlusion regions are found to be in contact, logical rules can be used to determine whether one occlusion region occludes the other and whether any components linked to any occlusion region can be omitted for the visualization/rendering component. In this example, possible logical rules may be:
1. a square occlusion region of size X occludes circular and square occlusion regions of size less than or equal to X.
2. The circular occlusion region with the size of Y occludes the circular occlusion region with the size less than or equal to Y.
3. The circular occlusion region with the size of Y partially occludes the square occlusion region with the size less than or equal to Y.
4. When visualizing/rendering the component, parts linked to occluded occlusion areas may be omitted.
5. If two parts represent a common part of the assembly and are linked to an occlusion region, the part with the lowest level of detail is used if the occlusion region is partially occluded.
6. If two parts represent a common part of the assembly and are linked to an occlusion region, the part with the highest level of detail is used if the occlusion region is not occluded.
Using logical rules 1 and 4, component 1509 may be omitted when component 1903 is rendered/rendered, and component 1803 may be used in place of component 1802 for rendering/rendering component 1904. Whereby both components 1903 and 1904 can be optimized, further reducing the computational resources required to visualize/render the computer model 1901. In this example, component 1904 is rendered/rendered without visual loss using component 1803 in place of component 1802, although various visual losses may occur in other embodiments.
FIG. 20 shows a flow diagram of a method for visualising/rendering a computer model according to an embodiment of the invention. At step 2001, the method determines whether all components of the model have been evaluated. If the answer is no, the method continues to step 2002 where the next component is selected. In step 2003, the method determines whether all components of the selected assembly have been inspected. If the answer is no, the method selects the next part in step 2004. At step 2005, the method determines whether all occlusion regions linked to the part have been checked. If the answer is no, the method selects the next occlusion region at step 2006. Next, in step 2007, the method checks for the selected occlusion region. The method may examine the occlusion region by determining a spatial relationship between the selected occlusion region and any other occlusion regions of other components. The spatial relationship may be determined by examining the distance between the selected occlusion region and other occlusion regions. An occlusion region may be determined to be a touch if the distance between the two occlusion regions is within a predetermined range. In addition, the relative orientation of the occluded areas can be used to determine whether they touch. Two occlusion regions need not be in physical contact to be classified as contact, they may simply be in proximity to each other. When two occlusion regions are found to be in contact, logic rules may be applied to determine whether and how they occlude each other. As described with respect to fig. 19, the occluded area may be completely occluded or partially occluded. After the method has finished checking the selected occlusion region in step 2007, the method returns to step 2005 to check whether all occlusion regions linked to the part have been checked. If the answer is yes, the method proceeds to step 2008 where the method determines whether the selected part is completely occluded. If the answer is no, the method proceeds to step 2009 where the method determines if the part is partially occluded. If the answer is again no, the method returns to step 2003. In step 2009, if the answer is yes, the method determines in step 2011 whether the part has a lower level version of detail. A lower level of detail version may be a version of a part with less detail, for example if the part represents the top of a toy construction element consisting of a square with a protruding cylindrical shape at the top, the lower level of detail version of the part may simply be a square without a cylindrical shape. If the answer is no, the method returns to step 2003. If the answer is yes, the method replaces the part in the rendering process with a version of the detail having a lower level and returns to step 2003. If, at step 2008, the method determines that the selected part is completely occluded, it removes the selected part at step 2013 and returns to step 2003. If the method determines in step 2003 that all components of the selected assembly have been evaluated, it returns to step 2001. At step 2001, if the method determines that all components of the model have been evaluated, the method begins the visualization/rendering process and generates a representation of the model at step 2014. The representation may be a 2-dimensional perspective view of the model. The 2-dimensional perspective view of the model may be displayed directly on the screen and/or saved to a digital file.
In the example of FIG. 20, the process determines the spatial relationship between two components based directly on the occlusion region. In alternative embodiments, the process may determine the spatial relationship based at least in part on the connection region as described herein. In particular, in one embodiment, each component of the assembly may have associated therewith one or more connection regions and one or more occlusion regions. For example, the first component may have one or more connection regions associated therewith, and each connection region may have an occlusion region associated therewith. If at least a first connection region linked to a first component is linked to a compatible connection region of another component, the process determines whether (and/or to what extent) the component is occluded due to the connection. To this end, the process determines whether an occlusion region linked to a connection region of another component occludes an occlusion region linked to the first connection region, e.g., as described above.
Thus, in some embodiments, if the component has a first connection area associated therewith and the first connection area is connected to a second connection area of another component, the process determines that the component is not to be used to visualize/render the component if the second connection area has a second occlusion area associated therewith and the second occlusion area occludes the first occlusion area associated with the first connection area.
FIG. 21 shows a data structure of a computer model according to an embodiment of the invention. The data structure of the computer model 2101 may include model parameters 2102 and a plurality of components, as well as an optional connected region compatibility table 2121 and a plurality of occlusion rules 2122. The model parameters 2102 may include information associated with the position and orientation of the model in an appropriate coordinate system. The model parameters 2102 may also be animated over time. The connection region compatibility table 2121 may include information on the compatibility of different types of connection regions, for example, a table shown in fig. 7 b. Occlusion rules may define how different types of occlusion regions occlude each other, such as the logical rules previously described. The data structure of the component 2104 can include component parameters 2105, a plurality of connection regions 2106, a plurality of occlusion regions 2107, and a plurality of components 2108. The component parameters 2105 may include information related to the position and orientation of the component. The data structure of the connection region 2109 may include connection region parameters 2110 and optional information 2111 for connection to connection regions of other components. The connection region parameters 2110 may include information related to the location, orientation, shape, and type of the connection region. The data structure of occlusion region 2112 may include occlusion region parameters 2113, optional information 2114 indicating the components linked to the occlusion region, and connections 2115 of the occlusion region to other occlusion regions of other components. Occlusion region parameters 2113 may include information about the location, orientation, shape, and type of occlusion region. The data structure of the component 2116 may include component parameters 2117, optionally a plurality of lower level details of the component 2118, and information 2118 indicating an occlusion region linked to the component. The component parameters 2117 may include information relating to the position, orientation, and shape of the component. The data structure of the part at a lower level of detail may include parameters 2120, which may include information about the location, orientation, and shape of the lower LOD part.
In general, in some embodiments, the connection areas of components of the composite product that provide connection to other components may be arranged in a regular structure, e.g., a regular 2D grid in which each grid location represents a connection area. Each connection region has a type associated with it, and it is determined by a given pair of connection region types whether they interact to provide a connection, for example as defined in an appropriate data structure. In one embodiment, when performing occlusion testing, the optimization process only considers those connection regions in the model that interact with another connection region in order to form a connection. In addition to having a type, the connection region also has an occlusion region associated with it. By comparing the occluded areas of the two sides of the connection, the process determines how the components of the assembly can be removed or replaced by optional components of the two sides of the connection. An optional component may have a lower level of detail than the component replaced by the optional component.
Whenever components within the model are optimized for rendering purposes, the process may iterate through all components of each component and check that each component is dependent on and forms connections with other connection regions. Depending on the respective type of occlusion region associated with the connection region forming the respective connection, it is a consequence to determine whether the component can be removed, replaced by other optional components or displayed with full quality.
For example, in a digital representation of the model, each component of the assembly that may be removed during optimization may be linked to a connection region, e.g., by linking one or more appropriate attributes to the component (such as attributes identifying the regular grid and the location of the connection region within the grid). In one embodiment, a component is always displayed if it does not depend on any connection regions.
In one embodiment, whenever a component of the assembly relies on more than one connection region, the optimization process determines the occlusion property of each connection region based on the connection properties of the connection region and the corresponding occlusion region of the connected connection region. For example, the result of each connected region may be one of "hidden", "optional", and "displayed". The overall result of the component depending on more than one connection area may then be determined as the result resulting in the least optimized connection area: for example, for a component that relies on 8 connection regions, 7 "hidden" and 1 "optional" results in "optional"; similarly, 1 "hide" 6 "optional" and 1 "show" results in a "show". If the result is "optional" and an optional component is not available for the current component, the result transitions to "display". If any single connection area results in "show," then the connection area no longer needs to be tested with respect to the current component. As long as no connected region results in "show," the process keeps testing the remaining connected regions to determine the "hidden"/"optional" result.
FIG. 22 shows a schematic diagram of an example of a computer system. The computer system is generally designated 2200 and includes a suitably programmed computer 2201, e.g., a personal computer, workstation, etc., which includes a display 2220, a keyboard 2221 and a computer mouse 2222 and/or another pointing device, such as a touchpad, trackball, light pen, touch screen, etc. The computer system also includes a database 2202 for storing information about all accessible computer models, components, and parts. The database 2202 may be any suitable database system, e.g., a relational database such as an Oracle or MySQL database, or the like. The computer system also includes a file storage device 2203. The file storage device may be any suitable type of remotely accessible memory, such as SMB or NFS-shared, etc., and the geometry definitions may be stored in any suitable directory structure.
The computer 2201 may access a database 2202 and a file store 2203 via a suitable computer network 2204 (e.g., a local area network, a wide area network, the internet, etc.). It will be appreciated that computer 2201 may access database 2202 and/or file storage 2203 directly or via another computer such as a file server, database server, and/or the like. It will also be appreciated that database 2202 and/or file storage 2203 may be integrated into computer 2201. It will also be appreciated that information about the computer model, components and parts may be stored in different ways.
The computer system 2200 is adapted to facilitate visualization/rendering of a computer model. The computer system may be used as a stand-alone system or in connection with other computers. Thus, in some embodiments, computer system 2200 also includes one or more interfaces for connecting the computer to other computers via a computer network, such as the Internet.
FIG. 24 illustrates a graphical user interface of a computer-implemented build tool. The user interface includes a display region 2401 that displays a view of a 3D scene with a backplane 2402 and a computer model 2403 that includes a plurality of interconnected components 2404. The scene is displayed from a predetermined viewpoint. In the following, this viewpoint will also be referred to as the (virtual) camera position, since it corresponds to the position from which the camera will record a picture corresponding to the actual structure of the graphic picture displayed in the display area.
Each component corresponds to an active element of the graphical user interface that can be activated by clicking on it, for example with a computer mouse, in order to select a component. In one embodiment, the selected component changes the appearance display. For example, the selected component may change color, texture, etc.; which may be highlighted by displaying a bounding box or the like around the selected building block. The user may manipulate the selected component, such as changing its properties (e.g., its color), deleting it, performing copy and paste operations, dragging it to a different location, rotating it, and so forth.
The user interface also includes a palette panel that includes a plurality of different components 2406 that may be selected by the user. For example, a user may mouse click on one of the components 2406, thereby selecting the component, and drag the selected component into the display area 2401 to connect it to the structure 2403 or the chassis 2402. The user interface also includes a menu bar 2407 that includes a plurality of menu buttons 2408 for activating various functions or tools. For example, the toolbar may include a rotation tool for changing the virtual camera position, thereby allowing a user to view the build area from different angles. The menu bar may also include a zoom tool for zooming in and out to/from the 3D scene. Other examples of tools include: a palette tool for selecting different palettes 2405, each palette comprising a different set of components; a coloring tool for coloring a component of a structure; an eraser tool for erasing the building blocks, and the like.
Menu bar 2407 may also provide standard functions such as a function for saving a model, opening a previously saved model, printing an image of a model, a help function, and the like.
Although some embodiments have been described and shown in detail, the invention is not limited thereto but may be embodied in other ways within the scope of the subject matter defined in the following claims. In particular, it is to be understood that other embodiments may be utilized and structural and functional modifications may be made without departing from the scope of the present invention.
In the device claim enumerating several means, several of these means may be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims or described in different embodiments does not indicate that a combination of these measures cannot be used to advantage.
It should be emphasized that the term "comprises/comprising" when used in this specification is taken to specify the presence of stated features, integers, steps or components but does not preclude the presence or addition of one or more other features, integers, steps, components or groups thereof.
Claims (13)
1. A computer-implemented method for visualising/rendering a computer model, the computer model comprising a plurality of components, wherein the method comprises:
a plurality of parts storing at least one of the plurality of components, each part comprising geometrical information for visualizing/rendering the part,
storing information indicative of the positions and orientations of the plurality of components in a coordinate system,
determining a spatial relationship between respective ones of the components based on the stored information indicative of the positions and orientations of the plurality of components,
determining, for at least one component, a plurality of stored components for surfacing/rendering the component based on the determined spatial relationship between the respective components,
wherein said determining a plurality of stored components for visualizing/rendering the assembly comprises determining one or more hidden components that can be removed without visual impact on the computer model.
2. A computer-implemented method for visualising/rendering a computer model according to claim 1 wherein at least one component has at least one predetermined connection area, wherein the connection area indicates the portion of one or more connection areas where that component can be connected to another component.
3. The computer-implemented method for visualising/rendering a computer model according to claim 2 wherein the step of determining the spatial relationship between the components comprises: and determining the spatial relationship of the connection areas of the components.
4. A computer-implemented method for visualising/rendering a computer model according to claim 3 wherein the step of determining the spatial relationship between the respective connected regions comprises: a step of determining a distance between two connection areas, and wherein the connection areas are connected when the distance is within a predetermined interval.
5. A computer-implemented method for visualising/rendering a computer model according to claim 3 or 4, wherein the step of determining the spatial relationship between the respective connected regions comprises: the step of determining the orientation of one connection region relative to another connection region.
6. The computer-implemented method for visualising/rendering a computer model according to claim 4, wherein a first component of a component is associated with one or more connection areas, and wherein the step of determining for at least one component a plurality of components for visualising/rendering the component comprises: determining whether the one or more connection regions are connected to a connection region of another component.
7. The computer-implemented method for visualising/rendering a computer model according to claim 1, wherein the first component comprises a first occlusion region of a predetermined type and the second component comprises a second occlusion region of the predetermined type, wherein the spatial relationship between the first and second occlusion regions is used to determine the portion of the first component that is occluded by the second component.
8. The computer-implemented method for visualising/rendering a computer model according to claim 1, wherein the method comprises: determining that a part is not used to visualize/render a component when at least a predetermined portion of a surface area of the part is covered by one or more other parts when viewed from any direction outside of a bounding box of the computer model.
9. The computer-implemented method for visualising/rendering a computer model according to claim 1 wherein the step of determining for at least one component a plurality of parts for visualising/rendering the component further comprises the steps of: determining material properties of the component, and determining a plurality of parts for visualizing/rendering the component based on the determined spatial relationship and the determined material properties.
10. A computer-implemented method for visualising/rendering a computer model according to claim 9 wherein the step of determining material properties comprises: a step of determining a transparency setting of the component.
11. The computer-implemented method for visualising/rendering a computer model according to claim 1, wherein the computer model represents a composite product.
12. The computer-implemented method for visualising/rendering a computer model according to claim 1, wherein the first part and the second part represent a common portion of an assembly, wherein the first part has a higher level of detail than the second part, and wherein the step of determining a plurality of stored parts for visualising/rendering the assembly further comprises selecting at most one of the first part and the second part for visualising/rendering the assembly.
13. A method performed by a data processing system, comprising:
at least one design step comprising:
providing a computer-implemented construction tool for allowing a user to select respective digital representations of a plurality of components from a component repository, wherein each component comprises a plurality of parts, and arranging the selected components in a spatial relationship to each other such that a digital representation of a composite product is generated;
and further processing steps, including:
generating a visualization/rendering of at least a portion of a composite product, wherein the generating comprises:
a plurality of parts storing at least one of the plurality of components, each part comprising geometrical information for visualizing/rendering the part,
storing information indicative of the positions and orientations of the plurality of components in a coordinate system,
determining a spatial relationship between respective ones of the components based on the stored information indicative of the positions and orientations of the plurality of components,
determining, for at least one component, a plurality of stored components for surfacing/rendering the component based on the determined spatial relationship between the respective components,
wherein the determining a plurality of stored components for visualizing/rendering the assembly comprises determining one or more hidden components that can be removed without visual impact on the composite product.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DKPA200970141 | 2009-10-02 | ||
| DKPA200970141 | 2009-10-02 | ||
| PCT/EP2010/063296 WO2011039041A2 (en) | 2009-10-02 | 2010-09-10 | Connectivity depended geometry optimization for real-time rendering |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1174135A1 HK1174135A1 (en) | 2013-05-31 |
| HK1174135B true HK1174135B (en) | 2017-06-02 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN102782728B (en) | Internuncial geometry optimization is depended on for real-time rendering | |
| US6823299B1 (en) | Modeling objects, systems, and simulations by establishing relationships in an event-driven graph in a computer implemented graphics system | |
| CN102779358B (en) | Method and device for designing a geometrical three-dimensional modeled object | |
| US10452788B2 (en) | Modeling a three-dimensional object having multiple materials | |
| US20130027417A1 (en) | Alternate Scene Representations for Optimizing Rendering of Computer Graphics | |
| JP5763304B2 (en) | Method, program and product editing system for visualizing objects displayed on computer screen | |
| KR20160082477A (en) | Selection of a viewpoint of a set of objects | |
| Mudge et al. | Viewpoint quality and scene understanding | |
| CN109558624A (en) | Generate the 2D drawing for representing mechanical part | |
| CN109983509A (en) | A kind of instant boolean operation method using geometric surface | |
| Yuan et al. | Diffcsg: Differentiable csg via rasterization | |
| Becher et al. | Feature-based volumetric terrain generation and decoration | |
| CN118840498A (en) | Three-dimensional plot drawing method and device based on GIS and digital twin fusion | |
| CN118552678A (en) | A method for mapping a three-dimensional model of a cutting head based on a three-dimensional engine | |
| US11727616B2 (en) | Contour lines for volumetric objects | |
| Alonso et al. | Real-time rendering and physics of complex dynamic terrains modeled as CSG trees of DEMs carved with spheres | |
| HK1174135B (en) | Connectivity depended geometry optimization for real-time rendering | |
| Fayolle et al. | Optimized surface discretization of functionally defined multi-material objects | |
| Romanyuk et al. | Interactive shape modeling using functionally defined objects | |
| Bronsvoort et al. | Design and display of solid models | |
| Lobb | Quasiconvolutional smoothing of polyhedra | |
| Brill et al. | Immersive surface interrogation | |
| Moore | An efficient active B-spline/nurbs model for virtual sculpting | |
| Zhen et al. | Research and implementation of modeling in virtual environment based on OpenGL | |
| Sulaiman et al. | Development of real-time virtual environment with hierarchical construction |