Academia.eduAcademia.edu

Object-oriented computer animation

Proceedings of the IEEE National Aerospace and Electronics Conference

https://doi.org/10.1109/NAECON.1989.40269

Abstract

Recent advances in computer graphics hardware offer an opportunity to extend 3D visualization techniques into a fourth dimension, time. But, computer animationthe control and display of models, cameras, and lights in a simulated worldis a complex process and software that performs animation should hide this complexity from users. Furthermore, because computer animation is not mature, modem animation systems should be designed to add innovative techniques without discarding investment in existing software. Praised by software researchers throughout the decade, object-oriented technology provides tools to deal with the complexity and change present in computer animation. Object-oriented design creates a natural partitioning of complex systems into manageable pieces called objects. allowing system architects to reuse existing software and to extend existing systems. We used the object-oriented paradigm to design and create the 3D computer graphics animation system OSCAR, the Object-oriented Scene AnimatoR. After a review of object-oriented terminology, we describe a design methodology, system architecture and implementation strategy for animation systems regardless of the object-oriented capabilities of the implementation environment.

Key takeaways
sparkles

AI

  1. OSCAR utilizes object-oriented design to streamline complex 3D animation processes for industrial applications.
  2. The system supports over 90 classes, emphasizing modular design and code reuse through inheritance.
  3. Key principles include information hiding, abstraction, and modularization, enhancing system manageability and evolution.
  4. OSCAR interfaces with existing scientific analysis programs to automate and enhance animation workflows.
  5. Understanding the animation process, from scripting to rendering, is crucial for effective use of OSCAR's capabilities.
