Home

Three dimensional modeling and animation system using master

image

Contents

1. 6221 BAsayuy Lect jeAsayuy Sich 114 082 1 012 ypalqo 3952 Occ eoedg elqo 0vZ 99 9 U S Patent Jun 19 2007 Sheet 13 of 14 US 7 233 326 Cache Final Channel Values 1360 Determine Modified Channel Values 1320 odified Channel Values Stable for X Frames 1330 ext Element Changes Modified Channel Values in Next Frame 1340 Cache Modified Channel Values 1350 Figure 13 US 7 233 326 B1 Sheet 14 of 14 Jun 19 2007 U S Patent 2 y anba 9uoe2 Jouueu 5 9 WSM 022 jeuueu2 5 122 0 je Jeyut Alper Scy 0 191 guoe2 1 ABojodot WSM 1221 02 uonejuesa1doy 0121 082 jauueyy ABojodo 1 4223 5 JapuyAy 0 lenau 0
2. Anuyut 0 US 7 233 326 Bl 1 THREE DIMENSIONAL MODELING AND ANIMATION SYSTEM USING MASTER OBJECTS AND MODIFIERS RELATED APPLICATIONS This application is a continuation of U S patent applica tion Ser No 09 282 590 entitled Three Dimensional Mod eling and Animation System filed Mar 31 1999 now U S Pat No 6 650 339 by inventors Daniel David Silva Rolf Walter Berteig Donald Lee Brittain Thomas Dene Hudson and Gary S Yost which is incorporated herein by reference and which claims the benefit of U S patent application Ser No 08 903 958 entitled Applying Modifiers to Objects Based on the Types of the Objects filed Jul 31 1997 now 0 8 Pat No 6 061 067 by inventors Daniel David Silva Rolf Walter Berteig Donald Lee Brittain Thomas Dene Hudson and Gary S Yost which is incorporated herein by reference and which claims the benefit of U S provisional patent application No 60 025 117 entitled Three Dimen sional Modeling and Animation System filed Aug 2 1996 by inventors Rolf W Berteig Daniel D Silva Donald L Brittain Thomas D Hudson and Gary S Yost which is incorporated herein by reference COPYRIGHT DISCLAIMER A portion of the disclosure of this patent document contains material which is subject to copyright protection The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure as its appears in the Pate
3. pni ne PeNNUn XVW OPNS GE US 7 233 326 B1 Sheet 9 of 14 Jun 19 2007 U S Patent SE 920JJ9 u uoneuluy Buijepow 3 C eft bas Bay et 5089 _____ 8595 Gl gor 77 0 1 qo 11 HIE AH PE ES S Se e LOA lt V AUT 4 POONA SEE RLS SUN 5 HAAS M e e a ee ee ee ee Buuspuay sMata dnog pa 8113 PER LATA ee ARP US 7 233 326 B1 Sheet 10 of 14 Jun 19 2007 U S Patent 0 euni4 EE 5592029 0018212 6 X2 sen 5 papatas paalo 8p1002 Buiddew 10 Ses pubik G ___ 888s EL 6 qbus 06 58 4510H G Z2 2 wpm B ac a Tw ied gt 5 zum cO 0 2 22 s ee Se al 5 77 Y CE P UAE AC roo TF gt 2 2 221 MS pA AED gh END da _ d d sapullAd punog Stl 936 19 9 SM A dnog HPI ANd Buljapow qe pennun xvw US 7 233 326 B1 Sheet 11 of 14 Jun 19 2007 U
4. bud 77 ANM Sue EE LENT AE SSH re A 2254 LAL AS pe 1 peAueqg U S Patent Jun 19 2007 Sheet 2 of 14 US 7 233 326 Application Control 200 Derived Object Representation ioa 246 Derived Object 270 Rendering Pipeline 250 Display Buffer 260 Object Space Modifier 220 Figure 2 Modifier Stack 280 US 7 233 326 B1 Sheet 3 of 14 Jun 19 2007 U S Patent amfi 0 uoniugeq 991 1 Sel Guljapow qe 19 15 2 _ 07 iuto zi snipsy 92 8 snipeu 22 ISSO Se lt SSS 006 9411 5 deb DX Dx Ies wool wi _ SMAA dnog NPI 914 nu pennun xviN 2ipnis GE zi US 7 233 326 B1 Sheet 4 of 14 Jun 19 2007 U S Patent y euni esses s puag OZ A SESS as 3 X v Iu Fd um se VE MI a ap 006 9911 01219 pueg Ln DIO RE e ic dnosg i3 3 Bujapow gg Em US 7 233 326 B1 Sheet 5 of 14 Ju
5. 20 25 30 35 40 45 50 55 60 65 6 in a scene reference within a scene occurs when one object depends upon another object for rendering For example one embodiment of the invention allows different objects e g two derived tubes to share the same master object In this example the master object becomes the target of references from the objects The reference allows a scene to be rendered and allows for the use of modifiers by multiple objects As is described below this use feature provides a user with significant benefits over previous systems The reference also allows changes in the master object to be broadcast to any objects that are referring to that master object The ReferenceMaker class includes the meth ods for indicating that a particular instance depends on another instance The ReferenceMaker class also includes methods for receiving messages from reference target objects when changes are made to that reference target object The ReferenceTarget class includes the methods for indicating that a particular instance is target of a reference The ReferenceTarget class supports the broadcast of mes sages to all referring reference maker objects about changes to that reference target object As with the Animatable class no instances of ReferenceMaker or ReferenceTarget are used in the application instances of these classes subclasses are used instead In one embodiment of the invention references s
6. 12 United States Patent Silva et al US007233326B1 US 7 233 326 B1 Jun 19 2007 10 Patent No 45 Date of Patent 54 75 73 E Q1 Q2 63 51 52 58 56 THREE DIMENSIONAL MODELING AND ANIMATION SYSTEM USING MASTER OBJECTS AND MODIFIERS Inventors Daniel David Silva San Rafael CA US Rolf Walter Berteig Seattle WA US Donald Lee Brittain Santa Barbara CA US Thomas Dene Hudson Port Washington WI US Gary S Yost San Francisco CA US Assignee Autodesk Inc San Rafael CA US Notice Subject to any disclaimer the term of this patent is extended or adjusted under 35 U S C 154 b by 420 days Appl No 10 384 128 Filed Mar 6 2003 Related U S Application Data Continuation of application No 09 282 590 filed on Mar 31 1999 now Pat No 6 650 339 Int Cl G06T 15 00 2006 01 G06T 17 00 2006 01 US CN Lien 345 419 345 420 345 619 Field of Classification Search 345 419 345 619 441 645 427 650 661 676 473 See application file for complete search history References Cited U S PATENT DOCUMENTS 4 985 854 A 5 437 008 A 5 467 443 5 483 626 1 1991 Wittenburg 7 1995 et al 715 502 11 1995 Johnson et al 1 1996 Nakayama Derived Tube s Graphical Tube Modifier Stack 199 Scene 142 3D Modeling 8 Animation Application 145 Memory 140 5 490 24
7. 8 Skew produces a uniform offset in object s geometry The amount and direction are set for each instance of skew skew s effect can also be limited so that only a portion of an object is skewed Taper produces a tapered contour by scaling one end of an object s geometry Each taper instance has values for the amount of tape and curve of the taper on two sets of axes The taper s effect can also be limited to a section of the object s geometry Twist produces a twist like a screw s thread in an object s geometry Each instance of Twist has values for the angle of the twist on any of three axes and a bias that compresses the threads relative to the pivot point of the object The twist s effect can also be limited to a section of the object s geometry Displace reshapes the geometry with a variable force One embodiment of the invention has a corresponding Displace class that is a subclass of WorldSpaceModifier Noise simulates random motion in an animated object Noise also produces fractal effects that are useful in creating terrain features for example Optimize reduces the number of faces and vertices in an object The purpose of Optimize is to simplify the geometry and increase the speed of rendering while maintaining an acceptable image XForm acts as a transform for all or a portion of an object but is evaluated as a modifier The importance of the order of execution of modifiers and transforms is descri
8. S Patent 078 10 3Ipu an4 amp p1002 Buiddew ajesaua 90 zi 1 525 Gi i s8es 995201d uonga12 utBaq X22 payoajas patoa qo ij sPag yuan zT 51 25 gt SEL ag SAXA ae X Nw dll lt we Sor TAO TUS WERE Pee QR VES 75 Aor SSE ELAS PT E DI D LLL Pu DON 098 xog biz ae e GE 9109 IPS ald pennun xvw OPMS Qe zl US 7 233 326 B1 Jun 19 2007 Sheet 12 of 14 Patent U S 0921 1 g Jojuj KypiigA 5921 gasau 092 Jauueu ad ESZI jeasayuy 5921 esau 1921 5521 leau 152 jeasaqul jeuueu 195 0129195 eaa 1843101 jouUueYD dey aJnixo emau 521 jeasajuy 652 je Jajuj 174 1521 1 gpz uonejuaseidey pe ueqg lemau
9. below However importantly the use of modifier stacks in one embodiment US 7 233 326 Bl 5 of the invention provides the user with previously unequaled ease of use and flexibility in 3D modeling and animation The following describes the general operations in the computer system 100 used in the rendering process The computer system 100 using the processor 110 and the memory 140 executes the 3D modeling and animation application 145 which renders a three dimensional 3D representation ofthe scene 142 on the display device 130 As part of the rendering process the derived tube 146 provides a parametric definition of a bent and twisted tube for use by the 3D modeling and animation application 145 In this step the derived tube 146 accesses the tube modifier stack 199 to generate the parametric definition of the bent and twisted tube The 3D modeling and animation application 145 uses the parametric definition and various rendering techniques to generate the derived tube s graphical representation 134 The 3D modeling and animation application 145 then causes the display device to display the perspective view 132 including the derived tube s graphical representation 134 Thus given a scene with a derived object the computer system 100 can render a representation of that object The above has described an overview of a computer system that supports 3D modeling and animation using modifier stacks The next section describes the class
10. bend disabled indicator 630 indicates that the bend modifier for the tube 610 has been disabled In one embodiment to enable the bend the user need only select the bend disabled indicator 630 FIG 7 illustrates the tube with a bend and twist 600 as well as a tube with a bend disabled and a transform modifier 710 The modifier stack of the tube with the bend disabled and the transform modifier 730 is also shown Importantly the user was able to easily change the order of the twist and bend keep the bend disabled and insert an XForm instance between the two modifiers ii Animation and the Modifier Stack As noted above in addition to helping in modeling the modifier stack 280 is helpful in animating a model Before describing the examples of FIG 8 through FIG 11 it is helpful to describe the animation process first The user creates key frames that record values of various parameters at the beginning and end of each animated sequence The values at the keyframes are called keys The 3D modeling and animation application 145 determines the interpolated values between each key to produce between frames that complete the animation The 3D modeling and animation application 145 can animate many parameters in a scene 142 For example modifier parameters can be animated such as a bend angle and a taper amount Note that other embodiments of the invention allow the user to create an animation by not using key frames but by using contro
11. display device 130 displays the 3D modeling and animation inter face 135 which shows a 3D representation of the derived tube 146 and the corresponding tube modifier stack 199 The computer system 100 includes an IBM compatible personal computer available from Hewlett Packard Inc of Mountain View Calif In another embodiment the computer system 100 includes one of a Macintosh computer avail able from Apple Computer Inc of Cupertino Calif a SparcStation workstation available from Sun Microsys tems Inc of Mountain View Calif and a workstation from Silicon Graphics Inc of Mountain View Calif In one embodiment the computer system 100 executes an operat ing system such as Windows 95TM or Windows NT available from Microsoft Inc of Redmond Wash 20 40 45 50 65 4 The computer system 100 need only have some type of processor 110 for executing instructions and manipulating data In one embodiment the processor 110 includes a distributed processing system such that processing is done by a number of networked microprocessors The memory 140 stores data and instructions The memory 140 includes one or more of a random access memory a read only memory and a hard disk memory The input device 120 allows the user to interact with the 3D modeling and animation application 145 The input device 120 includes one or more of a keyboard a mouse and a trackball Importantly the input device 120 includes
12. for this is that the derived object not only ensures that a particular object is correctly rendered but also that an appropriate cache is maintained for that particular object The caching abilities of the derived objects is an important performance enhancing feature of one embodiment of the invention and is described in greater detail below The above class hierarchy illustrates only one class hier archy Other embodiments include other class hierarchies For example in one embodiment the classes under the ShapeObject are moved under the GeometricObject class In another embodiment the methods in the Animatable Ref erenceMaker and ReferenceTarget classes are combined into the BaseObject class In another embodiment the Referen ceTarget is a superclass of the ReferenceMaker In another embodiment written in a language that supports multiple inheritance ReferenceMaker does not inherit from Animat able nor does BaseObject inherit directly from Referenc however the Modifier class and the Object class multiply inherit from the Animatable ReferenceTarget and BaseObject 5 Pipeline for Rendering FIG 2 and the following describe how objects in a scene 142 are rendered in one embodiment ofthe 3D modeling and animation application 145 So as not to obscure this embodi ment of the invention FIG 2 has been simplified The following first describes the elements of FIG 2 and then the operation of those elements US 7 2
13. hierar chy used in the 3D modeling and animation application 145 that enable the use of modifier stacks Following the next section is a description of the how these classes are used together in the application 4 Objects and Their Relation to Scenes In one embodiment of the invention the 3D modeling and animation application 145 has an object oriented design Thus the application has a class hierarchy that supports inheritance This section describes the class hierarchy used to create modifier stacks Table 1 illustrates the class hier archy in one embodiment of the 3D modeling and animation application 145 Each of the classes is described below TABLE 1 Animatable ReferenceMaker ReferenceTarget BaseObject Modifier Object GeometricObject TriObject SimpleObject PatchObject ParticleObject SimpleParticle ShapeObject SplineShape SimpleSpline LinearShape SimpleShape WorldSpaceModifierObject SimpleWorldSpaceModifierObject 1 Animatable Class The Animatable class is the superclass of all the animat able classes Although no instances of Animatable are used instances of the Animatable s subclasses include methods that support the animation of an instance of that particular subclass Also the Animatable class includes a class iden tifier and associated properties ii ReferenceMaker amp ReferenceTarget The ReferenceMaker class and the ReferenceTarget classes work together to support references between objects
14. some device allowing the user to interact with the 3D modeling and animation application 145 The display device 130 displays the 3D modeling and animation interface 135 The display device 130 includes a cathode ray tube CRT display flat panel display or some other display device In the example of FIG 1 the 3D representation of the scene 142 is shown in a perspective view 132 3D modeling and animation application 145 includes data and instructions for creating 3D models photo realistic still images and film quality animation The 3D modeling and animation application 145 uses a process called dering to determine the correct display device 130 repre sentation of the scene 142 One embodiment ofthe invention includes the application 3D Studio Max available from Autodesk Inc of San Rafael Calif The scene 142 includes all the objects to be displayed in the 3D modeling and animation interface 135 An object is thus something in a scene 142 Further an object is a model of a physical object such as a cylinder tube box and teapot or an object is a non physical object used in modeling other objects such a as wave a bomb or a deflector Each object corresponds to a graphical representation in the 3D model ing and animation interface 135 Of course some objects may not be displayed because for example the display option is in the 3D modeling and animation interface 135 do not allow that particular object
15. these steps How ever at step 1360 the final results for the topology channel are stored in the world space modifier topology channel cache 1467 Thus the results in the cache 1467 are valid for at least the next ten frames of an animation Step 1310 through step 1360 are then executed for all the elements that affect the geometry channel 1210 Note that during the processing of the transform element 230 at step 1340 the interval level 1227 for the next element indicates that the intermediate channel results generated for the next element will not be valid in the next frame of the animation Thus step 1350 is executed resulting in the caching of the intermediate channel results in the transform geometry chan nel cache 1475 Therefore in the next animation frame the bound cylinder need only begin evaluating the geometry channel 1220 from the intermediate channel results in the cache 1475 instead of from the cylinder master object 1410 intermediate channel results Where an object has many modifiers being able to use the intermediate channel results from a modifier greatly improves the speed of the system because many calculation are saved At step 1360 the geometry channel 1220 portion of the derived cylinder representation 1446 is stored in the WSM geometry channel cache 1477 Note also that the combination of lazy evaluation and the caching in the channels further improve the speed of the system Lazy evaluation of the channels furth
16. with a three dimensional representation so that the user can more easily visualize the effect of the modifier 8 Claims 14 Drawing Sheets presentation 134 Perspective View 132 ILLE pre gum a Ran Pe HHE Display Device 130 3D Modeling amp 120 C Animation Interface 135 Processor 110 r System 100 US 7 233 326 B1 Page 2 U S PATENT DOCUMENTS OTHER PUBLICATIONS 5 936 628 A 8 1999 Kitamura et al 345 420 3D Studio Max User Manual vol 1 and 2 and Tutorial Kinetix 5 082 388 11 1999 Nakagawa 345 473 Autodesk Inc Mar 1996 pp 1 14 through 1 15 6 1 through 6 12 6 034 695 3 2000 Silva et al 13 1 through 13 16 and tutorial 6 10 through 6 12 6 128 631 A 10 2000 Wallace et al 715 502 n D oid Pica to Computer Graphics 1994 6 331 861 12 2001 Gever et al 345 629 6 424 354 B1 7 2002 Matheny et al 345 619 cited by examiner US 7 233 326 B1 Sheet 1 of 14 Jun 19 2007 U S Patent ZEL UNE ni OOL 1ejnduio Obl 205592024 01 indui Geb uoeuituy 051 sng 9 uneapa ae Or Sb uoneoiddy aE 99826 661 42815 Jegipoiw eqn 05 821 eg 4810510 TU HT
17. 0 is performed In one embodi ment this includes testing whether the present element is the last element in the modifier stack 1280 At step 1320 the next element in the modifier stack 1280 now identified as the present element generates a corre sponding set of intermediate channel results for that par ticular element and channel At step 1330 the validity interval is determined if not already determined from the last execution of these steps for the present element The present element s validity interval is tested to determine whether the present element is valid for the next N frames In another embodiment the validity interval is tested to determine whether the present element s intermediate results are valid for a predetermined time period a number of frames being only one example of the time period In one embodiment N is ten If the present element s validity interval is valid for the next N frames then step 1340 is executed Otherwise step 1310 is executed At step 1340 the validity interval for the next element after the present element in the modifier stack 280 is generated This validity interval is tested to determine whether the intermediate results generated by the next element are valid for a predetermined period of time e g the next frame or the next five frames If the next element is the top of the modifier stack then this test returns false The next elements validity interval is stored
18. 0 provides the application control 200 with a derived object representation 246 Depending on the type of rendering being done and the type of master object 210 the derived object 270 will provide a bounding box topol ogy geometry and or texture map description of the modi fied and transformed master object 210 How the derived object 270 creates the derived object representation 246 is described below The derived object representation 246 is then used by the rendering pipeline 250 to create a bit pixel data 256 repre sentation of the modified and transformed object The ren dering pipeline 250 includes processes for converting the parameter information in the derived object representation 246 into pixel data In one embodiment the rendering pipeline includes rendering processes such as smoothing 20 25 30 35 40 45 50 55 60 65 12 highlighting facets lit wireframe wireframe and bound box In one embodiment known rendering techniques are used in the rendering pipeline 250 The pixel data 256 includes the pixel information for display on display device 130 The display buffer 260 holds the pixel data for display by the display device 130 How the derived object 270 creates the derived object representation 246 is now described When a derived object 270 is asked by the application control 200 to provide a renderable description of itself the derived object 270 evaluates the master object 210 then any ob
19. 33 326 Bl 11 FIG 2 includes an application control module 200 a derived object 270 a modifier stack 280 a master object 210 an object space modifier 220 a transform 230 a world space modifier 240 a rendering pipeline 250 and a display buffer 260 These elements work together to render a graphi cal representation of the derived object onto the display device 130 The application control 200 controls the operation and interaction between the elements of FIG 2 In one embodi ment the application control 200 includes the 3D Studio Max core software architecture However what is important is that there is some method of controlling the various elements in FIG 2 The derived object 270 is part of a scene 142 not shown and is responsible for ensuring that a modified object is properly rendered The derived object is an instance of the DerivedObject class The derived object instance is created when a user creates an object in a scene In one embodiment each derived object 270 maintains a modifier stack 280 In one embodiment the modifier stack 280 includes a list of modifiers e g object space modifier 220 and world space modifier 240 a transform and a pointer to a master object 210 In another embodiment the derived object 270 maintains a reference to the master object 210 a reference to the transform 230 and a list of modifiers However what is important is that the derived object 270 maintains the information necessary
20. 6 A 2 1996 Brotsky et al 5 583 977 12 1996 Seidl 345 619 5 689 711 A 11 1997 Bardasz et al 717 105 5 731 819 A 3 1998 Gagn et al 5 745 122 A 4 1998 Gay et al 5 796 400 A 8 1998 Atkinson et al 5 801 709 9 1998 Suzuki et al 5 818 452 A 10 1998 Atkinson et al 5 838 973 A 11 1998 Carpenter Smith et al 717 105 5 883 638 3 1999 Rouet et al 345 473 Continued OTHER PUBLICATIONS David Lau Kee et al VPL An Active Declarative Visual Pro gramming System IEEE 1991 pp 40 46 Continued Primary Examiner Ulka Chauhan Assistant Examiner Daniel Hajnik 74 Attorney Agent or Firm Patterson amp Sheridan L L P 57 ABSTRACT A three dimensional 3D modeling system for generating a 3D representation of a modeled object on a display device of a computer system The modeled object is represented by an initial definition of an object and a set of modifiers Each modifier modifies some portion of the definition of an object that may result in a change in appearance of the object when rendered The modifiers are ordered so that the first modifier modifies some portion of the initial definition of the object and produces a modified definition The next modifier modi fies the results of the previous modifier The results of the last modifier are then used in rendering processes to generate the 3D representation Each modifier is associated
21. an channel intermediate result In one embodiment providing a derived US 7 233 326 Bl 15 object representation 246 includes determining which chan nels need to be accessed Next evaluating the elements in the modifier stack 280 that affect the values in those chan nels Evaluating the elements affecting that channel involves generating a series of channel intermediate results until the last element is evaluated The results of evaluating the last element in the modifier stack is that channel s portion of the derived object representation 246 For example the transform 230 affects values in at least the geometry channel in the derived object representation 246 Therefore an evaluation of the transform 230 in the geometry channel generates a set of geometry channel intermediate results These intermediate results can then be passed onto the next element in the modifier stack 280 that effects the geometry channel When the last element is evaluated the geometry values are included in the derived object representation 246 As shown in FIG 12 one embodiment supports a topol ogy channel 1210 a geometry channel 1220 a texture map channel 1230 a selection set channel 1230 a subcell type channel 1250 and a display selection channel 1260 The topology channel 1210 determines the topology e g the normal direction of the faces an object of the derived object 270 The geometry channel 1220 determines the geometry e g vertices of th
22. bed in greater detail below LinkedXForm works in the same way as XForm except that the LinkedXForm uses the coordinate system of another object EditSpline changes the splines segments and vertices of a shape object Shape objects are described below in con junction with the description of the Object class Extrude creates a 3D object by sweeping a shape along a straight line Lathe creates a 3D object by revolving a shape along axis 1 Manipulating Object Space Modifiers Before describing world space modifiers a description of a method of interacting with object space modifiers is described One embodiment of the invention not only allows a user to change the parameters of an object space modifier by directly entering the values of the parameters but also allows the user to manipulate a 3D representation of the modifier In one embodiment the 3D representation of the modifier is called a gizmo The gizmo is a wireframe representation of that gizmo s modifier A gizmo acts like a mechanical apparatus that transfers the modification to the object that gizmo is attached to That is by changing the gizmo the user is changing the values of the parameters of the modifier A user can move scale and rotate a gizmo as is done with any other object In one embodiment the gizmo represents parameters of a modifier that are not otherwise easily definable and or accessible by a user For example a modifier may have a cente
23. ble medium carrying one or more sequences of instructions which when executed by one or more processors causes the one or more processors to perform the method recited in claim 4
24. ct Object class is the superclass of all the different types of objects in a scene In one embodiment the Object class has the following subclasses GeomObject geometry object Shape Object WorldSpaceModifierObject and DerivedObject The GeomObject class is the superclass of basic render able objects such as tubes cylinders boxes polyhedra spheres torus and cones One embodiment of the invention includes the following geometric object categories Standard Primitives 3D geometric objects such as Box Sphere and Cylinder Patch Grids are 2D surfaces Particle Systems are animated objects that simulate rain snow dust and similar collections of small objects Shapes include 2D objects line lines and donuts and 3D spline based shapes like a helix Shape objects are not directly renderable in one embodiment The shape objects need to first be modified before they are renderable World Space Modifier Object is not a renderable object but is still visible to the user A world space modifier object is like a gizmo for an object space modifier The world space modifier object provides a visual representation of a world space modifier that allows the user to bind an object to the corresponding world space modifier Derived Object includes a list of modifier objects and a pointer to the master object In rendering a scene a user always sees a derived object even if no modifiers are applied to an object The reason
25. d object 270 is known to be valid the validity interval helps optimize the caching of the intermediate channel results As shown in FIG 12 each element in the modifier stack 280 has an associated validity interval in each topology channel For example the object space modifier 220 has a validity interval 1213 for the topology channel 1210 a validity interval 1223 for the geometry channel 1220 a validity interval 1233 for the texture map channel 1230 a validity interval 1243 for the selection set channel 1240 a validity interval 1253 for the subcell type channel 1250 and a validity interval 1263 for the display selection channel 1260 In conjunction with FIG 13 the follow describes how the validity interval is used in the caching process FIG 13 illustrates the process of determining what to cache during the evaluation of elements for a specific channel of a derived object 270 Prior to the first step in FIG 13 the derived object 270 has received a request to provide a corresponding derived object 0 40 45 50 60 65 16 representation 246 The derived object 270 then determines which channels need to be evaluated The derived object 270 also is aware of the time e g which frame the request is being made for At step 1310 a test is made to determine whether each element in the modifier stack 280 has been processed If all the elements have been processed then step 1360 is per formed Otherwise step 132
26. di fiers available in one embodiment of the invention Object space modifiers can be divided into general specialized and edit shape modifiers The general object space modifiers have real world equivalents and are relatively simple to understand In one embodiment the general object space modifiers include bends ripples skews tapers twists and waves In this embodiment the special modifiers include displace noise and optimize Also in this embodiment the edit shape modifiers include edit splines extrudes and lathes In one embodiment Bend Ripple Skew Taper Twist Wave Displace Noise Optimize XForm LinkedX Form VolumeSelection EditSpline Extrude and Lathe are all subclasses of the superclass ObjectSpaceModifier Bend produces a uniform bend in an object s geometry The angle and direction of the bend is set as well as the bend axis The bend modifier has a limit value that limits the bend to a particular section of an object s geometry Ripple produces a concentric rippling effect in an object s geometry The size of the waves of the ripple are set Ripple has a corresponding modifier in the world space Wave produces a wave effect in an object s geometry The size and phase of the wave is set One embodiment of the invention supports a decay value that decreases or increases the size of the wave Wave also has a correspond ing world space modifier 20 25 30 35 40 50 55 60 65
27. e Modifier Stack This section describes how to use the modifier stack 280 and provides examples of using the modifier stack for modeling and animation FIG 3 through FIG 7 illustrate an example of creating and modifying a tube using a modifier stack 280 FIG 8 through FIG 11 illustrate an example of animating a cylinder using a modifier stack 280 1 Modeling and the Modifier Stack Each time a new object is instantiated by a user a derived object 270 is created In the example of FIG 3 a tube 300 is created and rendered to the 3D modeling and animation interface 135 To the right of the interface the parameters defining the tube are shown in the tube definition 310 At this point the modifier stack 280 only includes the reference to the tube master object 210 and the transform 230 for the tube FIG 4 illustrates a bend modifier as it is applied to the tube 300 When the tube 300 is selected the 3D modeling and animation interface displays the modifier stack interface 420 for the tube 300 The modifier stack interface 420 shows that the bend modifier has been selected for display Because the bend is selected the bend definition 410 appears The bend definition 410 shows the parameters for the bend In this case the angle of the bend is ninety degrees and the direction is ninety degrees both along the Z axis Also shown in FIG 4 is an example of a gizmo the bend gizmo 430 The bend gizmo allows the user to change the values o
28. e derived object 270 Most modifiers modify the geometry of the derived object 270 The texture map channel 1230 determines the texture mapping coordi nates of any texture mapped to the derived object 270 The selection set channel 1240 determines an array of bits indicating which vertices are selected by a selection modi fier The subcell type channel 1250 determines the type of selection e g for a mesh object the selection type can be an edge or a vertex The display selection channel 1260 determines how parts of the derived object are to be dis played e g are vertices ticks to be displayed for the derived object 270 Not every derived object 270 needs all of these channels For example if no texture map is mapped onto an object the texture map channel 1240 is not needed by the derived object 270 ii Caching in Channels One embodiment of the invention includes the caching of the intermediate channel results This embodiment of the invention not only includes determining the intermediate channel results but also determining a time period for which those results are valid This time period 1s called the validity interval An example of a validity interval is where for frame nineteen of the animation in FIG 8 through FIG 11 the bound cylinder 810 has a geometry channel 1220 valid ity interval for the wave world space modifier 800 of frame twenty to frame infinity Because the length of time an intermediate result of the derive
29. er reduces the number of unnecessary calculations the entire derived object representation may not be needed to be recalculated in response to a broadcast of changes through a reference from another object That is only certain channels may be affected by a set of changes therefore only the caches in these channels need be invalidated What 1s claimed is 1 A method of modifying the representation of an object in a three dimensional modeling system comprising the computer implemented steps of displaying a first three dimensional representation of the object displaying a three dimensional representation of a modi fier having a shape indicating an approximate resulting shape of the object when the modifier is applied to the object 20 25 30 35 40 45 50 18 applying the modifier to the object and generating and displaying a second three dimensional representation of the object based on the object and the modifier wherein the second three dimensional repre sentation of the object is deformed with respect to the first three dimensional representation of the object 2 The method of claim 1 further comprising the steps of storing information that defines a plurality of modifiers in a modifier stack wherein each three dimensional rep resentation of the modifiers has a shape indicating an approximate resulting shape of the object when a particular modifier is applied to the object and applying the modifie
30. es changes to the modifier stack of the object of FIG 5 FIG 7 illustrates further changes to the modifier stack of the object of FIG 5 FIG 8 illustrates a key frame and the start of an animation sequence FIG 9 illustrates a between frame of the animation sequence FIG 10 illustrates a second key frame of the animation sequence FIG 11 illustrates a third key frame of the animation sequence US 7 233 326 Bl 3 FIG 12 illustrates an example of the use of channels in generating a derived object s representation FIG 13 illustrates one embodiment of a method of caching FIG 14 illustrates an example of caching The figures illustrate the invention by way of example and not limitation In the figures like references indicate similar elements DETAILED DESCRIPTION 1 Terminology In this description the term instance means an instance of class as in an object oriented programming language In particular instance does not mean an instance as defined in the 3D Studio Max User Guide Volume 1 and 2 unless specifically noted Also note that an instance in the object oriented sense can also be an instance in the 3D Studio application sense The term reference generally means a reference created through the use of the ReferenceTarget and ReferenceMaker classes or the like as described below 2 System Overview One embodiment of the invention includes an apparatus and m
31. ethod of generating a three dimensional 3D repre sentation of a modeled object on a display device of a computer system The description of specific applications is provided only as examples Various modifications to the preferred embodiments will be readily apparent and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the invention Thus the invention is not intended to be limited to the embodiments shown but is to be accorded the widest scope consistent with the principles and features disclosed herein 3 Computer System FIG 1 illustrates a computer system 100 that can be used to implement the one embodiment of the invention FIG 1 also illustrates an example of a tube as modeled by one embodiment of the invention The following describes the elements of FIG 1 and then their operation The computer system 100 comprises a processor 110 a memory 140 an input device 120 and a display device 130 These components can communicate with each other via a bus 150 The memory 140 includes software such as the 3D modeling and animation application 145 The 3D modeling and animation application 145 includes among other things a scene 142 The scene 142 includes at least a first node 144 a corresponding derived tube 146 and a tube modifier stack 199 The tube modifier stack 199 includes a tube master 190 a bend modifier 192 and a twist modifier 194 The
32. f the bend modifier without having to enter the values directly into the bend definition 410 interface US 7 233 326 Bl 13 FIG 5 illustrates an additional twist modifier as it is applied to the bent tube 300 modifier stack edit window 520 is also displayed The modifier stack edit window 520 shows that the tube 300 has a bend applied first and then a twist Importantly the modifier stack 280 allows a user to easily add modifiers to an object and view not only the results of the new modifiers but also view a list of all the modifiers that apply to an object The modifier stack 280 also allows a user to edit modifiers that are anywhere in the modifier stack 280 For example the user can change the values of the bend modifier without having to undo the twist modifier first In one embodiment the user can change the order of the modifiers As noted above the order of evaluation of the modifiers is important for some modifiers For example applying a bend before a twist can have a significantly different look than applying a twist before the bend Additionally the user can disable a particular modifier but keep the modifier in the modifier stack 280 FIG 6 illustrates an example of this feature The tube with the bend and twist 600 is the same tube as is illustrated in FIG 5 The tube with the bend disabled 610 shows the same modified object except that the bend modifier has been disabled in this tube s modifier stack The
33. fferent display methods e g bounding box wireframe for each of its subclasses In one embodiment these display methods are overridden by equivalently named methods in the BaseObject s subclasses iv Modifier The Modifier class includes the methods for modifying objects during the rendering process Instances of the Modi fier s subclasses provide a set of very powerful and flexible features that greatly enhance the usability of the 3D mod eling and animation application 145 Each instance of a Modifier subclass has methods for causing a particular modification of an object such as a bend or a twist Modifiers change the look of an object by for example changing the object s vertices or the object s topology Modifiers can be stacked together so that the output of one modifier is fed into the input of another modifier This US 7 233 326 Bl 7 provides a user with a virtually endless number of combi nations Modifiers can also be shared through references In one embodiment each Modifier subclass modifies only specific types of objects For example in this embodiment instances of the Bend class can modify geometric objects and shape objects while instances of the EditSpline class can only modify shape objects There are two main subclasses of Modifier ObjectSpace Modifier and WorldSpaceModifier These classes are described next v ObjectSpaceModifier The ObjectSpaceModifier class is a subclass of the Modi f
34. hannels In one embodiment of the invention each derived object 270 provides the derived object representation 246 in response to a request to provide that information However the contents of that information may vary depending on the type of request For example a bounding box representation need not have the same detailed information as a smoothed representation Additionally during an animation for example only part of a derived object representation 246 may change For example as shown in the FIG 8 through FIG 11 during the animation the topology of the bound cylinder does not change but the geometry does change Therefore even though the same request may be made of the derived cylinder e g wireframe representation request only the geometry values are changing in each frame of the animation Given that different types of data may need to generated because of the different types of messages and that even for the same request only some of the data may change in the next frame one embodiment of the invention divides the derived object representation 246 creation into value generating channels channel corresponds to a different portion of a derived object representation 246 Each channel is responsible for generating its own portion of the derived object represen tation 246 Each element in the modifier stack 280 affects values in one or more of the channels The results of an evaluation of a modifier in a channel is called
35. he same world space modifier the world space modifier s parameters affects all the objects equally However each object s dis tance from and spatial orientation to the world space modifier can change the world space modifier s effect Because of this spatial effect simply moving an object through the world space can change the warp s effect This last feature provides a user with a powerful tool in anima tions For example to show a dolphin swimming a user need only model the dolphin and then bind the dolphin to an instance of a Wave world space modifier As the dolphin object translates through the world space the dolphin will be modified by the wave to appear to be swimming Addition ally an object can be bound to multiple world space modi fiers In one embodiment each world space modifier includes a graphical representation of itself As noted above this graphical representation is a gizmo in one embodiment and in another embodiment this graphical representation is an instance of a subclass of the Object class The following is a list of subclasses of WorldSpaceModi fier in one embodiment Bomb explodes a geometric object into individual faces that over time become disjoint in space Thus the Bomb subclass is particularly useful in animations Deflector acts as a shield to repel the particles generated by a particle system object A deflector can be used to simulate pavement being struck by rain or a rock in the midd
36. ier class The ObjectSpaceModifier class is the superclass of the object space modifier classes Before further describing the class the various coordinate spaces relevant to one embodiment of the invention are described Different spaces are used in one embodiment of the invention to differentiate different sets of spatial coordinate systems In one embodiment of the invention there are two relevant spatial coordinate systems object space and world space Object space is the coordinate system unique to each object in the scene 142 In one embodiment every object has a local center and coordinate system defined by the location and orientation of the object s pivot point The local center and coordinate system of an object combine to define that object s object space World space is the universal coordinate system used to track objects in a scene 142 World space relates the coor dinates defining an object to the other objects in the scene 142 An object in a scene is located in world space by that object s position rotation and scale its transforms Returning to the description of the ObjectSpaceModifier class instances of the subclasses of ObjectSpaceModifier modify an object in object space For example a bend is an object space modifier that causes an object s definition to change so that some portion of the object is bent relative to some other portion of that object The following describes the types of object space mo
37. in one embodi ment for use in step 1330 during the next iteration of these steps If the next element s validity interval is not valid for the predetermined period of time then the step 1350 is executed Otherwise step 1310 is executed At step 1350 the intermediate channel results generated in step 1310 are stored in a cache for this derived object Because of the tests performed in step 1330 and step 1340 the system knows that the data in the cache is valid for at least the next N frames Therefore the next time this channel is evaluated e g the next frame rather than evaluating all of the elements in the modifier stack 280 below the present element the derived object need only begin the evaluation at the next element in the modifier stack 280 for this channel At step 1360 the results of evaluating the last element in the modifier stack 280 are cached The results of the last element in the modifier stack 280 represent that channel s portion of the derived object 270 Therefore in one embodi ment if an derived object 270 is requested to provide its derived object representation 246 with nothing changed in the derived object 270 that derived object 270 need only provide the cached value This greatly reduces the number of evaluations performed in the system FIG 14 illustrates one example of the caching performed for the bound cylinder 810 In the example of FIG 14 the cache is shown for frame nineteen of the animation A
38. ject space modifiers the transform and then any world space modifi ers to generate the derived object representation 246 That is the master object 210 provides the basic description of the object This basic description is then provided to the first object space modifier in the modifier stack 280 The object space modifier modifies this basic description to generate a modified description The next object space modifier is then evaluated to modify the previous modified description This process continues until each object space modifier has been evaluated Importantly the object space modifiers are evalu ated in the order they appear in the object modifier stack 280 Next the transform 230 is evaluated Each derived object 270 has only a single transform 230 and that transform is always evaluated after the object space modifiers 220 If a user wishes to apply a transform before one or more object space modifiers the user can use an instance of the XForm object space modifier class After the transform 230 the world space modifiers 240 are evaluated The world space modifiers are evaluated in a manner similar to the object space modifiers In particular the world space modifiers 240 are evaluated in the order that they are added to the modifier stack 280 As noted above the modifier stack 280 makes modeling and animation significantly easier for the user Some advan tages of having the modifier stack 280 are described below 6 Using th
39. le of a waterfall Displace acts much like the ObjectSpaceModifier Dis place class except the effect is in world space Gravity simulates the effects of gravity on particles generated by a particle system object Gravity instances are directional To create a waterfall with a rock in the middle instances of Gravity and Deflector classes can be combined Ripple acts much like the ObjectSpaceModifier Ripple class except the effect 15 in ace Wave acts much like the ObjectSpaceModifier Wave class except the effect 15 in ace Wind simulates the effect of wind blowing particles generated by a particle system As noted above each Modifier subclass knows which objects it can modify In the above embodiment the Bomb Display Gravity Ripple and Wave classes modify geometric objects The Deflector Displace Gravity and Wind modifi ers modify particle system objects 20 25 30 35 40 45 50 55 60 65 10 One embodiment of the invention includes a plug in architecture that allows additional object space and world space modifiers to be added to the 3D modeling and ani mation application 145 vii Object As noted above the term object refers to something in the scene 142 In one embodiment all objects are defined by three general properties a collection of creation parameters a pivot point and a bounding box The properties describe the form local origin initial orientation and the extent of an obje
40. linder at frame twenty and changed the position of the bound cylinder 810 by modifying the values of the transform 230 for the bound cylinder 810 The 3D modeling and animation application 145 interpolated the values of the transform at the key frame zero and the key frame twenty to create the between frames including the between frame shown in FIG 9 FIG 11 shows the last key frame in the sequence frame thirty In this frame the bound cylinder 810 has not changed location because after frame twenty there were no more key frames that affected the bound cylinder 810 However frame thirty has a key value for the box 850 Thus the box 850 has continued to grow in size from frame twenty Again to enable the box to grow until frame thirty the user had previously changed the value of the transform in the modi fier stack 280 of the box 850 at frame thirty Importantly the user can animate many of the parameters in the modifier stacks 280 of the objects in a scene Thus the animation of objects is much easier than in previous sys tems 7 Caching As noted above one embodiment of the invention pro vides a significant speed increase over prior systems This embodiment of the invention achieves the speed increase by caching portions of the derived object representation 246 within each derived object 270 The following describes how the values of the derived object representation 246 are determined and then how these values are cached i C
41. llers which are not key based e g noise FIG 8 illustrates the beginning of a thirty frame anima tion sequence frame zero is shown in the frame indicator 840 FIG 9 illustrates results of the animation at frame fifteen FIG 10 illustrates the results of the animation at frame twenty FIG 11 illustrates the end of the animation sequence at frame thirty The elements in FIG 8 through FIG 11 are the bound cylinder 810 the wave world space modifier 800 and the box 850 The bound cylinder 810 is bound to the wave world space modifier 800 FIG 8 shows the bound cylinder 810 rendered to the left side of the perspective view The box 850 15 relatively short FIG 8 is a key frame that defines the position size rotation and the effects of any modifiers on the bound cylinder 810 and the box 850 at frame zero of the animation 20 25 30 35 40 45 50 55 60 65 14 FIG 9 shows the bound cylinder 810 partly translated to the right FIG 9 is not a key frame but an interpolated frame from the values defined in the frame zero key frame and the key frame at frame twenty Note that the wave world space modifier 800 has modified the look of the bound cylinder 810 Also shown in FIG 9 is that the box is now taller than in FIG 8 FIG 10 shows the key frame where the bound cylinder 810 has completed its translation across the screen To create this key frame the user accessed the modifier stack 280 of the bound cy
42. lso in this example only the topology channel 1210 and the geometry channel 1220 are shown The following describes how the steps of FIG 13 are used to cache intermediate results in the topology channel 1210 and the geometry channel for the bound cylinder 810 The value for X in step 1330 is ten in this example For the topology channel 1210 first step 1310 is executed which leads to step 1320 At step 1320 the cylinder master object is accessed the present element of the bound cylin der s modifier stack and the intermediate topology channel results are generated In this case the intermediate topology US 7 233 326 Bl 17 channel results are the GeometricObject instance topology definition with no modifications At step 1330 the topology channel validity interval 1411 for the cylinder master object is determined to be zero to infinity Also at step 1330 the validity interval 1411 is determined to be greater than ten frames therefore step 1340 is executed At step 1340 the validity interval 1415 for the transform 230 is determined to also be zero to infinity Therefore the intermediate topology channel results for the cylinder master object are not cached Step 1310 through step 1350 are repeated for each of the transform and the wave world space modifier 800 Because step 1340 evaluates as false during the processing of the elements effecting the topology channel 1210 no interme diate channel results are cached during
43. m that is simpler for the user to use by allowing the user to better understand how a particular modification to an object will affect the look of that object 20 25 30 35 40 45 50 55 60 65 2 SUMMARY OF THE INVENTION One embodiment of the invention includes a method of generating a three dimensional 3D representation of a modeled object on a display device of a computer system modeled object is represented by an initial definition of an object and a set of modifiers Each modifier modifies some portion of the definition of an object that may result in a change in appearance of the object when rendered The modifiers are ordered so that the first modifier modifies some portion of the initial definition of the object and produces a modified definition The next modifier modifies the results of the previous modifier The results of the last modifier are then used in rendering processes to generate the 3D repre sentation In one embodiment the modifiers are easily shared the order of the modifiers is easily changed and the values associated with the modifiers is also easily changed These features provide the user with great flexibility in modeling and animation In one embodiment the modifiers are associated with three dimensional visual representations that allow a user to better visualize and change the effect of a particular modi fier In one embodiment intermediate channel results created duri
44. n 19 2007 U S Patent eJnPi J meran Elote oha oer ool 6 oj X212 26 215 4 ozs kas 193 ERU lt o uS m uh i IM BIN V B 005 aqn JOY POW Set E donee AL SE EL SEE um pu y sman dno HPJ ll pennun xvi 010015 Qc zi US 7 233 326 B1 Sheet 6 of 14 Jun 19 2007 U S Patent 9 oJnDi Jj Herat s nv eorr eet scc MIU d KRESS gt 21 05 u ui 9j umop pug dn pug 21192 i vo eze ee ve o papoefqo 968 EL 0 08 sigjeueieg 7j AZZ ES CNN SNL UL LL LT E EL ee SAC Lu m J D X ES SES Te LLL EE AL SS SS SON o NTa Y EE SSABER VEEE SE 202 22 Can wwi 9758 puag 019 009 18 525 pueg pue 8 o 9411 cA i _ als 5 TEL RI JA DS BuJepusy SMa dnog HPI 913 qe CTA penn
45. ng the generation of a representation of an object are cached thereby increasing the speed of this embodiment In particular the representation of the object is generated in multiple channels each channel representing some portion of that representation Intermediate channel results are gen erated in each channel by elements in that object s list of modifiers Depending on for how long these intermediate channel results are valid the intermediate channel results may or may not be cached In particular in one embodiment if it is determined that one set of intermediate channel results will be valid for a predetermined period of time while the next intermediate channel results in that channel will not be valid for a predetermined period of time then the interme diate channel results are cached BRIEF DESCRIPTION OF THE DRAWINGS These and other features and advantages of the invention will become more apparent to those skilled in the art from the following detailed description in conjunction with the appended drawings in which FIG 1 illustrates a 3D modeling and animation system according to one embodiment of the invention FIG 2 illustrates a how objects are rendered in the 3D modeling and animation system of FIG 1 FIG 3 illustrates an object FIG 4 illustrates an object having an object space modi fier and corresponding gizmo FIG 5 illustrates a second object space modifier applied to the object of FIG 4 FIG 6 illustrat
46. nt and Trademark Office patent files or records but otherwise reserves all copyright rights whatso ever BACKGROUND OF THE INVENTION 1 Field of the Invention The invention relates generally to field of three dimen sional modeling and animation In particular the invention relates to an improved three dimensional modeling and animation system having an object oriented architecture 2 Related Art Three dimensional modeling systems allow users to gen erate models of three dimensional objects using computers In previous systems a user defines a simple three dimen sional 3D object and then applies various modifications e g stretch bend to that object The modifications change the way the object looks To apply a modification a user is prompted with a dialog box to fill in the values of the modification The user then applies the modification to the object and views the results One problem with such a system is that the user does not have a good idea of how a specific modification will affect an object until after the modification is applied to the object Additionally it can be difficult to understand exactly how a specific modification affects an object from the look of the object after the modification is applied This is because it can be difficult to understand the interactions between various modifications already applied to the object and the new modification Therefore it is desirable to have a 3D modeling syste
47. r defined by an z coordinate a scale along each axis and a rotation along each axis This is a great deal of information However by providing the user with a three dimensional representation of this modifier information the user can quickly visualize this information and change it thereby changing these values and in turn changing the effect of the modifier on the object US 7 233 326 Bl 9 In one embodiment world space modifiers also have gizmos In another embodiment an instance of a world space modifier uses a world space modifier object to change the parameters of the world space modifier vi World Space Modifier Like instances of the ObjectSpaceModifier class instances of the WorldSpaceModifier class affect the appear ance of other objects The difference being that world space modifiers affect objects in world space coordinates Also like the ObjectSpaceModifier class WorldSpaceModifier has a number of subclasses that can be instanced to modify objects in different ways One or more objects are modified by a world space modifier by binding those objects to the world space modi fier In one embodiment the binding process is performed by creating a reference between the world space modifier and each object that is bound to that world space modifier A world space modifier has no effect on an object in a scene 142 that is not bound to the world space modifier Impor tantly when multiple objects are bound to t
48. rs to the object in the order that the information for each modifier is stored in the modifier stack 3 The method of claim 2 wherein the application of the modifiers to the object creates a series of three dimensional representations of the object based on the object and the particular modifier that is being applied wherein each three dimensional representation of the object in the series is deformed with respect to the previous three dimensional representation of the object in the series 4 The method of claim 2 further comprising the steps of receiving information that defines an additional modifier wherein the information that defines the additional three dimensional modifier is not currently stored in the modifier stack and storing the information that defines the additional modi fier in the modifier stack 5 A computer readable medium carrying one or more sequences of instructions which when executed by one or more processors causes the one or more processors to perform the method recited in claim 1 6 A computer readable medium carrying one or more sequences of instructions which when executed by one or more processors causes the one or more processors to perform the method recited in claim 2 7 computer readable medium carrying one or more sequences of instructions which when executed by one or more processors causes the one or more processors to perform the method recited in claim 3 8 A computer reada
49. to be displayed because one object is blocking another object or because the user has requested that the object not be displayed Objects are described in greater detail below The scene 142 is made up of a number of nodes such as node 144 Each node is associated with some object In the example of FIG 1 the node 144 is associated with a derived tube 146 object The derived tube 146 is a model of a physical object in this case a tube that has been bent and twisted The bent and twisted tube is shown as the derived tube s graphical representation 134 Note the invention allows for much more visually complex objects to be rendered but for FIG 1 an example of a relatively simple object is described The derived tube 146 has a modifier stack labeled as tube modifier stack 199 The tube modifier stack 199 is a sim plified example of a modifier stack The modifier stack is described in greater detail below The tube modifier stack 199 includes the tube master 190 a parametric object the bend modifier 192 and the twist modifier 194 The tube master 190 includes a parametric definition of a tube e g a tube has an inner radius an outer radius and a height The bend modifier 192 modifies the definition of the tube so that the tube will appear bent The twist modifier 194 modifies the definition of the bent tube to that the bent tube is also twisted How the modifiers work in connection with the master objects 1s described in greater detail
50. to generate a descrip tion of a modified object labeled as the derived object representation 246 A more detailed description of the elements in the modi fier stack 280 is now provided The master object 210 includes a parametric definition of an instance of a subclass of Object e g the topology e g mesh direction of faces and geometry e g vertices and edges Importantly the user does not see the master object 210 but sees the rendered result of the modifiers and transform identified by the derived object 270 The object space modifier 220 is an instance of a subclass of the class ObjectSpaceModifier The transform 230 is responsible for transforming points in the object space coordinate system to corresponding points in the world space coordinate system Unlike modifiers the transform 230 are independent of an object s internal struc ture The transform 230 acts directly on the object s local coordinate system The local coordinate system for an object can be expressed as a matrix of values that specify the following information in world space position of the object s center rotation of the object in world space and the scale of the object along it local axes The world space modifier 240 is an instance of a subclass of the class WorldSpaceModifier The modifier stack 280 includes zero or more object space modifiers and world space modifiers In response to a request for a representation of itself the derived object 27
51. un xviW eipnis 08 US 7 233 326 B1 Sheet 7 of 14 Jun 19 2007 U S Patent eJnBi J 055 MOPUIM 39818 1 Gel 0 51228 sjoe qo 918301 pajas yo CNSR Be PY A ZL 981 1 IPS e Rm ut m e Re ae ree 014 009 ISIML 5 pue pue pusg pue peiqestq ym eqni pueg eqni eqni Jo 42215 Jeuipoy OS Tz D Dx di OI ES wel GS TS SEA EN _ _ Mp3 913 pennun xvW OPIS US 7 233 326 B1 Sheet 8 of 14 Jun 19 2007 U S Patent SEL 92ejJ9ju uoneuluy 5592019 uoneaj9 oj pug m m els 9 18 0 cune 8 NC LZ S LN M LL Eu Des LN NTN ASS BLAS KES a S 22222 IN NN IH TL LLG Dx ow OO es Wu TITIUS SD I ur VERO NACER AA NS RES UU JEDE S A ACE A 50 Eco eu V Ue LI M X L M A Butddew eje eueo O g ___ Bes 4 ____ 2 _____ 5695 yjbueq 1 HOF G 21 uM B
52. upport a technique called lazy evaluation Lazy evaluation increases the performance the 3D modeling and animation application 145 The purpose of lazy evaluation is to reduce the number of unnecessary calculations by not performing any evalua tions until specifically requested The following describes an example of lazy evaluation Assume that to properly render a first object that first object must receive data from a second object e g the first object includes an instance of a LinkedXForm which uses the local coordinate space of the second object to scale the first object LinkedXForms are described below This relationship is established via a reference from the first object to the second object If the data in the second object is changed then the second object will broadcast the change to the first object In lazy evaluation the first object does not recalculate any changed values e g its geometry parameters until the first object is specifically requested e g a request to provide a derived object representation described below In lazy evaluation the first object merely marks its dependent values as no longer valid Thus the first object does not precompute the new values until it needs to provide these values BaseObject BaseObject class includes the methods for providing a three dimensional graphical representation of an object on the display device 130 The BaseObject class includes methods for providing di

Download Pdf Manuals

image

Related Search

Related Contents

Toshiba V3100 Plus PC Desktop  Aerocool Strike X Combat  Immobiline DryPlate - GE Healthcare Life Sciences  RH850/F1x Starter Kit User`s Manual  Intel TS13X BXTS13X User's Manual    録音、という芸術 - ソニー製品情報  Media 1000 - User Manual - Eng  DELL UltraSharp U2713H  Emerson Fisher M Series Installation Instructions  

Copyright © All rights reserved.
Failed to retrieve file