专利摘要:
connectivity-dependent geometry optimization for real-time rendering. the present invention relates to a computer-implemented method for viewing / rendering a computer model, the computer model comprising a plurality of components, the method comprising: storing a plurality of pieces of at least one of a plurality of components, each part including geometry information to view / render the part, store information indicative of position and orientation of a plurality of components in a coordinate system, determine a spatial relationship between the individual components, determine for o at least one component a number of parts stored for use to view / render the component, based on the spatial relationship determined between the individual components. using the spatial relationship between components to determine the number of parts to use to view / render a component, knowledge about the geometry of individual components and connections of components to other components can be used to find hidden parts that can be removed.
公开号:BR112012007559B1
申请号:R112012007559-4
申请日:2010-09-10
公开日:2021-04-27
发明作者:Tue Jakobsen;Jesper Martin Erstvang;Jakob Sprogoe Jakobsen
申请人:Lego A/S;
IPC主号:
专利说明:

Field of the Invention
[0001] The present invention relates to a method for viewing / rendering a computer model. Specifically, the invention relates to an effective computing method for viewing / rendering a computer model. Background of the Invention
[0002] 3D computer graphics are used and 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 in a design process as is the case with CAD or for entertainment purposes as is the case with computer games. A common problem facing 3D computer graphics is the large computing resources required. This is specifically a problem for real-time 3D computer graphics, as the lack of computing resources will result in a decreased frame rate with a decreased user experience.
[0003] Computer-intensive research is matched by an analogous increase in the complexity of computer models. This is both the case for CAD, where large structures are designed, as well as computer games, where an increased level of detail results in more complex models. A common group of objects to represent with 3D computer graphics are composite products. Composite products are products comprised of a number of minor physical components.
[0004] Examples of composite products comprising a large number of components include large machines, cars, airplanes and other vehicles, buildings, as well as products that are sold and transported apart, such as furniture, toy models, etc. A particular example of products that are composed of a large number of smaller components includes toy building assemblies including a plurality of interconnectable toy building elements.
[0005] There are several known types of modeling concepts for such toy construction sets. Specially modulated and semi-modulated concepts are very popular as they provide an interesting and challenging play experience. Typically, these concepts provide a set of prefabricated building elements that can be interconnected with each other in some predetermined way by means of connection elements or other means of coupling the prefabricated elements. Prefabricated building elements can resemble well-known objects adapted for a specific modeling task. Thus, for example, when building a model of a house, the building elements may resemble wall bricks, roof tiles, doors and windows. An advantage of selecting the building elements in this way is that the game is placed within the system and the work involved with building a model of a house is significantly reduced compared to a situation where all details of the house must be defined each time that a new model must be made. However, complete freedom in building a house or other object is exchanged for simplicity in building the model.
[0006] For example, toy building sets, available under the name LEGO, comprise a plurality of different types of interconnectable building elements having corresponding protrusions and cavities as connecting elements. The connecting elements are arranged according to regular grid patterns, thus allowing a wide variety of interconnections between the construction elements.
[0007] A known way to reduce the computing load needed to view / render a computer model is to choose obstruction. The choice of obstruction works by discovering the hidden faces of a given viewing perspective. Known obstruction choice algorithms, however, are slow and need to be performed whenever the vision changes. This is especially a problem for computer aided design and computer games since the view in this trendy application typically often results in a large computing load caused by the obstruction choice algorithm.
[0008] Thus, it remains a problem to visualize / render composite products in a computationally effective way. summary
[0009] A first aspect of the invention relates to a computer-implemented method for viewing / rendering a computer model, the computer model comprising a plurality of components in which the method comprises: - storing a plurality of pieces of at least one of the plurality of components, each part including geometry information to view / render the part, - store information indicative of respective positions and orientations of a plurality of components in a coordinate system, - determine a spatial relationship between those individual components based on the stored information indicative of the respective positions and orientations of the plurality of components, - determine, for at least one component and based on the spatial relationship determined between the individual components, a number of stored parts to be used to view / render said component.
[00010] The computer model can represent any object such as a composite product, for example, a toy model or, alternatively, a non-composite product, for example, a digital character. The computer model can have any dimensions such as two-dimensional or three-dimensional. The computer model can still be animated over time. The animation of the computer model can involve the complete model or the selected components of the model. A component can be any subgroup of the model such as a toy building element when the computer model represents a toy model constructed of toy building elements or, alternatively, a group of faces of a toy building element. A part can be any subgroup of a component such as a projecting cylinder on a toy construction element or, alternatively, a group of faces of a projecting cylinder.
[00011] In one embodiment, subgroups are appropriate subgroups meaning that a component cannot be the complete model, and a part cannot be the complete component.
[00012] In one embodiment, subgroups are not restricted to be appropriate subgroups meaning that a component can be the complete model, and a part can be the complete component.
[00013] A part can understand the geometry information, defining the geometry of the part. Geometry information can be stored in any format such as a polygonal mesh, NURBS surfaces or Patch surfaces. The part can further comprise material properties of the part such as texture properties, reflection properties, refraction properties, transparency adjustments and shading properties.
[00014] The information indicating the position and orientation of a component can be the position and orientation of the component in any global or local information from coordinate systems describing its position in relation to another model, component, part or similar, for example, as described in WO04034333.
[00015] The number of parts for use in the visualization / rendering of a component can be any number including the special cases when all parts of the component are used and when no parts are used.
[00016] The result of viewing / rendering a computer model can be the creation of an image or a series of images. The image (s) can be two-dimensional. The image (s) can be displayed directly on a phone and / or saved to a digital file.
[00017] Subdividing components into a plurality of parts and using the spatial relationship between components to determine the number of parts to use to view / render a component, knowledge about the geometry of individual components and connections of components to other components can be used to find hidden parts that can be removed without having a visual impact on the model.
[00018] This makes it possible to find hidden parts without using computationally complex ray tracking algorithms, thus making the method suitable for use in real time. Using the spatial relationship between the individual components and not the spatial relationship between the virtual camera and the components as is the case in standard obstruction choice algorithms, an independent view optimization is achieved. This saves computing resources when the method only needs to be re-executed when structural changes occur in the composite model, for example, a new component is added or an existing component is removed. Even when structural change occurs, the method only needs to be re-executed on the components that are in the vicinity of the change. This saves switching resources for subsequent optimization.
[00019] Dividing the components into parts and storing the parts before performing the optimization, any computing resources needed to divide the components in the optimization step are saved. The subdivision of the components can be performed using an automatic procedure or, alternatively, manually. When the subdivision is performed manually, a human skill can be used to make the subdivision using knowledge about the geometry and / or connections of the components, thus enabling an effective optimization.
[00020] A second aspect of the invention relates to a computer program, in which the computer program comprises executable computer program code adapted to make a data processing system perform: at least one stage of the project comprising - provide a construction tool implemented by computer to allow a user to select a respective digital representation of a plurality of components from a component repository, where each component is comprised of a plurality of parts, and to arrange the selected components in a spatial relation with each other in order to generate a digital representation of a composite product, and another processing step comprising - generating a visualization / rendering of at least a portion of the composite product in which the generation comprises: - storing a plurality of hair pieces minus one of the plurality of components, each part including geometry information for vis ualize / render the part, - store information indicative of the position and orientation of a plurality of components in a coordinate system, - determine a spatial relationship between those individual components based on the stored information indicative of the position and orientation of the plurality of components, - determine for at least one component a number of parts stored for use in the visualization / rendering of said component, based on the spatial relationship determined between the individual components.
[00021] In one embodiment, the computer program is a toy computer program for children.
[00022] The computer-implemented construction tool can be a graphical user interface.
[00023] The task of creating digital models can be very challenging. The normal physical limits that exist in the real world a priori are not present in a digital environment. The endless possibilities make it possible to create any model, however, it makes the design stage very challenging. A key skill for any digital modeler is to use the right amount of detail at the right points in the model. This means that in addition to having to focus on the shape of the digital model, a digital designer also needs to be focused on the underlying structure of the model, for example, the number of vertices used in various places. This is important because the modeling task is an interactive process typically involving continuous visualization / rendering of the model in real time, allowing the digital designer to visually inspect the model while it is being designed. If the model becomes unnecessarily complex, the frame rate of rendering the model in real time will decrease making the other design process problematic.
[00024] When a user of this system is a child, it becomes important to simplify the project design as much as possible. By providing the child with a digital construction tool comprising a component repository and automatically simplifying the model built using the spatial relationship between the components, the complexity of the design process is greatly reduced. This will allow the child to focus exclusively on the modeling task without having to worry about applying the right amount of complexity to the right points on the model. This will allow children to create much more interesting models, increasing the game's value from the toy computer program, as well as allowing younger children to use the toy program.
[00025] In one embodiment, at least one component has associated with it at least one predetermined connection zone, in which said connection zone is indicative of a portion of the component that can be connected to the connection zones in similar components.
[00026] The connection zone can be any predefined zone in the vicinity of the component. In one embodiment, the connection zone is positioned on the surface of the component. The connection zone can correspond to or be defined by one or more parts of the component, for example, a portion of the surface. The connection zone can have any shape such as a plane or a section of a flat or round or curved surface. The position of the connection zone can be defined in a global coordinate system or in relation to the component. A component can comprise any number of connection zones. Multiple types of connection zones can exist. A connection zone can be compatible with a predetermined number of types of connection zones, for example, a connection zone of a component representing a toy construction element, connected to the top of the component, can only be compatible with the zones of connection. connection linked to the backs of the components representing elements of toy construction. In some embodiments, information indicating the compatibility of the respective types of connection zones can be stored in an appropriate data structure, for example, a table, that is, information indicating whether the respective types of connection zones are connectable to each other. with others. For example, the information can be indicative, for each specific type of connection zone, of what types of connection zones are connectable with said particular type of connection zone. In one embodiment, the data structure can indicate for each pair of connection zone types whether the pair of connection zone types is compatible, incompatible or indifferent. When a pair of connection zones is compatible, they can provide a connection between two components. When a pair of connection zones is incompatible, they prevent the placement of two components next to each other. When a pair of connection zones is indifferent, they allow the placement of two components next to each other, without currently providing a connection between the components.
[00027] By providing the components with predefined connection zones, the function of creating models from the components is simplified. This lowers the costs of producing models in development if the models are used for CAD, computer games or other applications.
[00028] In an embodiment of the invention, the step of determining a spatial relationship between individual components comprises the step of determining the spatial relationship of connection zones of the individual components.
[00029] In an embodiment of the invention, the step of determining the spatial relationship between individual connection zones comprises the step of determining a distance between two connection zones.
[00030] The distance can be any distance from norm such as a Euclidean distance from norm 2. The distance can be a distance between two points in the connection zones or a plurality of points in the connection zones. In one embodiment, the distance is defined as the closest distance between two connection zones. In one embodiment, the process determines two connection zones as being connected when their distance is within a predefined range.
[00031] Determining the spatial relationship between two connection zones by examining their distance is an effective and simple computation method. This will decrease the need for computing resources by the method, thereby decreasing the total number of computations needed to view / render a model.
[00032] In one embodiment, each connection zone has an orientation associated with it, and the step of determining the spatial relationship between the individual connection zones comprises the step of determining the orientation of one connection zone with respect to the other.
[00033] In one embodiment, the process determines two connection zones as being connected when they have a predetermined orientation with respect to each other, for example, when the connection zones are parallel or close to being parallel to each other. The spatial relationship between the connection zones can be determined by a combination of a distance between the connection zones and their relative orientation.
[00034] Two connection zones can be positioned close to each other without being aligned, however, additionally using the relative orientation between the connection zones to determine their spatial relationship a more precise determination can be obtained.
[00035] In some embodiments, the process determines two connection zones as being connected when they are positioned in a predetermined proximity to each other, and when their respective orientation and types are compatible with each other.
[00036] In some embodiments, the process determines a first part as not to be used to view / render a component only if the component has one or more connection zones associated with said first part, whose zone (s) connection is / are connected to another component's connection zone.
[00037] By optimizing only the components that are currently connected, reoptimization can be prevented when the unconnected components are moved relative to each other during the animation. This will lessen the need for re-optimization, thus resulting in a corresponding decrease in the computing resources needed for optimization, as the case where the connected toy building elements are moved relative to each other is much less likely than for building elements. toy construction not connected.
[00038] In alternative modalities, the process also determines a first part as not to be used to view / render a component when a connection zone associated with the first part is in a predetermined proximity and / or orientation relative to a zone of connection from another component, without the connections currently providing a connection between the components, for example, because the types of the two connection zones are indifferent with respect to each other.
[00039] Also the optimization of the components that are not connected, more parts of the components can be optimized. This will decrease the computing resources needed to view / render the computer model, especially when the model's components are stationary.
[00040] In one modality, determining the spatial relationship comprises determining whether the connection zones of the respective components have a compatible type that provides / allows a connection.
[00041] In one embodiment, the step of determining that at least one component, a number of parts to be used in the visualization / rendering of said component, fewer parts are used when at least one connection zone (s) of said component is connected.
[00042] In one embodiment, the process determines a first part as not to be used to view / render a component when at least a predetermined portion of the part's surface area is covered with one or more parts when viewed from any direction outer of the confinement box of said computer model. The default percentage can be any percentage. Preferably, it is 40%, more preferably it is 70%, even more preferably it is 90%. The containment box is the smallest box that can comprise the complete model. By not using parts that are covered with a predefined percentage to view / render a given component, any visual impact on the optimization model can be limited. This also provides a flexible system where the trade-off between visual impact and computing complexity can be controlled. In a given application, such as real-time computer graphics, it may be useful to prioritize a low number of computations, resulting in a high frame rate, over the visual accuracy of the model, while visual accuracy in other applications may be more important. than the number of computations.
[00043] In an embodiment of the invention, the step of determining for at least one component, a number of parts for use in the visualization / rendering of said component further comprises the step of determining the material properties of a component, and based on both in the spatial relation determined as in the material properties, determine a number of parts to use to visualize / render that component.
[00044] In one embodiment, the step of determining material properties comprises the step of determining the transparency settings for a component. Transparency adjustments can be any adjustments regarding the transparency of the component or a part of the component. Transparency can involve the phenomenon of refraction. Parts of a component in a model that would normally be hidden may be visible if the component or other components connected to the component are transparent. Using both the determined spatial relationship and the material properties, a more accurate determination of the hidden parts can be obtained.
[00045] 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, where each component of the computer model corresponds to a toy construction element. In some embodiments, the toy building elements have connection means for connecting them with other similar toy building elements. The connection means can have any shape, such as round, or rectangular.
[00046] In one embodiment, a first component comprises a first obstruction zone of a predetermined type and a second component comprises a second exclusion zone of a predetermined type, wherein the spatial relationship between the first and the second exclusion zone is used to determine a portion of the first component obstructed by the second component.
[00047] The obstruction zones can have a similar or even identical shape to a part of a component. For example, the obstruction zone can be defined as a part of the surface of said component part. The obstruction zone can be linked to a specific part or number of parts of the component. The part (s) connected to an obstruction zone can be determined to be obstructed when the obstruction zone connected to the part is obstructed. The spatial relationship between the first and the second obstruction zone can be determined by the spatial relationship between the connection zone (s) of the first component and the connection zone (s) of the second component. The type of obstruction zone may be related to its shape. The obstruction zone can have any shape such as a round or rectangular shape. The type of obstruction zone can also refer to a size of the obstruction zone. The type of obstruction zone can determine how one component obstructs the other, for example, a round obstruction zone can obstruct another round obstruction zone, but not a square obstruction zone, a square obstruction zone can both obstruct a zone of obstruction. round as well as square obstruction.
[00048] Connection zones can determine how a component can be connected to other components while obstruction zones can determine how a component blocks another component. Two components can be connected without obstructing each other and two components can obstruct each other without being connected.
[00049] A component and / or one or more parts of a component can have one or more obstruction zones and / or one or more connection zones associated with it. In one embodiment, a connection zone can also function as an obstruction zone.
[00050] By assigning the obstruction zones to the components, the method is able to easily find the parts hidden in the computer model. A hidden part can be found by examining the spatial relationship between two connection zones for two components. If two connection zones associated with the respective components are found, the process can determine one or more obstructed parts based on the respective obstruction zones associated with the respective parts, for example, based on logical rules regarding the respective types of associated obstruction zones, for example, a square zone covers a round zone, etc. Therefore, each part can have one or more connection zones and one or more obstruction zones associated with it.
[00051] In one embodiment, a plurality of obstruction zones are linked to a single piece.
[00052] In one mode, a part is only obstructed if all the obstruction zones connected to the part are obstructed.
[00053] In one embodiment, a computer model can be animated independently of other computer models, a component of a computer model can be animated independently of other components of the computer model and a part of a component cannot be animated independently other component parts.
[00054] In one embodiment, a first piece and a second piece represent a common section of a component, in which the first piece has a higher level of detail than the second piece and in which the step of determining a number of pieces stored for use in the visualization / rendering of said component also comprises selecting at most one of the first and the second part to use in the visualization / rendering of said component.
[00055] Having a plurality of parts representing a common portion of a component, the parts that in a given situation are only partially hidden can still be optimized. This will result in more effective optimization and make it easier to divide the components into parts.
[00056] The different aspects of the present invention can be implemented in different ways including the computer-implemented method, a data processing system and toy computer programs described above and below and also product means, each giving one or more of the benefits and advantages described in connection with at least one of the aspects described above, and each having one or more preferred modalities corresponding to the preferred modalities described in connection with at least one of the aspects described above and / or disclosed in the dependent claims. In addition, it will be well appreciated that the modalities described in connection with one of the aspects described in this document can also be applied to other aspects.
[00057] In one mode, the pieces are predefined.
[00058] In one modality, each piece comprises a plurality and faces, where a face is defined as a plane given by three vertices.
[00059] In one embodiment, the choice of obstruction is used in combination with the disclosed method.
[00060] In one embodiment, a component represents a physical component of a composite product, such as a physical component of the composite product that cannot be non-destructively yet broken down into smaller components, for example, a screw in an airplane or a toy building element in a toy model built from toy building elements of a toy building system. Brief Description of Drawings
[00061] The above and / or additional objectives, characteristics and advantages of the present invention will be better elucidated by the following detailed illustrative and non-limiting description of the modalities of the present invention, with reference to the accompanying drawings, in which:
[00062] Figures 1a-c show an example of a way of optimizing the prior art.
[00063] Figure 2a shows an example of a computer model comprising a number of components.
[00064] Figure 2b shows an example of a component of a computer model comprising a number of parts.
[00065] Figure 2c shows an example of a number of parts of a component of a computer model, according to an embodiment of the invention.
[00066] Figure 3 shows an example of a number of parts of a component of a computer model, according to an embodiment of the invention.
[00067] Figure 4a shows a computer model comprising a number of components before optimization.
[00068] Figure 4b shows a computer model comprising a number of components after optimization.
[00069] Figure 5a shows a computer model comprising a number of components before optimization.
[00070] Figure 5b shows a computer model comprising a number of components after optimization.
[00071] Figure 6a shows a computer model comprising a number of components before optimization.
[00072] Figure 6b shows a computer model comprising a number of components after optimization.
[00073] Figure 7a shows the connection zones defined in relation to a component.
[00074] Figure 7b shows the compatibility of the connection zones.
[00075] Figure 8a shows the connection zones defined in relation to a component.
[00076] Figure 8b shows the compatibility of the connection zones defined in relation to a component.
[00077] Figure 9a shows an example of a computer model comprising a number of components.
[00078] Figure 9b shows an example of a number of parts of a component of a computer model, according to an embodiment of the invention.
[00079] Figure 9c shows an example of a number of parts of a component of a computer model, according to an embodiment of the invention.
[00080] Figure 10a shows a computer model comprising a number of components prior to optimization.
[00081] Figure 10b shows a computer model comprising a number of components after optimization.
[00082] Figure 11a shows a computer model comprising a number of components prior to optimization.
[00083] Figure 11b shows a computer model comprising a number of components after optimization.
[00084] Figure 12 shows a flow chart of a method for visualizing / rendering a computer model according to a mode of the invention.
[00085] Figure 13 shows an example of a number of parts of a component of a computer model, according to an embodiment of the invention.
[00086] Figure 14 shows an example of a number of parts of a component of a computer model, according to an embodiment of the invention.
[00087] Figures 15a-f show examples of components, parts and obstruction zones according to an embodiment of the invention.
[00088] Figure 16 shows an example of computer model optimization according to an embodiment of the invention.
[00089] Figure 17 shows an example of computer model optimization according to an embodiment of the invention.
[00090] Figure 18 shows an example of a number of parts of a component of a computer model, according to an embodiment of the invention.
[00091] Figure 19 shows an example of computer model optimization according to a modality of the invention.
[00092] Figure 20 shows a flow chart of a method for visualizing / rendering a computer model according to a modality of the invention.
[00093] Figure 21 shows an example of a data structure according to an embodiment of the invention.
[00094] Figure 22 shows a schematic view of an example of a computer system.
[00095] Figures 23a-b show examples of parts and areas of obstruction according to an embodiment of the invention.
[00096] Figure 23c shows an example of a computer model optimization according to an embodiment of the invention.
[00097] Figure 24 shows a graphical user interface of a construction tool implemented by computer in accordance with an embodiment of the invention. Detailed Description
[00098] In the following description, reference is made to the attached figures, which show by way of illustration how the invention can be practiced.
[00099] Figures 1a-c show an example of the form of optimization, choice of obstruction of the prior art. The basic idea of choosing obstruction is to examine the spatial relationship between a camera and a scene to discover hidden surfaces that can be left out in the visualization / rendering process. Figure 1a shows a top view of a 3D scene comprising two virtual cameras 102, 103, a large box 104, 105, 106, 107 and a small box 108, 109, 110, 111. Figure 1b shows the image generated by virtual camera 102. Only two surfaces 104, 106 of the large box can be seen, all remaining surfaces are hidden. Using ray tracking methods, the obstruction choice algorithms can find these hidden faces and remove them. This, however, is a highly computationally demanding process. Figure 1c shows the image generated from camera 103. Due to the change in perspective, the small box previously shaded by the large box can now be seen. This illustrates a limitation of the obstruction choice methods. There are highly dependent views. This makes the choice of obstruction less usable for applications where the viewing perspective changes frequently.
[000100] Figure 2a shows an example of a computer model 201 according to an embodiment of the present invention. In this example, computer model 201 represents a toy model built from building elements of a toy building system. The computer model is built from six like components 202; however, in other embodiments, the number and type of components may differ. The six components are positioned on top of each other creating a triangular model. Figure 2b shows an example of a component 202 of a computer model 201 according to an embodiment of the present invention. Component 202 represents a toy building element. Toy building element 202 comprises six rectangular sides 215, 216, 217, 218, 219, 220, and eight cylinders protruding from the top 207, 208, 109, 110, 112, 113, 114. Figure 1c shows an example of a number of parts of a component according to an embodiment of the present invention. Eight cylinders 107, 108, 109, 110, 111, 112, 113, 114 and six rectangles are shown 215, 216, 217, 218, 219, 220. Table 1 shows the possible face counts for the different parts. TABLE 1