OBJECT-ORIENTED COMPUTER ANIMATION William E. Lorensen Boris Yamrom GE Corporate Research and Development animation system; and describe an implementation in the language C. A short example illustrates the system. ABSTRACT 2. OBJECT-ORIENTED TECHNOLOGY Recent advances in computer graphics hardware offer an Object-oriented systems rely heavily on the software engi- opportunity to extend 3D visualization techniques into a neering concepts of fourth dimension, time. But, computer animation - the - Information hiding: Details of a system that do not af- control and display of models, cameras, and lights in a fect other parts of the system are not visible from the simulated world - is a complex process and software that outside. performs animation should hide this complexity from us- - Abstraction: Entities of a system are grouped according ers. Furthermore, because computer animation is not ma- to common properties and operations. ture, modem animation systems should be designed to - Modularization: Parts of a system that have localized add innovative techniques without discarding investment behavior are grouped together with well defined inter- in existing software. faces. Praised by software researchers throughout the decade, In object-oriented systems, these three principles comple- object-oriented technology provides tools to deal with the ment rather than compete with each other. complexity and change present in computer animation. Terminology Object-oriented design creates a natural partitioning of Object-oriented terminology combines the everyday terms complex systems into manageable pieces called objects. objects and inheritance, with unfamiliar ones, such as in- allowing system architects to reuse existing software and stances and message passing. Here, we define common to extend existing systems. object-oriented concepts as they are used in the paper; We used the object-oriented paradigm to design and Stefik and Bobrow [l] give more extensive definitions. create the 3D computer graphics animation system Object-oriented systems are characterized by abstract OSCAR, the Object-oriented Scene AnimatoR. After a re- constructs called objects that contain data and procedures view of object-oriented terminology, we describe a design to manipulate that data. The data describe the local state methodology, system architecture and implementation of an object and are only accessible to the outside world strategy for animation systems regardless of the through an object’s procedures, called methods. A method object-oriented capabilities of the implementation envi- is executed when the object receives a message. Objects ronment. communicate with other objects by sending messages. A 1. INTRODUCTION method dictionary maintains the correspondence between Two areas of computer science and computer graphics messages and methods. receive considerable attention in recent literature. Com- An instance is created by making a copy of a particular puter scientists tout the benefits of object-oriented sys- class of objects. Classes are templates for object creation, tems, promising benefits in system design that will sur- containing not only the data associated with the class, but pass those obtained using structured programming. Com- also the methods for manipulating the data. These data puter graphics researchers actively pursue realism, pro- are called instance variables. ducing high quality, three-dimensional animation sys- Through a mechanism called inheritance, new classes tems. obtain data and methods from other classes, changing or The following sections review object-oriented systems adding data and methods. Two types of inheritance exist and 3D computer animation; present a design methodol- in object-oriented systems: single and multiple. Using sin- ogy that applies an object-oriented philosophy to a 3D gle inheritance, a class inherits data and methods from at 588 CH2759-9/89/0000-0588 $1 .OO 1989 IEEE Q most one other class. On the other hand, multiple inheri- Identify the operations for each abstraction. tance permits a class to inherit from more than one class. The operations are the methods (or procedures) for Only the objects know their data structures and meth- each class. While some methods access and update in- ods. Nothing outside the object can directly access these stance variables, others execute operations singular to structures. If the implementation of an algorithm requires the class. If the new abstraction inherits from another change in the object's data structure, only the object itself class, inspect that class's methods to see if any need to feels this change. be overridden by the new class. A variety of systems are available that apply object- Identify the communication between objects. oriented techniques. Smalltalk-80 [2], developed at Define the messages that objects can send to each Xerox's Palo Alto Research Center (PARC), is a system other and suggest a correspondence between the meth- and language based solely on the object-oriented para- ods and the messages that invoke them. Even if an digm. Objective-C [3], a product of Stepstone, Inc., com- object-oriented implementation is not planned, mes- bines Smalltalk-style messaging, with the C language. sages help the design team communicate and can be C++ [4], from AT&T, is a superset of C that supports used in the next step, writing scenarios. classes and inheritance. Test the design with scenarios. 3. OBJECT-ORIENTED DESIGN Scenarios, consisting of messages to objects, test the Software engineers can apply the principles and proper- design's ability to match the system's requirements. ties of object-oriented systems to software design. This Write a scenario to satisfy each user level function in section describes an object-oriented methodology that is the requirements specifiqon. independent of the implementation. Apply inheritance where appropriate. Grady Booch [5] outlines an object-oriented design If the data abstraction process in step 1 proceeds top- methodology for the Ada"' language that does not ad- down, introduce inheritance there. However, if abstrac- tions are created bottom-up (often because the require- dress inheritance (since Ada does not support it) and im- ments directly name the abstractions), apply inheri- plies that object-oriented design can be done by extract- tance here, before going to another level of abstraction. ing nouns (objects) and verbs (methods) from a require- The goal is to reuse as much of the data and methods ments description. that have already been designed. At this point, com- We take an alternative approach that places more em- mon data and operations often surface and these com- phasis on the abstraction process and also deals with in- mon instance variables and methods can be combined heritance. This methodology is appropriate at the prelimi- into a new class. This new class may or may not have nary design stage, i.e. the architectural stage, of the soft- meaning as an object by itself. If its sole purpose is to ware engineering life cycle. The primary effort is to de- collect common instance variables and methods, it is fine and characterize the abstractions. This approach to called an abstract class. object-oriented design proceeds as follows: The designer repeats these steps at each level of ab- 1. Identify the data abstractions for each subsystem. straction. Through successive refinements of the design, Data abstractions are the classes of the system. Work- the designer's view of the system changes depending on ing from the requirements document, the abstraction the needs of the moment. Each level of abstraction is im- process starts top-down where possible, although many plemented at a lower level until a point is reached where times the requirements explicitly mention abstractions. the abstraction corresponds to a primitive element in the Often the classes correspond to physical objects within design. New levels of abstraction should provide some at- the system being modeled. This is, by far, the most tribute or operation that cannot be expressed at the previ- difficult step in the design process and the selection of ous lowest level. For example, the abstraction of geomet- these abstractions influences the entire system architec- ric primitives starts with a polygon, defines a rectangle at ture. the next level of abstraction, and follows with a square. 2. Identifi the attributes for each abstraction. The attributes become the instance variables for each 4. COMPUTER ANIMATION SYSTEMS instance of the class. Many times, for classes that cor- Computer graphics representations have progressed from respond to physical objects, the instance variables are the early use of lines to produce wire frame images of obvious. Other instance variables may be required to three dimensional models, through simple shaded presen- respond to requests from other objects in the system. tations, up to the current state-of-the-art realistic images. This is the result of success in defining more accurately Ada is a trademark of the Department of Defense the models' environment. Transparency, translucency, 589 shadows, illumination models, and surface properties are sity and commercial systems depend on artistic talent to a few areas where research continues to provide algo- communicate a message through the animation. In con- rithms that produce more acceptable synthetic images. trast, the industrial environment is driven by analyses of The current trend in computer graphics is to apply these modeled phenomenon. For example, an artist interpreting advanced techniques to produce quality animations. robot motion in a work environment may show the robot Related Work execute apparently realistic motions, whereas an indus- Although dozens of films produced using 3D computer trial robot motion must .be predicted by sophisticated graphics have appeared over the years, the literature con- kinematic analysis. After all, the intent of such an anima- centrates on the algorithms that produce the images, not tion is not to produce a pretty film but to gain insight into on the animation systems themselves. This is probably the interactions of the robot with its work environment. because few general purpose animation systems exist. Also, if the animation is used as a marketing tool, pro- Many computer-generated films are produced by execut- spective customers will not be impressed by an artist's ing a sequence of unrelated programs through the control interpretation of the robot behavior, but want to under- of command files. The major efforts seem to have been in stand how the commercial robot operates in a real envi- the areas of' image quality and realism, not on the anima- ronment. tion interfaces themselves. This is the key difference between this system and ASAS [CI], the Actor/Scriptor Animation System, was those described previously: this system relies on analysis used at Information International Inc., Ill, to produce se- rather than art. This raises an issue for industrial applica- quences for the Disney movie TRON [7]. ASAS, imple- tions: the analysis software often already exists with its mented in Lisp, relies heavily on object-oriented con- own user interface and data bases. cepts. ASAS actors are the participants in the animation, OSCAR, the Object-oriented Scene AnimatoR, provides communicating by sending and receiving messages. Cues an automated graphics animation capability to create, define actor behavior and their processing resides within control, and manage 3-D computer-generated animation the actors themselves. sequences. OSCAR automates the creation of high-quality MIRANIIbl [8] also extends a computer language, here film and video, showing the results of complex research, Pascal. Abstract graphical types describe the participants experiments, and other computer-generated analyses. Us- in the animation. A sequence of scenes comprise an ani- ing an object-oriented script language as the user inter- mation, where each scene is a sequence of statements ma- face, the animation system provides automatic control of nipulating actors, cameras, and lights. analysis, modeling, rendering, display, and filming proc- Clockworks 191, developed at Rensselaer Polytechnic esses. Interfaces have been developed for scientific analy- Institute, is a C-based object-oriented animation system sis programs in the areas of molecular modeling, mecha- that integrates modeling, animation control, and render- nisms analysis and robotics, with future interfaces ing. Both Clockworks and OSCAR use an animation script planned for structural analysis and fluid dynamics. The to control the animation process. The systems were devel- object-oriented design produced a system that lends itself oped in parallel and OSCAR benefits from the interactions to interfacing with existing and future in-house and exter- with the R.P.I. staff. The major differences lie in OSCAR'S nal software. ability to interface with external programs that often exist 5.1. The Animation Process in an industrial setting. A prerequisite to developing any software system, is un- Several commercial animation systems are available. derstanding the problem to be solved. As in all disci- Wavefront 'Technologies (Santa Barbara, CA) offers mod- plines, computer animation has its own terminology. Here eling, animation and rendering products that run on high we present the animation process, defining enough jargon performance graphics workstations. Videoworks E, (Mac- for the reader to understand the subsequent system de- roMind, San Francisco, CA) is a two dimensional anima- sign. tion system that runs on Apple Macintosh desktop sys- The user of a computer animation system acts as the tems. producer, writer and director of a film sequence. The pro- 5. OSCAR ducer manages the overall film production, keeping Industrial computer graphics applications share some schedules, assigning tasks, and organizing resources. The characteristics with those of the university and commer- writer creates a script based on the requirements of the cial film communities. Although software for modeling customer. The director controls the animation, positioning and rendering is common to both environments, univer- 590 the props, actors, cameras, and lights. Several steps are 6. Film Editing. Editors do post-production, creating ti- required to produce an animation. tles, credits, and special effects such as dissolves and A review of the process illustrates the steps that can fades that add a professional touch to the completed benefit from the computer animation system. sequence. 1. The Story. The writer, working with a customer, deliv- 7. Recording. Recorders select frames for the final se- ers a story that describes the role of each participant quence and expose film or video tape. including their appearance, dialog, and actions. Every 5.2. Major Subsystems film is made with some purpose in mind. It could be to The subsystem breakdown in OSCAR delegates authority verify or understand some mathematical algorithm as it for the steps in the animation process. Using an anthropo- relates to a physical phenomenon, to explain an ab- stract concept to an audience, to market a product, or morphic flavor throughout the descriptions maintains the to provide entertainment. Writing is an artistic process correspondence with conventional movie making meta- that is difficult to assist with the computer. phor. Figure l shows a diagram of the system. 2. The Script. The script contains the details of position- Interactions between objects and programs are de- ing and movement of the actors, cameras and lights in scribed below: the animation. OSCAR provides a language for script- 1. Director is a collection of objects that provide control ing to document changes and to produce the final ani- over all the components of OSCAR. The Director reads mation. The script can be written with a text editor, or and interprets a script, sending commands to the other created with the OSCAR Interactive Script Generator. modules to do the animation. OSCAR scripts contain statements in an object-oriented 2 . Interactive Script Generator provides a graphic user in- language developed as part of the system. terface for writing scripts. Scripts contain the instruc- 3. Simulations. For scientific applications, experiments tions describing what is to occur in the animation se- and simulations often provide the physics of the anima- quence. The Interactive Script Generator allows the user tion. Technical analysts setup and execute these simu- to position cameras, lights, and to describe the move- lations. For computer animations, these analysts are ment of objects while seeing a wire-frame image of the the scientists and engineers requesting the animation. objects that will be presented in the final film as realis- OSCAR assumes that most animations depend on some tic images. User inputs are interpreted and stored in a computer model. Analysis runs must be made to pro- script file. Although the Interactive Script Generator pro- vide the simulation results for the animation. OSCAR vides a user interface for both- the novice and experl- calls these simulation programs analysts. enced user, the experienced user can achieve more 4. Models. Each prop and actor in an animation must control by writing or editing the scripts with a text edi- have a geometric model. During the animation, the di- tor. rector moves the models around the environment. 3.'The Frame clerk keeps track of the location of each Some analyses have geometric models associated with finished frame of the film, notes whether it has been them, while others do not. For instance, a structural recorded, and archives frames when they are no longer engineer, doing a stress analysis of a turbine, models needed. Frames can be kept in several places: online the turbine with finite elements before the analysis is disk, magnetic tape, and optical video disk. run. Here, the model and analysis are tightly coupled: 4. Liaisons are interfaces between OSCAR and external both analysis and display require the same model. modules. The Liaisons translate OSCAR-specific infor- However, in a molecular mechanics calculation, simple mation into a form their assigned modules (analysts, Cartesian points model the atoms, and connectivity re- modelers, or renderers) can understand and vice- lationships model the bonds. Here, the rendering proc- versa. ess requires more sophisticated geometric models: 5 . Analysts are external programs that do analyses in a spheres and cylinders. Models are created by programs variety of scientific fields. The interfaces to these soft- called modelers. ware packages cannot be changed, so an analysis-spe- 5 . Rendering. This step applies computer graphics algo- cific liaison is the interface between each analyst and rithms to the computer geometric model, surface prop- OSCAR. erties, lighting, etc. and produces shaded images for 6. Modelers are external programs that create the geome- display. Rendering is done by programs called ren- try of the objects for the animation. Typically, they use derers. geometric primitives to build complex representations of structures. Modelers available for use include GEOMOD, Movie.BYU, Phigs+ [lo], and Synthavison. 591 Movie BYU Mechanismsanalysis Synthavislon Molecular MocW4ng Geomod wigs Movle.BYU Ray Tracer Synthavlsion Phigs Figure 1. System Overview argument:= VALUE I NAME I STRING Like the analysts, these systems also have defined inter- I " ( " argumentlist ") " faces, and each needs a liaison to translate between the I " [ " object messages "1 " director and the modeler. argument-list := argument I argument-list ", " argument 7 . Renderers are external programs and objects that take where, VALVE is a floating point number, NAME is a geometric information and environmental information string of characters, STRING is a quoted string, and PRE- (such as lighting and camera positions) from the script FIX is an optional string. Special characters at the start of and create frames for later display and filming. These a line allow the user redirect input and output, invoke renderers include Movie.BYU, Phigs+, and Synthavison. system routines, and print text at the terminal. The left There is a liaison object for each external renderer. and right square brackets allow the arguments to a mes- 8 . Frame editor objects do editing, and provide special ef- sage to be obtained from another object. The semantics of fects and titles. These objects operate on frames. messages are implemented within the objects themselves. 9. Recorder objects do the filming of the sequences. Steps The following rules for message suffixes illustrate mes- include obtaining finished movie frames from the frame sage semantics: clerk, displaying the images in a frame buffer, and re- ? requests for the value of an instance variable. cording the images on film or video disk. = sets an instance variable. 5.3. Animation Language : requires arguments, but does not specifically set an in- Our animation language uses one statement structure that stance variable. defines communication between objects. In an animation @ defines an index. script, the user specifies an object and the messages for +, -, /, *, and terminate arithmetic operation messages. that object. In the excerpts from the syntax description of ! ends messages with no arguments. the language that follow, capitalized items and characters within double quotes are terminal symbols: Messages to the same object can be concatenated on a statement:= object messages '' ; " statement. A typical statement is: object := NAME ACTOR new: Abox messages:= message I messages message position= (0,5,0)rotate-x: 30 message:= PREFIX "7" I PREFIX " I " color=(l,O.l) onl; I PREFIX " : " argument I PREFIX "=" argument This statement creates an instance of the class ACTOR I PREFIX "@" argument I PREFIX "+" argument with a position and color. The object is rotated about its I PREFIX "-" argument 1 PREFIX " I " argument local x axis. An alternate statement, that improves read- I PREFIX " ' "argument 1 PREFIX " ^ " argument ability, provides the same results as above: 592 Abox := ACTOR [ position= (0.5,O) rotate-x: 30 Cameras are the means by which the animation is color=(l ,O,l)on1 viewed. In our implementation, the Foley and Van 1: Dam [ll] viewing transformation pipeline is used. To make another box with the same instance variable Val- Cameras can be moved, rotated, and turned on and ues as the first, off. They have fields of view, up directions, and clip- Abox new: AnotherBox; ping planes. Cameras have no geometric representation A camera can be defined, so that if one is within the view of another, it is not CAMERA new: Acamera position= (0,20, 5) view-angle= 30: visible in the animation. Although multiple cameras and its view reference point can be set to the position of can be present in a scene, only one camera can be the box by sending a message to the box requesting its active at one time for a given renderer. position, Lights illuminate the scene. They have position, color, Acamera focal-point= [Abox position?]: and orientation. Lights can be moved and turned on 6 . OSCARCLASSES and off. Multiple lights can be active at one time. Currently over one hundred classes exist in the system. Renderers access cameras, lights, and the geometry and These classes were selected using the design process de- state of each actor to create raster or vector images. scribed in Section 3. A few of the classes are summarized When a renderer receives a render! message, it re- here: quests position and orientation information from its as- Actors are the geometric objects of the animation. They signed actors, lights, and cameras. Renderers that exist have position, origin, orientation, color, and visibility. as objects in the system, produce images interactively. Their visibility is controlled with on! and ofit messages. For external renderers, a renderer liaison creates a They have an associated model that is kept in a sepa- command file that can be run later to do the rendering. rate modeler object. By separating the actor’s state and An abstract renderer exists that specifies the protocol model, we can preview an animation with simple mod- for all renderers. To add a new renderer, the user must els, later substituting more sophisticated models for satisfy this protocol. slower, but higher quality animations. Editors are objects that contain cues and recorders. They Scenes contain cues and renderers. In addition, scenes are similar to scenes in that they send tick! messages to have durations (in seconds), resolution (in frames per each of their cues and record! messages to each of their second), and lists of actions to execute when they start, recorders. Editors manipulate the raster images created while they are active, and when they complete. An ac- by renderers. tion is any valid script statement. A scene executes ac- Recorders compose frames from multiple movie frames. tions by sending parse: messages to the parser with the Each recorder has a list of sequences of movie frames actions as arguments. Once a scene receives a start! that it can display and record. message, it executes any start actions, and sends tick! Other classes available within the system include matrix messages to each of its cues. After the cues complete, transformations, splines, scalars, vectors, key frames, and the scene sends a render! message to each of its ren- collections. derers. On a scene runs for its duration, it executes its 7. IMPLEMENTATION end actions and sends a complete! message to each ren- The system, written in C, runs on Digital Equipment Cor- derer. poration VAXs running VMS,@ Sun Microsystems work- Cues contain temporal information that controls the pres- stations running Unix,@ and a Stellar GSlOOO graphics ence and behavior of a scene’s participants. A start and computer (Newton, MA). The parser, produced using end time define the interval that a cue is active. Cues YACC [12] and LEX [13], is an object that other objects have clocks that advance at a cue-specific resolution. can send parse: messages to. Each class is a C module. C When a tick! message is received from another object struct’s define the instance variables, but the structures (typically a scene), the cue advances its clock and tests themselves are static so that they are not visible outside if it should become active. If so, it executes each of its the module. A standard header, required for each class, start and tick actions and advances its clock. As long as includes the object name, super class, debug information, a cue’s clock remains within the interval, the cue exe- and other general instance variables. cutes tick actions when it receives tick! messages. Once the interval is exceeded, the cue executes its end ac- V M S is a trademark of Digital Equipment Corporation tions. Unix is a trademark of Bell Laboratories 593 Every method is a C procedure and each class has a actor for each joint. It also generates cues for key work method dictionary that contains the name of each mes- points in the analysis. The ROBOT generator sends the sage and the appropriate procedure to invoke. Single in- script to the parser object and stores the script in a text heritance of both instance variables and methods has file that can be edited later. The notion of generators re- been implemented. The message handling is done through duces a user’s effort in starting a script while still main- a message object that receives an instance name or pointer, taining the flexibility offered by the language. message, and argument list. On receipt of a message, the 8.3. The Script message object searches the instance’s method dictionary. The scene has three cues. Pan moves the camera along a If it finds a match, it invokes the appropriate procedure. If path defined by a spline. Simulate sends a tick! to the RO- not, it searches the method dictionary of the object’s super BOT liaison object. When the ROBOT liaison object re- class. This continues until the highest object in the object ceives the tick!, it interpolates the transformations for hierarchy is reached, when the message object reports an each joint of the robot and sends position+ and orientation+ error to the user. An argument package, by keeping an messages to each joint’s actor. The cue labeled both, com- argument stack, allows methods to have variable numbers bines the pan and simulate cues, setting the start time for of arguments. Objects return and receive arguments the simulate cue to be 1 second, i.e. the robot movement through this mechanism. will start 1 second after the camera pan begins. The system now consists of over 120,000 lines of C -- First describe the scene code. C macros generate the code for data structures and SCENE new: scene-1 methods that query or update instance variables. A class cues = (pan, simulate, both) generator object automatically generates C code from a renderers = aPhigs script describing an object’s instance variables and meth- -- Next define the participants. ods. -- For brevity, we omit repetitive statements ROBOT new: Qe-rObOt 8. A SAMPLE ANIMATION time=0 A short animation illustrates the capabilities of the sys- transfile= trans2.dat tem. joint-1 =(robot-part-l-l) -- joints 2 - 9 skipped for brevity 8.1. The Analysis System joint-1 O= (robot-part-1 0-1 ) : The analysis package is an in-house system capable of COLLECTION new: robotparts predicting articulated robot motion given starting and end- members=(robot-part-1-1 , ing positions of a robot hand. The user of this system -- robot parts 2 - 9 skipped for brevity robot-part-1 0-1 ) : interactively prescribes key positions of the robot hand, and using kinematic techniques, the robot program pro- -- Each joint in the robot is an actor ACTOR new: robot-part-1-1 duces a graphic display of the motion of the robot. The modeler=modeI-l-l: program creates a file containing transformations for each -- robot part instances 2 - 10 skipped for brevity joint and member as it progresses through the simulation. -- Each actor has a modeler The analysis does not require elaborate geometric models, GEOMOD new: model-1-1 using prisms to model members and cylinders to model universal=trans3.uni joints. However, for animation purposes, more realistic object=transl : representations are used. Here, the robot has been mod- -- model instances 2 - 10 skipped for brevity -- Define cameras and lights eled using GEOMOD [14], a commercial modeling pack- CAMERA new: camera-1 age from SDRC. The transformations produced by the position=(228, 34.2, 90.0) simulation are applied to the vertices of the polygons pro- view-up=(O.O, 1) duced by GEOMOD. Liaisons for the robot simulation focal-point= (28 .O. 34.2, 36 .O) and GEOMOD provide the interfaces between each exter- view_angle=45 cIipping_range=(5.,700.) nal program and the animation system. A PHIGS+ ren- onl; derer produces the images on a Stellar computer. LIGHT new: light-1 8.2. Script Generators position= (camera-1 position?] on1; A robot has many components, but, rather than burden PHlGS new: aPhigs actors= robotparts the user with creating actors for each component, a RO- cameras= camera-1 BOT generator object scans user specified transformation lights= light-1 : and modeling, files and generates a script that defines an -- path circle, below, is a spline left out for brevity 594 CUE new: pan - The system is less fragile than others we have written. duration=[ge-robot duration?] We make changes and additions proceed without fear of start-actions= breaking the system. (”path-circle time = O;”, ”ge-robot time= 0.;) tick-actions = 10. ACKNOWLEDGMENTS “camera-1 position= ([path-circle tick!]);”; Object-oriented design methodology and computer graph- CUE new: simulate ics application development is a team effort in our labora- duration= [ge-robot duration?] tory. Other team members include: Michelle Barry (now start-action= ”ge-robot time= 0.; ” with Star Technologies) and Dan McLachlan (now with tick-action=”ge-robot tick1 ;” ; Ardent Computer). The Animation Project at the CUE new: both duration= [ge-robot duration?] duration+ 1 Rensselaer Polytechnic Institute Center for Interactive start-actions=” Computer Graphics contributed to the ideas described in ge-robot time= 0.; this system. Jon Davis of GE provided interfaces to the pan time=O start-0; simulate time=O start=l : robot simulation system. . 9. 11. REFERENCES -- Give start times for each cue pan start = 0; simulate start = [pan end?]; Stefik, M. and Bobrow, D., “Object-Oriented Pro- both start = [simulate end?]; gramming: Themes and Variations,” AI Magazine, -- Now run the animation vol 6, no 4, pp. 40-62, 1986. . scene-1 startl; Goldberg, A. and D. Robson, Smalltalk-80, The Lan- The animation script creates instances of classes (defined guage and Its Implementation, Addison-Wesley, in C modules) and specifies values for their instance vari- 1983. ables. The objects interact with each other by sending mes- Cox, B., Object-Oriented Programming, An Evolution- sages. The animation process begins with the message ary Approach, Addison-Wesley, 1986. start! to scene-1. This message causes scene-1 to advance Stroustrup, B., The C++ Programming Language, Ad- its own clock, send tick! messages to each of its cues, dison-Wesley, 1986. followed by render! messages to each of its renderers. The Booch, G., Software Engineering with Ada, Benjamin cues manipulate actors, cameras, and lights by sending Cummings Publishing, 1983. messages to them. The renderers, on receipt of a render! Reynolds, C., “Computer Animation with Scripts message, ask their associated actors, cameras, and lights and Actors,” Computer Graphics, vol. 16, no. 3, July for current settings, and produce appropriate movie 1982, pp. 289-296. frames. “Disney Takes the Lead with TRON,” Computer 9. SUMMARY Graphics World, vol. 5 , no. 4, April 1982, pp. 41-45. OSCAR made its first film in December 1984 when it con- Magnenat-Thalmann, N. and D. Thalmann, Com- sisted of twenty five classes including actors, cameras, puter Animation: Theory and Practice, Springer Ver- lights, scenes, cues and renderers. Since its initial imple- lag, 1985. mentation, OSCAR has grown to contain over ninety Breen, D., Apodaca, A. and P. Ghetto, “The Clock- classes, fifty eight of which are subclasses of the original works,” TR-86016, Rensselaer Polytechnic Institute classes, i.e. over half of the classes share code with other Center for Interactive Computer Graphics, 1986. classes. [ 101 “PHIGS+ Functional Description,” Computer During this project we have made several observations: Graphics, vol. 22, no. 3, July 1988. - Applying the data abstraction process to animation pro- [ l l ] J. Foley and A. Van Dam, Fundamentals of Interuc- duces a natural user interface with familiar terminol- tive Computer Graphics, Addison-Wesley, 1982. ogy. [12] S. Johnson, YACC: Yet Another Compiler Compiler, - The abstraction step of the design is critical and re- Comp. Sci. Tech. Rep. No. 32, Bell Laboratories, quires the most effort.. Murray Hill, New Jersey, 1975. - The object-oriented approach partitions a complex sys- [13] M. Lesk, LEX - A Lexical Analyzer Generator, Comp. tem into manageable pieces. No single object is com- Sci. Tech. Rep. No. 39, Bell Laboratories, Murray plex, but the system as a whole can deal with the com- Hill, New Jersey, 1975. plexity of the modeled process. [ 141 GEOMOD Reference Manual, Structural Dynamics Research Corporation, 1983. 595

