CONTENTS
CHAPTER NO. CHAPTER 1 1.2 TITLE INTRODUCTION 1.1 Introduction Computer Graphics Open GL 1.3 1.4 1.5 1.6 CHAPTER 2 Problem Section Statement Existing System Proposed System Objectives Of The Project 4 5 5 6 6 7 PAGE NO. 3-6 3
SPECIFICATION REQUIREMENTS 2.1 USER REQUIREMENTS 2.2 SOFTWARE REQUIREMENTS 2.3 HARDWARE REQUIREMENTS 2.4 DEVELOPMENT PLATFORM DESIGN IMPLEMENTATION TESTING 8
CHAPTER 3 CHAPTER 4 CHAPTER 5 13
CHAPTER 15 CHAPTER 7
SNAPSHORTS
CONCLUSION
Water Ripple Effect
LIST OF FIGURES
Figure 1.1 : : Library Organization of OpenGL Figure 1.2 : : Graphics system as black box Figure 3.1 : : Flowchart Figure 6.1 : : Water image in Red color Figure 6.2 : : Water image in Blue color Figure 6.3 : : Ripple formations in water Figure 6.4 : : Water pool with ripple at some angle Figure 6.5 : : Perspective viewing of waterpool from a distance
Dept of CSE,SCE
Page 2
Water Ripple Effect
CHAPTER 1
INTRODUCTION
1.1 INTODUCTION TO COMPUTER GRAPHICS:
Computer Graphics is concerned with all aspect of producing pictures or image using computer. The field began humble almost 50 years ago, with the display of few lines on the cathoderay tube(CRT); now, we can create image using computer that are indistinguishable from photographs from the real objects. We routinely train pilots with simulated airplane, generating graphical display of the virtual environment in the real time. Feature length movies made entirely by computer have been successful, both critically and financially; massive multiplayer game can involve tens of thousands of concurrent participants. Graphics is created using computers and, more generally, the representation and manipulation of pictorial data by a computer. The development of computer graphics has made computers easier to interact with and better for understanding and interpreting many types of data. Developments in computer graphics have had a profound impact on many types of media and have revolutionized the animation and video game industry. The phrase Computer Graphics was coined in 1960 by William Fetter, a graphic designer for Boeing. In todays world advanced technology, interactive computer graphics has become a powerful tool for the production of realistic features. Todays we find computer graphics used in various areas that include science, engineering, medicine, business, industry, art, entertainment etc. The main reason for effectiveness of the interactive computer graphics is the speed with which the user can understand the displayed information.The graphics in openGL provides a wide variety of built-in function. The computer graphics remains one of the most exciting and rapidly growing computer fields. It has become a common element in user interface, data visualization, TV commercials, motion picture and many other applications.
Dept of CSE,SCE
Page 3
Water Ripple Effect
1.2 INTRODUCTION TO OPEN GL (Open Graphics Library):
OpenGL has become a widely accepted standard for developing graphics application. OpenGL is easy to learn, and it possesses most of the characteristics of other popular graphics system. It is topdown approach. OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL was developed by Silicon Graphics Inc. (SGI) in 1992 and is widely used in CAD, virtual reality, scientific visualization, information visualization, and flight simulation. It is also used in video games, where it competes with Direct3D on Microsoft Windows platforms. The interface between the application program and the graphics system can be specified through that set of function that resides in graphics library. The specification is called the APPLICATION PROGRAM INTERFACE (API). The application program sees only the API and is thus shielded from the details both the hardware and software implementation of graphics library. The software driver is responsible for interpreting the output of an API and converting these data to a form that is understood by the particular hardware. Most of our applications will be designed to access openGL directly through functions in three libraries. Function in the main GL library have name that begin with the letter gl and stored in the library. The second is the openGL utility Library (GLU). This library uses only GL function but contains codes for creating common object and viewing. Rather then using a different library for each system we used available library called openGL utility toolkit (GLUT). It used as #include<glut.h> A graphics editor is a computer program that allows users to compose and edit pictures interactively on the computer screen and save them in one of many popular bitmap or raster format.The applications of computer graphics in some of the major areas are as follows
Dept of CSE,SCE
Page 4
Water Ripple Effect
Display of information. Design. Simulation and Animation. User interfaces.
FIG1.1:Library operations of opengl
GLU
OpenGl Applicati on
GL Xlib,Xtk
Frame Buffer
GLUT
GLX
OpenGL is a software interface to graphics hardware. This interface consists of about 150 distinct commands that you use to specify the objects and operations needed to produce interaction.
1.3
EXISTING SYSTEM
OpenGL can be used to draw 3D objects like sphere, cube and lines using homogeneous coordinate system. We use these representations to create our project, also using various Interactive computer graphics is the most important means of producing pictures since the invention of photography and television existing functions for the various other features that are added to the project Dept of CSE,SCE Page 5
Water Ripple Effect
1.4 PROBLEM SECTION STATEMENT
Computer graphics is no longer a rarity. It is an integral part of all computer user interfaces, and is indispensable for visualizing 2D; 3D and higher dimensional objects .Creating 3D objects, rotations and any other manipulations are laborious process. Implementation using OpenGL provides more features for developing 3D objects with few built in functions. The geometric objects are the building blocks of any individual .Thereby developing, manipulating, applying any transformation, rotation, scaling on them is the major task of any image development. Thereby we have put our tiny effort to develop watery image, and perform different operations on them by using OpenGL utilities. Fig 1.2:Graphic system as black box
Application Program
Graphics system
Ip/op devices
1.5 OBJECTIVES OF THE PROJECT
Developing a package using computer graphics with OpenGL. Implementing certain technical concept like Translation, motion,scaling and use of Idle Function. How to use Lightning effects used to produce computer animation Providing facility to view the object in different view like front view, sideview etc,.
Dept of CSE,SCE
Page 6
Water Ripple Effect
CHAPTER 2
SPECIFICATION REQUIREMENTS
2.1 User Requirements:
Easy to understand and should be simple. The built-in functions should be utilized to maximum extent. OpenGL library facilities should be used.
2.2 Software Requirements:
Any Windows OS. Microsoft Visual Studio 2005 (or) Microsoft Visual C++ CODING LANGUAGE :C, C++
2.3 Hardware Requirements:
Processor- Intel or AMD(Advanced Micro Devices) RAM- 512MB(minimum) Hard Disk-300MB(minimum) Mouse Keyboard Monitor Dept of CSE,SCE Page 7
Water Ripple Effect
CHAPTER 3 DESIGN 3.1 FLOWCHART
Dept of CSE,SCE
Page 8
Water Ripple Effect
START
MAIN
INITIALIZE CALLBACK FUNC
MOUSE BOTTON Righ t click
Blue Color
Red Color
Green Color
Other Function
Zoom In
Zoom Out
Angle Of View
Full Screen
Small Screen
Keyboard func
STOP
Dept of CSE,SCE
Page 9
Quit
Water Ripple Effect
CHAPTER 4
IMPLEMENTATION
In this project we have used some of the built in functions and library functions defined in glut header files. Description of <GL/glut.h> header file The header file <GL/glut.h> includes the standard commands that help us in
executing the OpenGL codes. It supports inbuilt functions. Below listed are some of the standard commands that are included in this project.
BUILT IN FUNCTIONS
1. voidglutInit ( intargc, char **argv) The interaction between the windowing system and OpenGL is initiated. The two arguments allow the user to pass command-line arguments, as in the standard C main function.
Dept of CSE,SCE
Page 10
Water Ripple Effect
2. voidglutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH) It specifies RGB color, a depth buffer for hidden-surface removal, and double buffering.
3. voidglutInitWindowSize(intwidth,int height) It specifies the initial height and width of the window in pixels.
4. voidglutReshapeFunc(void *f(intwidth,int height)) It registers the callback function f. The callback function returns the height and width of the window. The reshape callback invokes a display callback.
5. voidglutDisplayFunc(void (*func)(void)) It registers the display function func that is executed when the window needs to be redrawn.
6. voidglViewport(intx,inty,GLsizei width, GLsizei height) It specifies a widthheight viewport in pixels whose lower-left corner is at (x,y) measured from the origin of the window.
7. voidglutSwapBuffers( ) Swaps the front and back buffers. The front buffer is always the one displayed, whereas the back buffer is the one into which we draw.
8. voidglPushMatrix() void glPopMatrix( ) It pushes to and pops from the matrix stack corresponding to the current matrix mode.
9. voidglRotate[fd](TYPE angle,TYPE dx, TYPE dy, TYPE dz) It alters the current matrix by a rotation of angle degrees about the axis(dx,dy,dz). TYPE is either GLfloat or GLdouble. Dept of CSE,SCE Page 11
Water Ripple Effect
10. voidglTranslate[fd] (TYPE x, TYPE y, TYPE z) It alters the current matrix by a displacement of (x,y,z). TYPE is either GLfloat or GLdouble.
11. voidglEnable(GLenum feature) It enables an OpenGL feature.
12. voidglMatrixMode(GLenum mode) specifies which matrix will be affected by subsequent transformations mode can be GL_MODELVIEW,GL_PROJECTION,or GL_TEXTURE.
13. voidglLoadIdentity() sets the current transformation matrix to an identity matrix.
14. voidglortho(GLdoubleleft,GLdoubleright,GLdoublebottom,GLdoubletop,GLdoublen ear,GLdouble far) Defines an orthographic viewing volume with all parameters measured from the center of the projection Plane.
15. void glOrtho2D(GLdoubleleft,GLdoubleright,GLdoublebottom,GLdouble top) defines a two-dimensional viewing rectangle in the plane z=0.
16. voidglBegin(glEnum mode) Initiates ia new primitive of type mode and starts collection of vertices.Values of mode include GL_POINTS,GL_LINES,GL_POLYGON.
17. voidglEnd() Dept of CSE,SCE Page 12
Water Ripple Effect
Terminates a list of vertices.
18. voidglutMouseFunc(void *f(intbutton,intstate,intx,int y) registers the mouse callback function f.thecallback function returns the button (GLUT_LEFT_BUTTON,GLUT_MIDDLE_BUTTON,GLUT_RIGHT_BUTTON),the state of the button after the event(GLUT_UP,GLUT_DOWN),and the position of the mouse relative to the top-left corner of the window.
19. void key(unsigned char key,int x ,int y) This function is used assign various key to function.
20. void display( ) This function is used to display different objects.
Dept of CSE,SCE
Page 13
Water Ripple Effect
CHAPTER 5
TESTING
The general testing process that started with the testing of individual program units such as functions or objects. The model of testing process is appropriate for large systems, or for systems that are developed through reuse. The fundamental testing activities are Component testing: Testing the parts of system. System testing: Testing the system as whole.
GOALS OF TESTING:
The general aim of testing is to affirm the quality of software systems by systematically exercising the software in carefully controlled circumstances.
Dept of CSE,SCE
Page 14
Water Ripple Effect
Serial no 1.
Test case description Right click the display screen
Expected result Menu with
Actual result Menu with Green Red Blue Shape Change Quit Is displayed
Remarks Pass
mouse button on Green Red Blue Shape Change Quit Should be displayed
Serial no 2.
Test case description Click on Green
Expected result The Color of the image of water on the display screen is changed to Green. Should happen.
Actual result The Color of the image of water on the display screen is changed to Green. Happens.
Remark Pass
3 4
Click on Click on Red Blue
The Color of the The Color of the image of water on the image of water on the display screen is display screen is changed to Red. changed to Blue. Should happen. Should happen. A submenu with options to change the shape of water image. Must be displayed
The Color of the The Color of the image of water on the image of water on the display screen is display screen is changed to Red. changed to Blue. Happens. Happens. A submenu with options to change the shape of water image Is displayed
Pass Pass
Click on Change Shape
Pass
Dept of CSE,SCE
Page 15
Water Ripple Effect
CHAPTER 6
SNAPSHOTS SNAPSHOT 1:
Fig 6.1: Water image in Red color.
Dept of CSE,SCE
Page 16
Water Ripple Effect
SNAPSHOT 2:
Fig 6.2: Water image in Blue Color.
Dept of CSE,SCE
Page 17
Water Ripple Effect
SNAPSHOT 3:
Fig 6.3: Ripple Formations in water.
Dept of CSE,SCE
Page 18
Water Ripple Effect
SNAPSHOT:4
Fig 6.4: WATERPOOL WITH RIPPLE AT SOME ANGLE
Dept of CSE,SCE
Page 19
Water Ripple Effect
SNAPSHOT:5
Fig 6.5: PERSPECTIVE VIEWING OF WATER POOL FROM A DISTANCE
Dept of CSE,SCE
Page 20
Water Ripple Effect
CHAPTER 7
CONCLUSION
An attempt has been made to develop an OpenGL package which meets necessary requirements of the user successfully. Since it is user friendly, it enables the user to interact efficiently and easily. The development of the mini project has given us a good exposure to OpenGL by which we have learnt some of the technique which help in development of animated pictures, gaming. Hence it is helpful for us even to take up this field as our career too and develop some other features in OpenGL and provide as a token of contribution to the graphics world. The mini project developed has a scope for future enhancement too as follows Making the water seem more realistic. Adding lighting effects etc,. By implementing a project using Open GL we came to know how to use The functions like menus, rotation, translation and scaling.
FUTURE ENHANCEMENT
This project has been designed using C++, which works on the Windows platform. The project can be designed using other languages and better graphical interfaces .The following features have been incorporated Resizing windows Page 21
Dept of CSE,SCE
Water Ripple Effect
Choosing color
BIBLIOGRAPHY
The books and the other sources we referred while doing this project are as follows:
REFERENCES: Interactive Computer Graphics A Top-Down Approach Using OpenGL.
Computer Graphics Using OpenGL F.S Hill, Jr.,2nd Edition, Pearson
Education ,2001
Computer Graphics James D Foley , Andries Van Dam , Steven K Feiner ,
John F Hughes , Addison Wesley
ONLINE REFERENCES: www.codecolony.de/opengl www.openGL.org www.SourceCodeWorld.com www.openglprojects.in
Dept of CSE,SCE
Page 22
Water Ripple Effect
Dept of CSE,SCE
Page 23