[000101] Figure 3 shows a number of parts of a component according to an embodiment of the present invention. The component in this example is the toy building element shown in figure 2b. A cylinder 301 and three rectangles 302, 303, 304 are shown. In this example, only the single parts are saved.
[000102] Figure 7a shows examples of connection zones associated with the component, according to an embodiment of the present invention. Connection zones determine how the component can be connected to other components. In this example, six connection zones are associated with the computer, however, any number of connection zones can be defined. A type A connection zone is associated with the front and rear of the component, a type B connection zone is associated with the left and right side of the component, a type C connection zone is associated with the top of the component and a type D connection zone is associated with the bottom of the component. The different types of connection zones are selectively compatible with other types of connection zones. Figure 7b shows an example of a compatibility table for the connection zones defined in figure 7a. Connection zone A is compatible with connection zones A, B and D, connection zone B is compatible with connection zone D, and connection zone D is compatible with connection zones A, B, C and D. Connection zones can be used to determine the spatial relationship between different components.
[000103] Figure 8 shows another example of a component connection zone according to an embodiment of the present invention. In this example, the connection zones are only defined where the toy building elements represented by the components can be connected with each other by a friction fit or another physical connection. Figure 8b shows the compatibility of the connection zones. Figure 8c shows an example of connection zones associated with a component. In this example, a number of connection zones are placed side by side at the top and bottom of the component. Figure 8d shows an example of a round connection zone. The figure shows a component representing a frame 801. The frame 801 has an associated single round connection zone 802. Figure 8e shows a computer model 804 comprised of two components, a rim 801 and a tire 803, connected to rim 801.
[000104] Figure 4 shows an embodiment of the present invention used to optimize 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 constructed from three toy building bricks 401, 402, 403 positioned side by side. In this modality, each toy brick represents a physical component of the model; however, in other embodiments, the components can be defined in other ways, for example, a first component can be defined as the two toy building bricks 401, 402 and a second component can be defined as the toy building brick 403 or a first component can be defined as a first group of toy building brick faces 401 and a second component can be defined as a second group of toy building brick faces 401. In this example, each component 401, 402 , 403 is composed of the parts shown in figure 1c, with the face number shown in table 1. For each of the components 401, 402, 403 a set of six connection zones is associated as shown in figures 7a-b. Before the optimization step, each of the 401, 402, 403 components comprises 1546 faces, resulting in 4644 faces for the entire model. To optimize the model, the spatial relationship between components 401, 402, 403 is determined. This can be achieved using the component connection zones. A first step can be to determine whether any connection zones are in a predetermined proximity to other connection zones and / or are in a predetermined range of other relative orientations. In this example, two type B connection zones for components 401 and 402 and two type B connection zones for components 402 and 403 are in contact. From the table in figure 7b, it can be seen that a type B connection zone is compatible with itself. Then, the type of connection between the connection zones is determined. Using the spatial relationship determined between components 401, 402, 403 a number of parts for each component is chosen. In this example, part 218 can be left out when representing component 401, parts 216, 218 can be left out when representing component 402 and part 216 can be left out when representing component 403. The complete model can therefore be represented with 4636 faces after optimization compared to 4644 faces before optimization. Table 2 shows the face for the model before and after optimization. TABLE 2