References (12)

  1. REFERENCES
  2. Stefik, M. and Bobrow, D., "Object-Oriented Pro- gramming: Themes and Variations," AI Magazine, vol 6, no 4, pp. 40-62, 1986.
  3. Goldberg, A. and D. Robson, Smalltalk-80, The Lan- guage and Its Implementation, Addison-Wesley, 1983.
  4. Cox, B., Object-Oriented Programming, An Evolution- ary Approach, Addison-Wesley, 1986.
  5. Stroustrup, B., The C++ Programming Language, Ad- dison-Wesley, 1986.
  6. Booch, G., Software Engineering with Ada, Benjamin Cummings Publishing, 1983.
  7. Reynolds, C., "Computer Animation with Scripts and Actors," Computer Graphics, vol. 16, no. 3, July "Disney Takes the Lead with TRON," Computer Graphics World, vol. 5 , no. 4, April 1982, pp. 41-45.
  8. Magnenat-Thalmann, N. and D. Thalmann, Com- puter Animation: Theory and Practice, Springer Ver- lag, 1985.
  9. Breen, D., Apodaca, A. and P. Ghetto, "The Clock- works," TR-86016, Rensselaer Polytechnic Institute Center for Interactive Computer Graphics, 1986. . 1982, pp. 289-296.
  10. "PHIGS+ Functional Description," Computer Graphics, vol. 22, no. 3, July 1988. [ l l ] J. Foley and A. Van Dam, Fundamentals of Interuc- tive Computer Graphics, Addison-Wesley, 1982.
  11. S. Johnson, YACC: Yet Another Compiler Compiler, Comp. Sci. Tech. Rep. No. 32, Bell Laboratories, Murray Hill, New Jersey, 1975.
  12. M. Lesk, LEX -A Lexical Analyzer Generator, Comp. Sci. Tech. Rep. No. 39, Bell Laboratories, Murray Hill, New Jersey, 1975.

