A blog to help VTU BE/B.Tech/Computer Science Engineering students and other students to complete their Mini Projects in Open GL and main projects. Question papers, Mini Project Ideas,Computer Science Mini Projects, VTU previous year question papers are here to help the students.
The development of this project would improve the user’s knowledge about computer graphics and OpenGL. This project provides good understanding of OpenGL prominent functions like Transformation, Rotation and Clipping, scaling.
Keeping the factors of usability in mind we have develop this project to provide ease of use. This project will allow user to interact with it through the use of devices like keyboard or mouse.
This is a project mainly concern with 3D graphics implementation.
Aim of the project:
Some time it is necessary to display those object which are
Our aim is to draw attention of users toward computer graphics
Our aim is to create dominant project which is simple in use
Screen Shots
Disk shifting from one tower to other tower.
Towers rotated upwards using ‘up’ navigation key.
Towers rotated downwards using ‘down’ navigation key.
Towers rotated anticlock wise using ‘right’ navigation key.
Towers rotated clock wise using ‘left’ navigation key.
Reset position of disks on 1st tower.
Download Program Source Code here Download Full Project Reporthere
In this project we designed the simulation of windmill using OpenGL. We used transformation functions like translate and rotate functions to design blades of the windmill. We used many OpenGL inbuilt function to design the structure of windmill.
This projectconsist of many user defined function such as increasing windmill fan speed, decreasing windmill fan speed, side views, front and back views, custom angle of rotation of entire windmill structure.
It provides several options which can be interacted through menus. The user can also interact with program through mouse, keyboard functions. The options provided by the menu are views like side view, back view, front view, custom view. Using mouse, if we click left side it rotates to left and on successive clicking speed increases, if we click right button speed decreases and on successive clicking, it turns rotating towards right and vice versa.
We can rotate the entire windmill with respect to its axis using the arrow keys of keyboard. It can be rotate through 3600
Simulation of Windmill is a designed and implemented using a graphics software system called OpenGL which has became a widely accepted standard for developing graphic application. Using openGL functions user can create geometrical objects and can use translation, rotation, scaling with respect to the co-ordinate system.
The project Visual Transformation Techniques using openGL is based on Rotation and Translation processes using shading effects and is demonstrated using Visual C++.
The development of the Simulation of Windmill 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.
Simulation of Windmill consist of many user defined function such as increasing windmill fan speed, decreasing windmill fan speed, side views, front and back views, custom angle of rotation of entire windmill structure. All these function makes this project an example of animation in OpenGL.
Screen Shots
Screen displaying the menus
The above diagram shows the snapshothaving options such as Data_Structuresand displaying the menu which consists of.:-
Side View 1
Side View 2
Back View
Front View
Custom View
Back View
The above diagram shows the snapshot about the option of Back View , in which the Back View of the Windmill structure is displayed .
Side View 1
The above diagram shows the snapshot about the option of Back View , in which the Side View of the Windmill structure is displayed
Speed Tracking on Mouse Clicks
The above diagram shows the snapshot about the simulation of the windmill, When the wheel of the windmill is made to rotate using the Left and Right Button of the mouse.
When the Left Button of the mouse is clicked, it starts rotating and on further clicks the speed of the rotation increases.
When the Right Button of the mouse is clicked, the rotation speed decreases and finally comes to halt.
Free Movement using Keys
The above diagram shows the snapshot about free movement of the Windmill structure using the keys. The Right Arrow key is used to rotate the angle of the windmill structure clockwise, whereas the Left Arrow Key is used to rotate the angle of windmill structure anti-clockwise.
Initial screen
The above diagram shows the snapshot having the windmill. The objects are of windmill shape and are placed towards the right of the display window. And the display window is of size (600,600).
Download Program Source Code here Download Full Project Report here
A steam engine is a heat engine that performs mechanical work using steam as its working fluid. Heat is obtained from fuel burnt in a closed firebox .The heat is transferred to the water in a pressurized boiler, ultimately boiling the water and transforming it into saturated steam. Steam in its saturated state is always produced at the temperature of the boiling water, which in turn depends on the steam pressure on the water surface within the boiler. The steam is transferred to the motor unit which uses it to push on pistons to power machinery. The used, cooler, lower pressure steam is exhausted to atmosphere.
The project simulates the working of a steam engine. It illustrates how the linear motion of the piston is converted into rotary motion. The engine is initially at rest. On right clicking, the user is provided with a menu which provides five options-shaded, animate, increase speed, decrease speed, transparent.
The animate option starts the steam engine from rest or stops the engine if it is running. The speed of the engine can then be increased by the increase speed option or decreased by the decrease speed option. The texture of the engine can be changed by the shaded option.There are two textures. One being the normal solid fill and the other being wireframe. The transparent option makes the front portion of the cylinder transparent and shows the up and down motion of the piston.
The simulation helps in understanding the working of the engine. It clearly shows how the linear motion is converted into rotary motion.
Screen Shots
Screenshot showing the initial shaded model of the engine
Screen shot showing the wire frame model of the engine which is in motion and being rotated about the Y-axis
Computer Graphics is concerned with all aspects of producing pictures or images using a computer. We can create images that are indistinguishable from photographs of real objects. In other terms, Computer Graphics re the graphics created by the computers, and more generally, the representation and manipulation of image data by a computer.
The development of computer graphics has been driven both by the needs of the user community and by advances in hardware and software.
Typically, the term Computer Graphics refers to several different things.
· The representation and manipulation of image data by a computer.
· The various technologies used to create and manipulate images.
· The images so produced, and manipulating visual content.
1.2 History of Computer Graphics
The phrase Computer Graphics was coined in 1960 by William Fetter, a graphic designer for Boeing. The field of Computer Graphics developed with the emergence of computer graphics hardware. Early projects like the Whirlwind and SAGE projects introduced the CRT as a viable display and interaction interface and introduced the light pen as an input device.
Further advances in computing led to greater advancements in interactive computer graphics. In 1959, the TX-2 computer was developed at MIT's Lincoln Laboratory. A light pen could be used to draw sketches on the computer using Ivan Sutherland’s revolutionary Sketchpad software.
Also in 1961 another student at MIT, Steve Russell, created the first video game, Spacewar. E. E. Zajac, a scientist at Bell Telephone Laboratory (BTL), created a film called "Simulation of a two-giro gravity attitude control system" in 1963. In this computer generated film, Zajac showed how the attitude of a satellite could be altered as it orbits the Earth. Many of the most important early breakthroughs in computer graphics research occurred at the University of Utah in the 1970s.
The first major advance in 3D computer graphics was created at UU by these early pioneers, the hidden-surface algorithm. In order to draw a representation of a 3D object on the screen, the computer must determine which surfaces are "behind" the object from the viewer's perspective, and thus should be "hidden" when the computer creates (or renders) the image.
Graphics and application processing were increasingly migrated to the intelligence in the workstation, rather than continuing to rely on central mainframe and mini-computers. 3D graphics became more popular in the 1990s in gaming, multimedia and animation. Computer graphics used in films and video games gradually began to be realistic to the point of entering the uncanny valley. Examples include the later Final Fantasy games and animated films like The Polar Express.
1.3 Applications of Computer Graphics
The development of computer graphics has been driven both by the needs of the user community and by advances in hardware and software. The applications of computer graphics are many and varied. We can however divide them into four major areas.
· Display of information: More than 4000 years ago, the Babylonians developed floor plans of buildings on stones. Today, the same type of information is generated by architects using computers. Over the past 150 years, workers in the field of statistics have explored techniques for generating plots. Now, we have computer plotting packages. Supercomputers now allow researchers in many areas to solve previously intractable problems. Thus, Computer Graphics has innumerable applications.
· Design: Professions such as engineering and architecture are concerned with design. Today, the use of interactive graphical tools in CAD, in VLSI circuits, characters for animation have developed in a great way.
· Simulation and animation: One of the most important uses has been in pilots’ training. Graphical flight simulators have proved to increase safety and reduce expenses. Simulators can be used for designing robots, plan it’s path, etc. Video games and animated movies can now be made with low expenses.
· User interfaces: Our interaction with computers has become dominated by a visual paradigm. The users’ access to internet is through graphical network browsers. Thus Computer Graphics plays a major role in all fields.
1.4 Introduction to OpenGL
OpenGL is a software interface to graphics hardware. This interface consists of about 150 distinct commands that are used to specify the objects and operations needed to produce interactive three-dimensional applications. OpenGL is designed as a streamlined hardware-independent interface to be implemented on many different hardware platforms.
These are certain characteristics of OpenGL:
ü OpenGL is a better documented API.
ü OpenGL is much easier to learn and program.
ü OpenGL has the best demonstrated 3D performance for any API.
The OpenGL specification describes an abstract API for drawing 2D and 3D graphics. Although it's possible for the API to be implemented entirely in software, it's designed to be implemented mostly or entirely in hardware.
In addition to being language-independent, OpenGL is also platform-independent. The specification says nothing on the subject of obtaining, and managing, an OpenGL context, leaving this as a detail of the underlying windowing system. For the same reason, OpenGL is purely concerned with rendering, providing no APIs related to input, audio, or windowing.
OpenGL is an evolving API. New versions of the OpenGL specification are regularly released by the Khronos Group, each of which extends the API to support various new features.In addition to the features required by the core API, GPU vendors may provide additional functionality in the form of extensions. Extensions may introduce new functions and new constants, and may relax or remove restrictions on existing OpenGL functions. Vendors can use extensions to expose custom APIs without needing support from other vendors or the Khronos Group as a whole, which greatly increases the flexibility of OpenGL. All extensions are collected in, and defined by, the OpenGL Registry.
1.5 Introduction to GLUT
GLUT is the OpenGL utility toolkit, a window system independent toolkit for writing OpenGL programs. It implements a simple windowing API for OpenGL. GLUT makes it easier to learn about and explore OpenGL programming. GLUT provides a portable API so you can write a single OpenGL program that works across all PC and workstation OS platforms. GLUT is designed for constructing small to medium sized OpenGL programs.
While GLUT is well-suited to learning OpenGL and developing simple OpenGL applications, GLUT is not a full-featured toolkit so large applications requiring sophisticated user interfaces are better off using native window system toolkits.The GLUT library has both C, C++ (same as C), FORTRAN, and ADA programming bindings. The GLUT source code distribution is portable to nearly all OpenGL implementations and platforms.
1.6 Applications of OpenGL
ü OpenGL (Open Graphics Library)is a cross-language, multi-platform API for rendering 2D and 3D computer graphics.
ü The API is typically used to interact with a GPU, to achieve hardware-accelerated rendering.
ü It is widely used in CAD, virtual reality, scientific visualization, information visualization, flight simulation, and video games.
1.7 OpenGL primitives
OpenGL supports two classes of primitives:
· Geometric Primitives
· Image(Raster) Primitives
Geometric primitives are specified in the problem domain and include points, line segments, polygons, curves and surfaces.
Raster primitives, such as arrays of pixels pass through a separate parallel pipeline on their way to the frame buffer.