[000105] Figure 5 shows an embodiment of the present invention used to re-optimize a model after a structural change. Model 510 is the model shown in figure 4 411 with the addition of two components 504, 505 of the same type as components 501, 502, 503. The two components 504, 504 are positioned on top of the three underlying components 501, 502, 503. To determine the spatial relationship between the components, the spatial relationship between the connection zones is examined. Examination of spatial relationships between the original three components 501, 502, 503 can be ignored as long as they have already been optimized. Component 504 has a type D connection zone and contact with two type C connection zones of components 501, 502, and a type B connection zone in contact with a type B connection zone of component 505. From from the table in figure 7b it can be seen that the connection zone of type D is compatible with a connection zone of type C and a type B is compatible with type B. In this example, a partial connection exists between components 504, 501 and 504, 502 and a total connection exists between components 504, 505. Component 505 has a type D connection zone in contact with two type C connection zones of components 502, 503 and a type B connection zone in contact with a type B connection zone of component 504. From the table in figure 7b it can be seen that a type D connection zone is compatible with a type C connection zone. Again, a partial connection exists between both components 505, 502 and 505, 503. Using the spatial relationship determined between the components a number of parts for each component can be chosen to represent the component. For component 501, parts 207, 208, 211, 212, 215, 216, 217, 219, 220 are used, for component 502, parts 215, 219, 220 are used, for component 503, parts are used parts 209, 210, 213, 214, 215, 218, 219, 220, for component 504, parts 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 219 are used, and for component 505, parts 207, 208, 209, 210, 211, 212, 213, 214, 215, 217, 218, 219 are used. It should be noted that part 209 is still used to represent component 503 yet that the part is not visible in figure 5b. This is because the part is not hidden as a result of the spatial relationship between the components of the model, but the spatial relationship between the model and the virtual camera. The entire model can be represented using 4650 faces compared to 7740 before optimization, corresponding to a 39.9% reduction in the number of faces. Table 3 shows the face counts for the model before and after optimization. TABLE 3