FAQs

sparkles

AI

What specific advantages does object-oriented design provide for animation systems?add

The study finds that object-oriented design simplifies complexity by partitioning systems into manageable pieces, enhancing maintainability and scalability. Research illustrates that changes can be made without fear of breaking the entire system, as highlighted in OSCAR's development.

How does OSCAR interface with existing software for animation tasks?add

OSCAR uses specific liaison objects to translate data among various external programs like modelers and analysts. This design allows seamless interaction with existing software, ensuring compatibility with tools used in fields such as robotics and fluid dynamics.

What role does inheritance play in object-oriented animation systems?add

The research demonstrates that single and multiple inheritances allow new classes to derive attributes and behaviors from existing classes, thus promoting code reuse. OSCAR's inheritance model enables over half of its 90 classes to share code, enhancing efficiency in design.

How does OSCAR’s scripting language facilitate animation creation?add

The animation scripting language allows users to define object interactions and specify messages succinctly using natural terminology. By using a concise statement structure, OSCAR streamlines the process of creating and managing complex animation sequences.

What empirical evidence supports the effectiveness of OSCAR's animation process?add

OSCAR has successfully produced animations since its first film in December 1984, demonstrating evolution from 25 to over 90 classes. Quantitative analysis indicates that the object-oriented approach has made the system significantly less fragile compared to previous models.

About the author
Papers
30
View all papers from Boris Yamromarrow_forward