160 likes | 173 Views
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.
E N D
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
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.
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.
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?