[000106] Figure 6 shows another example of re-optimization of a model where a structural change has occurred according to a modality of the present invention. Model 611 is model 511 in figure 5 with the addition of another component of the same type as components 601, 602, 603, 604, 605. Component 606 is positioned on top of components 604, 605. To determine the spatial relationship between components, the spatial relationship between the connection zones is examined. Examination of the relationships between the connection zones of the original five components 601, 602, 603, 604, 605 can be ignored as they have already been optimized. Component 606 has a type D connection zone in contact with two type C connection zones of components 604, 605. From the table in figure 7b it can be seen that the type D connection zone is compatible with a zone connection type C. A partial connection between both components 606, 604 and 606, 605. Using the spatial relationship determined between the components, a number of parts for each component can be chosen to represent the component. For component 601, parts 207, 208, 211, 212, 215, 216, 217, 219, 220 are used, for component 602, parts 215, 219, 220 are used, for component 603, parts are used parts 209, 210, 213, 214, 215, 218, 219, 220, for component 604, parts 207, 208, 211, 212, 215, 216, 217, 219, for component 605, are used parts 209, 210, 213, 214, 215, 217, 218, 219 and for component 606, parts 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218 are used, 219. As in the case in the last example, it should be noted that part 209 is still used to represent both components 603 and 605 even though the part is not visible in figure 6b. The whole model can be represented using 4660 faces compared to 9288 before optimization, corresponding to a 49.8% reduction in the number of faces. Table 4 shows the face counts for the model before and after optimization. TABLE 4

