GORT: Specifications Leon Kania – Haipin Cua – Thoren McDole – Chang Huang
Application Educational tool and a programming utility for programmers who wants to visually design and build 3D objects. –Educational: A programmer can draw 3D objects, output the code, and be able to learn OpenGL by dissecting code. –Programming Utility: Facilitates visual design of 3D objects and their environment. A programmer may output working code and modify it to suit his/her purposes.
Requirements: Functional File Management –New, Open, Save, Save As Edit Capabilities –Cut, Copy, Paste, Delete, Select, Select Inverse, Undo, Redo, Group, Ungroup View Capabilities –Zoom In/Out, Orthogonal View, Pan, Free Rotate Transform Capabilities –Affine transformations and perspective transformations Scale, Rotate, Translate, Shear
Requirements: Functional Draw Primitives –Box, Sphere, Cone, Cylinder, Pyramid, Plane Compose Primitives –Union, Intersection, Subtraction Add Material –Color, Reflective Properties (interaction with environment), opacity. Export file –OpenGL
Composition Mechanism
Requirements: Non-Functional Program for Unix environment C/C++, GTK+2.0, OpenGL, XML, gtkGL extensions, STL Extensible –Underlying code is going to be designed to be simple and organic. Portable –OpenGL centric but underlying classes are going to be designed so that other graphics API can be easily accommodated.
Requirements: Non-Functional Implicit and Parametric Definitions.
Screen Shot
Use Cases
Detailed Use Case
Scenario Draw Primitive –User selects box primitive –User specifies a center point in space by clicking on one of the view ports. The unspecified axis defaults to zero. –User drags to change initial scale. Initial scale is the distance between the initial click and the unclick. –Object is now drawn. –User copies and paste box primitive in the exact same location. –User translates the pasted box object by x number of units upward. –User applies a uniform scale reducing the size of the pasted box. –User subtracts the pasted box from the original box.
Scenario
Future Extensions Export to other formats. –3D Studio Max, Corel, Jpeg, GIF, Bitmaps, etc. More Objects –Geo-sphere, Capsule, Disc, Torus, Tea-pot, Spirals, Text, 2D Objects, NGons, Curves, etc. Advance Representations of Current Primitives –Bezier, NURBS, and other Splines. Lights and Cameras
Future Extensions Animation –Robotics, Shrek, etc. Environmental Effects –Fog, Combustions, Reflections, etc. Rendering Techniques –Ray Tracing Multi-Threading –Simultaneous rendering by multiple machines. –Simultaneous editing by multiple artists.
Questions Why did the chicken cross the road?