[000107] It can be seen from the examples that the method becomes more effective for complex models. This is a highly useful effect as optimization for complex models is especially important.
[000108] Figure 9a shows another example of a computer model 1001, according to an embodiment of the invention. Computer model 1001 represents a marker. Computer 1001 comprises two components 901 corresponding to the marker cover and 902 corresponding to the marker body. Figure 9b shows a possible way to divide the body of the marker 902 into pieces. The tip of the marker body is divided into 5 pieces 903, 904, 905, 906, 907 and the retaining portion of the marker body 908 is represented using a single piece 908. Figure 9c shows an example of how the cover of marker 901 can be divided into parts. The outer part of the cover is represented by a part 909 and the inner portion of the cover is represented by a part 910.
[000109] Figure 10 shows an example of how a modality of the method of the present invention can be used to optimize the computer model shown in figure 9. By examining the spatial relationship between the two components 1002 and 1003, the method is able to determine that parts 903, 904, 905, 906, 907, 910 are hidden from all perspectives. This can be achieved by examining the obstruction zones and / or the connection zones of the components 1002, 1003. The parts can therefore be left out as shown in figure 10b showing the computer model after optimization.
[000110] Figure 11 shows another example of how a modality of the method of the present invention can be used to optimize the computer model described in relation to figure 9. By examining the spatial relationship between the two components 1002 and 1003, the method is capable to determine that no part is hidden from all perspectives. As a result, no parts are therefore left out, and the computer model after the optimization shown in figure 11b is the same as the computer model shown in figure 11a before the optimization.
[000111] Figure 12 shows a flow chart of a method for visualizing / rendering a computer model according to a modality of the present invention. The computer model is defined to be composed of a number of components and each component is defined to be composed of a number of parts. The method modalities of the present invention selectively choose a number of parts for each of the components to be used to view / render the model. In the first step of method 1201 a number of parts of a component are stored. This means that how a component can be optimized is determined by how the component is divided into parts. In the next step 1202, the position and orientation of the components are stored. The position can be stored in any coordinate system. Then, the stored position of the components is used to determine the spatial relationship in step 1203 between the components. The spatial relationship can be determined by examining the connection zones of the components, where determining the spatial relationship can include determining a component's connectivity property, for example, determining the connection zones of a component that are connected to a zone. compatible connection of the other component. WO2204034333 discloses a method for determining the spatial relationship between the components. The spatial relation of the determined components is then used to choose a number of parts for each component for use in the visualization / rendering of the component in step 1204 and using the determined parts the model is visualized / rendered in step 1205.
[000112] Figures 13 and 14 show a number of parts used to represent a component according to an embodiment of the invention. In this example, the component is a toy building brick. Eight pieces 1302, 1303, 1304, 1305 are used to represent toy building brick buttons, one piece is used to represent brick outer casing 1306, two pieces are used to represent brick inner casing 1037, 1038 and three pieces are used to represent cylinders under brick 1309, 1310, 1311.
[000113] Figure 15a shows a component 1501 according to an embodiment of the present invention. Component 150 represents a square toy construction element. Figure 15b illustrates a component 1502 according to an embodiment of the present invention. Component 1502 represents a cylindrical toy construction element. Figure 15c shows parts 1503, 1504, 1505, 1506, 1507, 1515 of component 1501. Figure 15d shows parts 1508, 1509, 1510 of component 1502. Figure 15e shows days of obstruction zones 1511, 1512 of a type specific associated with component 1501. The obstruction zones 1511, 1512 are preferably positioned in the portion of a component where the component can be connected to other components. In this example, the obstruction zones 1511, 1512 are positioned at the top and bottom of component 1501. These positions correspond to the portions of the toy building element that component 1501 represents that can be connected to other toy building elements. The type of obstruction zones can be dependent on their shape and / or size. In this example, the obstruction zones 1511, 1512 are square obstruction zones. The obstruction zones can be connected to one or more parts of your component. In this example, obstruction zone 1512 is connected to part 1503 and obstruction zone 1511 is connected to part 1515. Figure 15f shows the two obstruction zones 1513, 1514 of a specific type associated with component 1502. In this example, obstruction zones 1513, 1514 are positioned at the top and bottom of component 1502. These positions correspond to the portions of the toy building brick that component 1502 represents that can be connected to other toy building elements. In this example, the obstruction zones 1513, 1514 are round. In this example, the obstruction zones 1513 are connected to part 1510 and the obstruction zone 1514 is connected to part 1509.
[000114] Figure 16 shows an example of model optimization according to an embodiment of the present invention. Computer model 1601 represents a toy model construction of two square toy building elements 1603, 1604. In this example, each toy building element 1603, 1604 corresponds to a component, and each component is comprised of parts 1503, 1504, 1505, 1506, 1507, 1515 shown in figure 15c. Each component also has two obstruction zones 1511, 1512 associated as shown in figure 15e. To optimize the computer model 1601 the spatial relationship between the obstruction zones of the two components 1603, 1604 is examined. By examining the distance between the obstruction zone 1511 of the component 1603 and the obstruction zone 1512 of the component 1604, and their orientation with respect to each other, the method is able to determine that the two obstruction zones are in contact. When two obstruction zones are in contact, a logic rule can be used to determine if one obstruction zone obstructs the other and if any parts connected to any of the obstruction zones can be left out to view / render the component. In this example, a possible rule of thumb could be: 1. A square obstruction zone of size X obstructs the round and square obstruction zones of size less than or equal to X. 2. A round obstruction zone of size Y blocks the zones of obstruction. round obstructions of size less than or equal to Y. 3. Parts connected to an obstruction zone can be left out when viewing / rendering a component.
[000115] Using logic rule 1, the method is able to determine that the obstruction zone 1511 on the part 1603 obstructs the obstruction zone 1512 on the part 1604 and the obstruction zone 1512 on the part 1604 obstructs the obstruction zone 1511 on the part 1603. In this way, the optimized model 1602 can be represented without using part 1515 to represent component 1603 and part 1503 to represent part 1604.
[000116] Figure 17 shows an example of model optimization according to an embodiment of the present invention. Computer model 1701 represents a top model constructed of a square toy building element 1704 and a round toy building element 1703. In this example, each toy building element 1703, 1704 corresponds to a component. The square toy building element is comprised of parts 1503, 1504, 1505, 1506, 1507, 1515 shown in figure 15c and the round toy building element is comprised of parts 1508, 1509, 1510 shown in figure 15d. The square toy building element 1704 has two associated obstruction zones 1511, 1512 as shown in figure 15e, and the round toy building element 1703 has two associated obstruction zones 1513, 1514 as shown in figure 15f. To optimize the computer model 1601 the spatial relationship between the two component obstruction zones 1703, 1704 is examined. In this example, it is found that the obstruction zone 1514 of the component 1703 and the obstruction zone 1512 of the component 1704 are in contact. Using the three rules stated earlier, the method determines that the square obstruction zone 1512 of component 1704 obstructs the round obstruction zone 1514 of component 1703, however, the round obstruction zone 1514 of component 1703 does not obstruct the square obstruction zone. 1512 of component 1704. In this way the optimized computer model 1702 can be represented without using part 1509 to represent component 1703, however, the total number of parts still needs to be used to represent component 1704.
[000117] Figure 23a shows an example according to an embodiment of the present invention of how a component can be divided into parts. In the component the parts represent the square toy construction element 1501 shown in figure 15a. In this example, cylinder 2305 and housing 2306 are represented using a part. Figure 23b shows an example according to an embodiment of the present invention of how the obstruction zones can be associated with a component. The obstruction zones in this example are associated with component 1501. The obstruction zones 2311 and 2312 are used to find parts of other components obstructed by component 1501 and obstruction zone 2313 is used to find parts of component 1501 obstructed by other components. The obstruction zones 2311 and 2312 are not connected to any parts and the obstruction zone 2313 is connected to part 2305.
[000118] Figure 23c shows an example of model optimization according to an embodiment of the present invention. Computer model 2301 represents a toy model constructed of a toy building element 2304 and a round toy building element 2303. In this example, each toy building element 2303, 2304 corresponds to a component. The square toy building element is comprised of parts 2305, 2306 shown in figure 23a and the round toy building element is comprised of parts 1506, 1509, 1510 shown in figure 15d. The square toy building element 2304 has three associated obstruction zones 2311, 2312, 2313 as shown in figure 23b, and the round toy building element 2303 has two associated obstruction zones 1513, 1514 as shown in figure 15f. To optimize the computer model 2301 the spatial relationships between the obstruction zones of the two components 2303, 2304 are examined. In this example, it is verified that the obstruction zone 1514 of the component 2303 and the obstruction zone 2312 of the component 2304 are in contact, and it is verified that the obstruction zone 2313 of the component 2304 and the obstruction zone 1513 of the component 2303 are in contact. Using the three logical rules stated earlier, the method determines that the square obstruction zone 2312 of the component 2304 obstructs the round obstruction zone 1514 of the component 2303 and the round obstruction zone 1514 of the component 2303 blocks the round obstruction zone 2313 of the component 2304. In this way, the optimized computer model 2301 can be represented without using part 1509 to represent component 2303 and part 2305 to represent component 2304. In the embodiments of the invention, a first and second collection of zone (s) of obstruction can be associated with a component. The first collection of obstruction zone (s) can be used to find the component parts hidden by the component and the second collection of obstruction zone (s) can be used to find component parts hidden by other components.
[000119] Figure 18 shows an example of how the component can be divided into parts according to an embodiment of the present invention. The parts component represents the square toy building element 1501 shown in figure 15a. In this example, two pieces 1802, 1803 represent a common portion of component 1501. The first piece 1802 corresponds to a square with a cylinder at the top and the second piece 1803 corresponds to a square. The first piece has a higher level of detail than the second piece. Therefore, less computing resources are required to view / render the second part 1803 than the first part 1802. Preferably, at most one of the first 1802 or the second part 1803 in time is used to represent the toy building element 1501. The remaining parts 1804, 1805, 1806, 1807, 1808 correspond to the parts shown in figure 15c.
[000120] Figure 19 shows an example of model optimization according to an embodiment of the present invention. A computer model 1901 represents a toy model constructed of a toy construction element 1904 and a round toy construction element 1903. In this example, each toy construction element 1903, 1904 corresponds to a component. The square toy building element 1904 is represented using parts 1802, 1803, 1804, 1805, 1806, 1807, 1808 shown in figure 18 and the round toy building element is represented using parts 1508, 1509, 1510 shown in figure 15d. Component 1904 has two obstruction zones 1511, 1512 associated as shown in figure 15e with the difference that obstruction zone 1511 is attached to part 1803 and obstruction zone 1512 is attached to both part 1802 and part 1803. The component 1903 has two obstruction zones 1513, 1514 associated as shown in figure 15f. To optimize the 1901 computer model the spatial relationships between the obstruction zones of the two components 1903, 1904 are examined. In this example, it is found that the obstruction zone 1514 of the component 1903 and the obstruction zone 1512 of the component 1904 are in contact. When it is found that two obstruction zones are in contact, a logical rule can be used to determine if one obstruction zone obstructs the other and if any parts connected to any of the obstruction zones can be left out to view / render the component . In this example, a possible logical rule may be as follows: 1. A square obstruction zone of size X blocks round and square obstruction zones of size less than or equal to X. 2. A round obstruction zone of size Y blocks zones of Round obstructions of size less than or equal to Y. 3. A round obstruction zone of size Y partially obstructs a square obstruction zone of size less than or equal to Y. 4. Parts connected to an obstructed obstruction zone can be left out when viewing / rendering a component. 5. If two parts represent a common portion of a component and are connected to an obstruction zone, use the part with the lowest level of detail if the obstruction zone is partially obstructed. 6. If two pieces represent a common portion of a component and are connected to an obstruction zone, use the part with the highest level of detail if the obstruction zone is not obstructed.
[000121] Using logic rule 1 and 4, part 1509 can be left out when viewing / rendering component 1903 and part 1803 can be used in place of part 1802 to view / render component 1904. Thus , both 1903 and 1904 components can be optimized, further decreasing the computing resources needed to view / render the 1901. computer model. In this example, there is no visible loss of using part 1803 instead of part 1802 to view / render component 1904, however, in another embodiment, several visual losses may occur.
[000122] Figure 20 shows a flow chart of a method for visualizing / rendering a computer model according to a modality of the present invention. In step 2001, the method determines whether all components of the model have been evaluated. If the answer is no, the method continues in step 2002 by choosing the next component in step 2003 the method determines whether all parts of the chosen component have been examined. If the answer is no, the method chooses the next part in step 2004. In step 2005, the method determines whether all obstruction zones connected to the part have been examined. If the answer is no, the method chooses the next obstruction zone in step 2006. Then, in step 2007, the method examines the chosen obstruction zone. The method can examine the obstruction zone by determining the spatial relationship between the chosen obstruction zone and any other obstruction zones of other components. The spatial relationship can be determined by examining the distance between the chosen obstruction zone and other obstruction zones. If the distance between two obstruction zones is within a predetermined range, the obstruction zones can be determined to be in contact. In addition, guidance regarding the obstruction zone can be used to determine whether they are in contact. Two obstruction zones do not need to be physically in contact to be classified as being in contact, they can only be in close proximity to each other. When two obstruction zones are found to be in contact, a logical rule can be applied to determine if and how they obstruct each other. An obstruction zone can be completely obstructed or partially obstructed as described in figure 19. After the method has finished examining the obstruction zone chosen in step 2007, it returns to step 2005 to examine whether all obstruction zones are connected to the piece were examined. If the answer is yes, the method goes to step 2008 where it determines whether the chosen part is completely obstructed. If the answer is no, the method goes to step 2009, where it determines whether the part is partially obstructed. If the answer is no, the method returns to step 2003. In step 2009, if the answer is yes, the method determines whether the part has a lower level of detail version in step 2011. A lower level of version of detail can be a version of the piece having fewer details, for example, if the piece represents the top of a toy building element composed of a square with a cylinder protruding at the top, a lower level of detail version of the piece it can simply be the square without the cylinder. If the answer is no, the method returns to step 2003. If the answer is yes, the method replaces the part with a lower level of detail version in the rendering process and returns to step 2003. In step 2008, if the method determines that the chosen part is completely obstructed, it removes the part chosen in step 2013 and returns to step 2003. If the method in step 2003 determines that all parts of the chosen component were evaluated it returns to step 2001. In step 2001, if the method determines that all components of the model have been evaluated, the method starts the visualization / rendering process in step 2014 and generates a representation of the model. The representation can be a two-dimensional perspective view of the model. The view in a two-dimensional perspective of the model can be directly shown on the screen and / or saved to a digital file.
[000123] In the example of figure 20, the process determines the spatial relationship between two components directly based on the obstruction zones. In an alternative embodiment, the process can determine the spatial relationship at least partially based on the obstruction zones as described in this document. In particular, in one embodiment, each part of a component may have one or more obstruction zones and one or more obstruction zones associated with it. For example, a first part may have one or more obstruction zones associated with it and each obstruction zone may have an obstruction zone associated with it. If at least one first connection zone connected to the first part is connected to a compatible connection zone of another component, the process determines whether (and / or to what degree) the part is obstructed due to the connection. To this end, the process determines whether the obstruction zone connected to the connection zone of the other component obstructs the obstruction zone connected to the first connection zone, for example, as described above.
[000124] Therefore, in some modalities the process determines which part is not to be used to view / render a component, if the part has a first connection zone associated with it that is connected to a second connection zone of another component , if the second connection zone has a second obstruction zone associated with it that obstructs a first connection zone associated with the first connection zone.
[000125] Figure 21 shows a data structure of a computer model according to an embodiment of the present invention. A data structure of a computer model 2101 can comprise model parameters 2102 and a number of components and optionally a connection zone compatibility table 2121 and a number of blocking rules 2122. Model parameters 2102 can comprise information related to the position and orientation of the model in an appropriate coordinate system. The model 2102 parameters can still be animated over time. A connection zone compatibility table 2121 can contain information related to the compatibility of the different types of connection zones, for example, the table shown in figure 7b. Obstruction rules can define how different types of obstruction zones obstruct each other, for example, the logical rules previously stated. A data structure of a component 2104 can comprise parameters 2105, a number of connection zones 2106, a number of obstruction zones 2107 and a number of parts 2108. The parameters of component 2105 can comprise information related to pollution and directions component. A data structure of a connection zone 2109 can comprise the parameters of connection zones 2110 and optionally connection information made with connection zones of other components 2111. The parameters of connection zones 2110 can comprise information related to position, orientation, form and type of connection zone. A data structure of a connection zone 2112 can comprise the parameters of the obstruction zones 2113 and optionally information indicative of parts connected to the obstruction zone 2114 and connections of the obstruction zone with other obstruction zones of other components 2115. The parameters of the obstruction zones 2113 can comprise information related to the position, orientation, shape and type of obstruction zone. A data structure for a part 2116 can comprise part parameters 2117 and optionally a lower level number of detail parts 2118 and information indicative of obstruction zones linked to part 2118. Part parameters 2117 can comprise information related to position, orientation and shape of the piece. A data structure for a lower level of detail piece can comprise parameters 2120 which can comprise information related to the position, orientation and shape of the lowest LOD piece.
[000126] Generally, in some modalities, the connection zones of the components of a composite product that provide connections to other components can be arranged in a regular structure, for example, a regular 2D grid where each of the grid positions represents a zone of connection. Each connection zone has a type associated with it, and whether a given pair of connection zones interact in order to provide a connection is determined by their types, for example, as defined in an appropriate data structure. In one embodiment, only the connection zones that interact with another connection zone within the model as to form a connection are taken into account by the optimization process when performing the obstruction test. In addition to having a type, a connection zone also has an obstruction zone associated with it. By comparing the obstruction zones on both sides of a connection, the process determines how a component part can be removed or replaced with an optional part on both sides of the connection. The optional part may have a lower level of detail than the level of detail of the part that is replaced by the optional part.
[000127] Whenever a component within a model is optimized for the purpose of rendering, the process can iterate through all parts of each component and examine the connection zones on which each part is dependent and which form a connection with another connection zone. The result determines whether the part can be removed, replaced with an optional part, or shown in full quality, depending on the respective types of obstruction zones associated with the connection zones forming a respective connection.
[000128] For example, in a digital representation of the model, each component part that can potentially be removed during optimization can be linked to a connection zone, for example, associating one or more appropriate attributes for the part, such as a attribute identifying the regular grid and the position of the connection zone within said grid. In one embodiment, if a part does not depend on any connection zone then that part is always shown.
[000129] In one embodiment, whenever a component part is dependent on more than one connection zone, the optimization process determines the obstruction properties for each connection zone based on the connection properties of the connection zone and the zones corresponding obstruction points of the connected connection zones. For example, the result for each connection zone can be one of "hidden", "optional" and "shows". The total result for a dependent part in more than one connection zone can then be determined as the result of the connection zone resulting in less optimization: for example, for a dependent part with 8 connection zones, 7 "hidden" and 1 "optional", the results are "optional"; similarly, 1 "hidden", 6 "optional" and 1 "shows" gives "shows". If the result is "optional" and an optional part is not available for the current part, the result is converted to "show". If any single connection zone results in "shows", no further connection zones need to be tested with respect to the current part. As long as no connection zone results in "show", the process continues to test the remaining connection zones in order to determine an "hidden" / "optional" result.
[000130] Figure 22 shows a schematic view of an example of a computer system. The computer system, generally designated 2200, comprises a properly programmed computer 2201, for example, a personal computer, a workstation, etc., comprising a 2220 monitor, a 2221 keyboard and a 2222 computer mouse and / or other device note pad, such as a touch pad, tracking ball, optical pen, touch screen, or the like. The computer system further comprises a database 2202 for storing information on all accessible computer models, components and parts. Database 2202 can be any appropriate database system, for example, a relationship database such as Oracle or MySQL databases, or the like. The computer system further comprises a 2203 file storage device. The file storage device can be any appropriate type of remotely accessible storage such as SMB or NFS-shares, etc. and geometry definitions can be stored in any appropriate directory structure.
[000131] Database 2202 and file warehouse 2203 are accessible to computer 2011 through an appropriate computer network 2204, for example, a local area network, a wide area network, an internet, or the like. It will be appreciated that database 2202 and / or file store 2203 can be accessible to computer 2201 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 store 2203 can be integrated into computer 2201. It will also be appreciated that information about computer models, components and parts can be stored in a different way.
[000132] The 2200 computer system is adapted to facilitate the visualization / rendering of computer models. The computer system can be used as a standalone system or in connection with other computers. Consequently, in some embodiments, the computer system 2200 further comprises one or more interfaces for connecting the computer with other computers over a computer network, for example, the Internet.
[000133] Figure 24 shows a graphical user interface of a construction tool implemented by computer. The user interface comprises a monitor area 2401 showing a view of a 3D scene with a base plate 2402 and a computer model 2403 comprising a predetermined number of views. In what follows, the viewpoint will also be referred to as the (virtual) camera position, since it corresponds to a position from which the camera can record a photograph of a real structure corresponding to the graphic photograph shown in the area of the monitor.
[000134] Each of the components corresponds to an active element of the graphical user interface that can be activated, for example, by clicking on it with a computer mouse, to select that component. In a modality, a selected component changes its appearance. For example, the selected component can change the color, texture, etc .; it can be highlighted by showing a configuration box around the selected building block, or the like. A user can manipulate a selected component, for example, change its properties, for example, its color, delete it, make a copy and paste operation, drag it to a different position, rotate it, or similar.
[000135] The user interface further comprises a color palette panel 2405 comprising a number of different components 2406 that can be selected by the user. For example, a user can click on one of the 2406 components with the mouse, thus selecting that component and dragging the selected component into monitor area 2401 to connect it to frame 2403 or base plate 2402. The interface The user further comprises a menu bar 2407 comprising a number of menu buttons 2408 to activate various functions or tools. For example, the toolbar can comprise a rotation tool to change the position of the virtual camera, thus allowing the user to view the construction area from different directions. The menu bar also includes a zoom tool for using the zoom lens to / from inside and outside the 3D scene. Other examples of tools include a color palette tool to select different palettes 2405 each comprising a different set of components, a coloring tool to color the structure parts, an eraser eraser to erase the building blocks, etc. .
[000136] The menu bar 2407 can also provide standard functions, such as functions for saving a model, opening a previously saved model, printing an image of a model, a help function, etc.
[000137] Although some modalities have been described and shown in detail, the invention is not restricted to them, but can also be incorporated in other ways within the scope of the subject matter defined in the following claims. In particular, it should be understood that other modalities can be used and structural and functional modifications can be made without departing from the scope of the present invention.
[000138] In the claims of the device enumerating several means, several of these means can be incorporated by one and the same item or hardware. The mere fact that certain measures are described in mutually different dependent claims or described in different modalities does not indicate that a combination of these measures cannot be used to advantage.
[000139] It should be emphasized that the term "understand / understand" when used in this report is taken to specify the presence of declared characteristics, integers, steps or components, but does not eliminate the presence or addition of one or more others characteristics, whole numbers, steps, components or groups thereof.
权利要求:
Claims (12)
[0001]
1. Computer-implemented method to view / render a computer model, the computer model comprising a plurality of components (202), the method characterized by the fact that it comprises: storing (1201) a plurality of pieces ( 301, 302, 303, 304) of at least one component of the plurality of components, each part including geometry information to view / render the part, the component's division into parts, determining how the component can be optimized; store (1202) information indicative of the position and orientation of a plurality of components in a coordinate system; determining (1203) a spatial relationship between the individual components of the components based on the stored information indicative of the position and orientation of the plurality of components; determining (1204) for the at least one component a number of pieces stored for use in the visualization / rendering of said component, based on the spatial relationship determined between the individual components; and preview / render (1205) the model using the de-finished parts.
[0002]
2. Method implemented by computer to view / render a computer model, according to claim 1, characterized by the fact that at least one predetermined connection zone (A, B, C, D) is defined in relation to at least one component, wherein said connection zone is indicative of a portion of the component that can be connected to one or more connection zones of another component.
[0003]
3. Computer-implemented method to view / render a computer model, according to claim 2, characterized by the fact that the step of determining a spatial relationship between the individual components comprises the step of determining a spatial relationship of the zones connection of individual components.
[0004]
4. Computer-implemented method to view / render a computer model, according to claim 3, characterized by the fact that the step of determining the spatial relationship between individual connection zones comprises the step of determining a distance between two connection zones, and where said connection zones are connected when a distance is within a predetermined range.
[0005]
5. Method implemented by computer to view / render a computer model, according to claim 3 or 4, characterized by the fact that the step of determining the spatial relationship between the individual connection zones comprises the step of determining the orientation of one connection zone with respect to another.
[0006]
6. Method implemented by computer to view / render a computer model, according to claim 4 or 5, characterized by the fact that a first component part is associated with one or more connection zones, and in which the step of determining for the at least one component a number of parts to be used for visualization / rendering of said component comprises determining whether one or more connection zones is connected to a connection zone of the other component.
[0007]
7. Computer-implemented method for viewing / rendering a computer model, according to any one of the preceding claims, characterized by the fact that a first component (2304) comprises a first obstruction zone (2311, 2312, 2313) of a predetermined type and a second component (2303) comprises a second obstruction zone (1513, 1514) of a predetermined type, wherein the spatial relationship between the first and the second obstruction zone is used to determine a portion of the first component obstructed by the second component.
[0008]
8. Method implemented by computer to view / render a computer model, according to any of the previous claims, characterized by the fact that the method comprises determining (2013) a part as not used to view / render a component when at least a predetermined portion of the surface area of the part is covered by one or more other parts when viewed from any external direction of the confinement box of said computer model.
[0009]
9. Computer-implemented method for viewing / rendering a computer model, according to any of the preceding claims, characterized by the fact that the step of determining for the at least one component a number of parts for use to view / Rendering said component also comprises the step of determining the material properties of a component, and based on both the determined spatial relationship and the determined material properties, determining a number of parts for use to view / render said component.
[0010]
10. Method implemented by computer to view / render a computer model, according to claim 9, characterized by the fact that the step of determining the material properties comprises the step of determining the transparency settings for a component.
[0011]
11. Method implemented by computer to view / render a computer model, according to any of the previous claims, characterized by the fact that the computer model represents a composite product.
[0012]
12. Method implemented by computer to view / render a computer model, according to any one of the previous claims, characterized by the fact that a first part and a second part represent a common section of a component, in which the first part has a higher level of detail than the second part, and the step of determining a number of parts stored for use to view / render that component also includes selecting (2012) at most one of the first and second parts to view / render that component.
类似技术:
公开号 | 公开日 | 专利标题
BR112012007559B1|2021-04-27|COMPUTER IMPLEMENTED METHOD FOR VIEWING / RENDERING A COMPUTER MODEL
Ikehata et al.2015|Structured indoor modeling
US7979251B2|2011-07-12|Automatic generation of building instructions for building element models
Davis et al.2002|Filling holes in complex surfaces using volumetric diffusion
KR100970790B1|2010-07-16|Method of generating a computer readable model
Jung et al.2008|Using X3D for medical training simulations
CN101866379B|2015-03-11|Method, program and product edition system for visualizing objects displayed on a computer screen
CN109983509B|2021-10-15|Instant Boolean operation method using geometric surface
Tampieri1993|Discontinuity meshing for radiosity image synthesis
McCrae2014|Planar section representations of 3d shape
Fayolle et al.2012|Optimized surface discretization of functionally defined multi-material objects
Schäfer2000|Efficient Object-Based Hierarchical Radiosity Methods
Bayeh2017|REVO: A flexible, volumetric approach to mesh construction
Karsch2015|Inverse rendering techniques for physically grounded image editing
Julian2015|Illustration-inspired visualization of blood flow dynamics
Silva2019|Virtual Reality Integration on Tomo-GPU System
Shen2007|Semantic models for texturing volume objects
Sulaiman et al.2012|Development of real-time virtual environment with hierarchical construction
Boothroyd2011|Using Mesh Cutting in an Interactive Podiatric Orthopaedic Surgery Simulator
Spinelli et al.2006|Recovering 3D architectural information from dense digital models of buildings.
Ghali et al.2000|Object-Space Connectivity-Preserving Shadow Computation.
Smyk et al.2002|JaTrac—an exercise in designing educational raytracer
Yeung2008|Creation of 3D model from 2D floor plan
Boucard et al.2002|An image-based and knowledge-based system for efficient architectural and urban modeling
Norén2006|Real-time rendering of granular materials
同族专利:
公开号 | 公开日
US20120280993A1|2012-11-08|
WO2011039041A2|2011-04-07|
CN102782728B|2016-03-23|
DK2483868T3|2015-03-23|
KR20120083893A|2012-07-26|
KR101721715B1|2017-03-30|
WO2011039041A3|2012-01-05|
EP2483868A2|2012-08-08|
BR112012007559A2|2020-08-11|
MX2012003896A|2012-05-08|
HK1174135A1|2013-05-31|
CA2774114A1|2011-04-07|
ES2528605T3|2015-02-10|
PL2483868T3|2015-04-30|
US9230360B2|2016-01-05|
CA2774114C|2018-07-31|
JP5665872B2|2015-02-04|
JP2013506896A|2013-02-28|
EP2483868B1|2014-12-24|
CN102782728A|2012-11-14|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

US3010A|1843-03-21|Iiziiiiijiiii |
US6335732B1|1998-05-08|2002-01-01|Mohammad Salim Shaikh|External recognition and rendering method|
US6629065B1|1998-09-30|2003-09-30|Wisconsin Alumni Research Foundation|Methods and apparata for rapid computer-aided design of objects in virtual reality and other environments|
WO2000043959A2|1999-01-22|2000-07-27|Lego A/S|Virtual reality modelling|
US6435226B1|1999-12-08|2002-08-20|Mark D. Shaw|Method and apparatus for breaching and venting sealed inner containers within a drum|
US20020196250A1|2001-06-20|2002-12-26|Gateway, Inc.|Parts assembly for virtual representation and content creation|
US6897863B2|2001-11-30|2005-05-24|Caterpillar Inc|System and method for hidden object removal|
EP1459220A1|2001-12-21|2004-09-22|3Dfacto Aps|A method, a computer system, and a computer program product for configuring a virtual representation of an assembly of a plurality of components|
CN100495443C|2002-10-11|2009-06-03|乐高公司|Method of generating a computer readable model and data processing system|
DK1550085T3|2002-10-11|2007-04-10|Lego As|Procedure for Generating a Computer Readable Model|
US7755620B2|2003-05-20|2010-07-13|Interlego Ag|Method and system for manipulating a digital representation of a three-dimensional object|
US7979251B2|2007-03-16|2011-07-12|Lego A/S|Automatic generation of building instructions for building element models|
WO2009091571A1|2008-01-17|2009-07-23|Dassault Systemes Solidworks Corporation|Reducing the size of a model using visibility factors|US10016694B2|2011-07-05|2018-07-10|Lego A/S|Method and system for designing and producing a user-defined toy construction element|
USD794467S1|2012-08-09|2017-08-15|Friendship Products, Llc|Container|
USD794466S1|2012-08-09|2017-08-15|Friendship Products, Llc|Container|
USD806553S1|2012-08-09|2018-01-02|Friendship Products, Llc|Container|
JP2014102685A|2012-11-20|2014-06-05|Sony Corp|Information processing apparatus, information processing method, and program|
US9239891B2|2013-05-23|2016-01-19|Fca Us Llc|System and method for determining a mated surface of an object having a plurality of members|
JP5505848B1|2013-12-02|2014-05-28|株式会社サイバーノイズ|Image processing apparatus, image processing method, and program|
WO2015111261A1|2014-01-21|2015-07-30|株式会社ソニー・コンピュータエンタテインメント|Information processing device and information processing method|
JP6027554B2|2014-01-21|2016-11-16|株式会社ソニー・インタラクティブエンタテインメント|Information processing apparatus, information processing system, block system, and information processing method|
JP6193135B2|2014-01-21|2017-09-06|株式会社ソニー・インタラクティブエンタテインメント|Information processing apparatus, information processing system, and information processing method|
JP5610327B1|2014-03-18|2014-10-22|株式会社Live2D|Image processing apparatus, image processing method, and program|
USD795925S1|2014-04-16|2017-08-29|Hitachi, Ltd.|Display screen or portion thereof with icon|
DK3454956T3|2016-05-09|2021-10-25|Lego As|System and method of toy recognition|
EP3299072A1|2016-09-27|2018-03-28|Danmarks Tekniske Universitet|Method and toy element for generating a computer-readable representation of a construction made of toy building elements|
USD844394S1|2018-03-29|2019-04-02|Kraft Foods Group Brands Llc|Mold|
US10894342B2|2018-03-29|2021-01-19|Kraft Foods Group Brands Llc|System and method for molding comestible building blocks|
法律状态:
2020-08-25| B06F| Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]|
2020-09-01| B06U| Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]|
2020-12-15| B06A| Notification to applicant to reply to the report for non-patentability or inadequacy of the application [chapter 6.1 patent gazette]|
2021-03-23| B09A| Decision: intention to grant [chapter 9.1 patent gazette]|
2021-04-27| B16A| Patent or certificate of addition of invention granted|Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 27/04/2021, OBSERVADAS AS CONDICOES LEGAIS. |
优先权:
申请号 | 申请日 | 专利标题
DKPA200970141|2009-10-02|
DKPA200970141|2009-10-02|
PCT/EP2010/063296|WO2011039041A2|2009-10-02|2010-09-10|Connectivity depended geometry optimization for real-time rendering|
[返回顶部]