You are on page 1of 29

VISVESVARAYA TECHNOLOGICAL UNIVERSITY

“JNANA SANGAMA”, BELGAUM - 590018

2021-22

COMPUTER GRAPHICS AND VISUALIZATION [18CS62]


Mini Project Report
On

3D HOUSE

SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENT IN 6TH SEMESTER


COMPUTER GRAPHICS AND VISUALIZATION (18CS62) OF BACHELOR OF ENGINEERING
IN

By

GAYATHRI M 4VM19CS018
MONIKA H M 4VM19CS030

UNDER THE GUIDANCE OF

Ms. Kavya R Mr. MADHUSUDHANA .G.K


Assistant Professor Assistant Professor
Dept. of CSE,VVIET Dept. of CSE, VVIET

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

VIDYA VIKAS INSTITUTE OF ENGINEERING & TECHNOLOGY


#127-128, Mysore - Bannur Road, Alanahally, Mysuru, Karnataka -570028
Vidya Vikas Educational Trust ®
VIDYA VIKAS INSTITUTE OF ENGINEERING &
TECHNOLOGY
#127-128, Mysore - Bannur Road, Alanahally, Mysuru, Karnataka 570028

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

CERTIFICATE
Certified that the DBMS Mini Project Work entitled “3D HOUSE” carried out by
GAYATHRI M [4VM19CS018] and MONIKA H M[4VM19CS030], Bonafede
students of VVIET in partial fulfillment for the award of degree Bachelor of Engineering in
COMPUTER SCIENCE and ENGINEERING as prescribed by VISVESVARAYA
TECHNOLOGICAL UNIVERSITY, BELGAUM during the academic year 2021-22. It is
certified that all corrections/suggestions indicated for internal assessment have been
incorporated in the report deposited in the departmental library. The project report has
been approved as it satisfies the academic requirements in respect of mini project work
prescribed for the said degree.

[Ms. Kavya R] [Mr. MADHUSUDHANA GK]


Assistant Professor Assistant Professor

Dept. of CSE Dept. of CSE

EXTERNAL VIVA
Name of the examiners Signature with date

1.

2.
ACKNOWLEDGEMENT

We would like to thank and express our heartfelt gratitude to God almighty for the
abundant blessings without which this project would not have been successful.
We would like to express our sincere gratitude to Sri. Vasu, Chairman of VVIET, Mr.
Kaveesh Gowda V, Secretary of VVIET and all management members of VVIET, for their
constant support.
We acknowledge and express our sincere thanks to our beloved Principal
Dr. Manjunatha T S, VVIET, Mysuru who is the source of inspiration.
We would like to express our deepest sense of gratitude towards Dr. Madhu B K, Head
of the Department, CSE, VVIET, Mysuru for his valuable suggestions, support and
encouragement.
We would like to extend our heartfelt gratitude to Ms. Kavya R, Assistant Professor,
and Dept. of CSE, and Mr. MADHUSUDHANA GK, Assistant Professor, and Dept. of CSE
for the valuable guidance and advice. We would also like to thank him for his guidance and
useful suggestions, which helped us in completing the project work on time.
We would also thank all other teaching and non-teaching staffs of the computer
Science Department who has directly or indirectly helped us in completion of this project.
Our thanks and appreciation also go to our family and friends who have willingly
helped us out with their abilities.

Regards,

Gayathri M

Monika H M
ABSTRACT

Computer Graphics has grown into a very important topic in the branch of Computer
Science. This is due to an effective and rapid communication formed between man and the
machine. Human eye can absorb the information in a displayed diagram or perspective diagram
much faster than it can scan a page or atable of contents.

This project “3D HOUSE” implements the view of a 3D House both inside and outside of the
house. There are 5 components that are placed inside the house they are a fan, sofa, tv, a table, and a
teapot placed on the table. The outside of the house has trees and a system made for collecting
rainwater(rainwater harvesting). The house is surrounded by a compound wall. The APIs that are
used in implementing these components are glutSolidCube(), glutSolidTeapot(),glutSoildCone()…
etc .

The code implemented makes use of various OpenGL functions for translation,
rotation and keyboard callback function, built-in functions for solidsand many more. The
concepts of computer graphics stand a backbone to achievethe aforementioned idea. Primitive
drawing, event driven interactions and basic animation have been the important concepts
brought out by this application.

ii
TABLE OF CONTENTS

Acknowledgement i

Abstract ii

Table of contents iii

1. Introduction 1-4

1.1 Aim 4

1.2 Problem statement 4

1.3 Scope and its applications 4

2 Literature Survey 5-5

2.1 Related work 5

3. System Analysis 4-11

3.1 System development 6

3.2 Language platform 7

3.3 Existing Systems 8

3.4 Proposed System 8

3.5 Flowchart and process description 9

3.6 Requirement specifications 10

3.7 Hardware requirements 10

3.8 Software requirements 10

3.9 Functional And Non-functional requirements 12

iii
4. Design and Analysis 13-15

4.1 System Design 13-14

4.2 Methodology 15

5. Implementation 16-17

6. Snapshots 18-20

Conclusion 21
Limitations 21
Future Enhancement 22

References 22

iv
3D

CHAPTER 1

INTRODUCTION

What is OpenGL?
OpenGL is a software interface to graphics hardware. This interface consists of about150 distinct
commands that you use 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. To achieve these qualities, no commands for performing windowing
tasks or obtaining user input are included in OpenGL; instead, you must work through whatever
windowing system controls the particular hardware you're using. Similarly, OpenGL doesn't
provide high-level commands for describing models of three-dimensional objects. Such commands
might allow you to specify relatively complicated shapes such as automobiles, parts of the body,
airplanes, or molecules. With OpenGL, you must build up your desired model from a small set of
geometric primitives - points, lines, and polygons.

What is GLUT?
GLUT is a complete API written by Mark Kilgard which lets you create windows and handle
the messages. It exists for several platforms, that means that a program which uses GLUT can be
compiled on many platforms without (or at least with very few) changes in the code.

How does OpenGL work?


OpenGL bases on the state variables. There are many values, for example the color, that remain after
being specified. That means, you can specify a color once and draw several polygons, lines or what
ever with this color then. There are no classes like in DirectX. However, it is logically structured.
Before we come to the commands themselves, here is another thing:
To be hardware independent, OpenGL provides its own data types. They all begin with "GL". For
example, GLfloat, GLint and so on. There are also many symbolic constants, they all begin with
"GL_", like GL_POINTS, GL_POLYGON. Finally the commands have the prefix "gl" like

Dept. of 2021- Page


3D
glVertex3f(). There is a utility library called GLU, here the prefixes are "GLU_" and "glu". GLUT
commands begin with "glut", it is the same for every library. You want to know which libraries
coexist with the ones called before? There are libraries for every system, Windows has the wgl*-
Functions, Unix systems glx* and so on.
A very important thing is to know, that there are two important matrices, which affect the
transformation from the 3d-world to the 2d-screen: The projection matrix and the modelview matrix.
The projection matrix contains information, how a vertex – let's say a "point" in space – shall be
mapped to the screen. This contains, whether the projection shall be isometric or from a perspective,
how wide the field of view is and so on. Into the other matrix you put information, how the objects
are moved, where the viewer is and so on.
Don't like matrices? Don't be afraid, you probably won't really see them, at least at the beginning.
There are commands that do all the maths for you.
Some basic commands are explained later in this tutorial.

How can I use GLUT?


GLUT provides some routines for the initialization and creating the window (or fullscreen
mode, if you want to). Those functions are called first in a GLUT application:
In your first line you always write glutInit(&argc, argv). After this, you must tell GLUT, which
display mode you want – single or double buffering, color index mode or RGB and so on. This is
done by calling glutInitDisplayMode(). The symbolic constants are connected by a logical OR, so
you could use glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE). In later tutorials we will use
some more constants here.
After the initialization you call glCreateWindow() with the window name as parameter.Then
you can (and should) pass some methods for certain events. The most important ones are "reshape"
and "display". In reshape you need to (re)define the field of view and specify a new area in the
window, where OpenGL is allowed to draw to.
Display should clear the so called color buffer – let's say this is the sheet of paper – and draw
our objects.
You pass the methods by glut*Func(), for example glutDisplayFunc(). At the end of the main function
you call glutMainLoop(). This function doesn't return, but calls the several functions passed by
glut*Func.

Dept. of 2021- Page


3D

OPENGL RENDERING PIPELINE


Most implementations of OpenGL have a similar order of operations, a series of processing
stages called the OpenGL rendering pipeline. This ordering, as shown in Figure 1-2, is not a strict
rule of how OpenGL is implemented but provides a reliable guide for predicting what OpenGL will
do.
If you are new to three-dimensional graphics, the upcoming description may seem like
drinking water out of a fire hose. You can skim this now, but come back to Figure 1-2 as you go
through each chapter in this book.
The following diagram shows the Henry Ford assembly line approach, which OpenGL takes
to processing data. Geometric data (vertices, lines, and polygons) follow the path through the row
of boxes that includes evaluators and per-vertex operations, while pixel data (pixels, images, and
bitmaps) are treated differently for part of the process. Both types of data undergo the same final
steps (rasterization and per-fragment operations) before the final pixel data is written into the
framebuffer.

Figure 1.1: Order Of Operations

Dept. of 2021- Page 3


3D

1.1 AIM
A Computer Graphics project based on the concept of a “3D House”. This project implements the view of a
3D House both inside and outside of the house. There are 5 components that are placed inside the house
they are a fan, sofa, tv, a table, and a teapot placed on the table. The outside of the house has trees and a
system made for collecting rainwater(rainwater harvesting). The house is surrounded by a compound wall.
The APIs that are used in implementing these components are glutSolidCube(), glutSolidTeapot(),
glutSoildCone()… etc An animation has been implemented which shows the rotation of the fan inside the
house. Lighting has been implemented by the inbuilt OPENGL lighting functions. Menus have been
provided to modify the various features such as changing the background, lighting, etc. This project
implements both the orthographic and perspective views. Options have been provided in the menu to
switch between the views.

1.2 Problem statement


The project is designed for supporting different transformation functions and event driven functions
of OpenGL on primary objects. This project implements the view of a 3D House both inside and
outside of the house.

1.3 Scope and Applications

The scope of our “3D house” project is using the set of OpenGL functions. The importantfeature of
this project is we can
 Generate 3d transformations
 support for pattern filling
 Support for multiple canvas
 Support for transperancy layers

Dept. of 2021- Page 4


3D

CHAPTER 2

LITERATURE SURVEY

A literature review is a written document that presents a logically argued case founded on a
comprehensive understanding of the current state of knowledge about a topic of study. This literature
review discusses about the work on tracking and monitoring of news.

2.1 Related work

Computer graphics today largely interactive, the user controls the contents, structure, and appearance of
objects and of displayed images by using input devices, such as keyboard, mouse, or touch-sensitive panel
on the screen. Graphics based user interfaces allow millions of new users to control simple, low-cost
application programs, such as spreadsheets, word processors, and drawing programs.

OpenGL (Open Graphics Library) is a standard specification defining a crosslanguage, 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 (see Direct3D vs.
OpenGL). OpenGL is managed by the non-profit technology consortium, the Khronos Group.

Many opengl functions are used for rendering and transformation purposes. Transformations functions like
glRotate (), glTranslate (), glScaled () can be used.
To achieve the objective of the project, information related to the light sources is required with OpenGL we
can manipulate the lighting and objects in a scene to create many different kinds of effects. It explains how
to control the lighting in a scene, discusses the OpenGL conceptual model of lighting, and describes in
detail how to set the numerous illumination parameters to achieve certain effects. This concept is being
obtained from .
To demonstrate the transformation and lightening, effects, different polygons have to be used. Polygons are
typically drawn by filling in all the pixels enclosed within the boundary, but we can also draw them as
outlined polygons or simply as points at the vertices.
The properties of a light source like its material, diffuse, emissive, has to mention in the project. So to
design the light source and the objects, programming guide of an OpenGL is used.

Dept. of 2021- Page 5


3D

CHAPTER 3

SYSTEM ANALYSIS

Analysis involves requirement determination and specification. It is basically establishingthe


requirements for all system elements and then mapping these requirements to softwareforms. It should
address issues such as: -

 Profile of people who are operating on the system.

 Software on which the application is going to function.

 Existing system problems.

Analysis encompasses requirements gathering at the system level with small amount of top-level
design. The data obtained from the requirement determination phase are documented in Software
Requirement Specification (SRS) document. During analysis, a great deal of relatively unstructured
data is collected through procedural manuals and through websites. The traditional approach is to
organize and convert the data through system flowcharts, which support future developments of the
system and simplify communication with users. But the system flowcharts represent the physical
system ratherthan the logical system. Hence, it makes it difficult to distinguish between what happens
and how it happens in the system. Because of this drawback it is necessary to have something, which
is analogous to the architect's blueprint as a starting point for.

3.1 System Development


The incremental build model is a method of software development where the product is designed,
implemented and tested incrementally (a little more is added each time) until the product is finished.
It involves both development and maintenance. The product is defined as finished when it satisfies all
of its requirements. This model combines the elements of the waterfall model with the iterative
philosophy of prototyping.

Dept. of 2021- Page 6


3D

3.2 Language
platform C++:

C++ is a cross-platform language that can be used to create high-performance applications.C++ was
developed by Bjarne Stroustrup, as an extension to the C language.C++ gives programmers a high
level of control over system resources and memory.The language was updated 3 major times in 2011,
2014, and 2017 to C++11, C++14, and C++17.

Microsoft Visual 8.0 using C++:

Microsoft Visual C++ is a integrated development environment (IDE) used to create Windows
applications in the C, C++, and C++/CLI programming languages. It was originally a standalone
product, but is now included as part of Microsoft Visual Studio. It offers developers a single
application in which they can write, edit, test, and debug their code. The programming environment
includes access to a lot of shared code libraries, which let developers use already-developed code for
specific procedures instead of having to write their own from scratch. That shared code takes the
form of dynamic link libraries (DLLs), a term most Windows users have come across at some point
or other.

Codeblocks 17.12:

Code::Blocks is a free C/C++ and Fortran IDE built to meet the most demanding needs of its users.
It is designed to be very extensible and fully configurable. Built around a plugin framework,
Code::Blocks can be extended with plugins. Any kind of functionality can be added by
installing/coding a plugin. For instance, event compiling and debugging functionality is provided by
plugins!

Dept. of 2021- Page 7


3D

3.3 Existing System and its Demerits

Existing system for a graphics is the TC++. This system will support only the 2D graphics. 2D graphics
package being designed should be easy to use and understand. It should provide various options such as
free hand drawing, line drawing, polygon drawing, filled polygons, flood fill, translation, rotation, scaling,
clipping etc. Even though these properties were supported, it was difficult to render 2D graphics cannot be
very difficult to get a 3 Dimensional object. Even the effects like lighting, shading cannot be provided. So
we go for Microsoft Visual Studio software.

3.4 Proposed System and its Merits

To achieve three dimensional effects, open GL software is proposed. It is software which provides a
graphical interface. It is a interface between application program and graphics hardware. The advantages
are:

Merits:

 Open GL is designed as a streamlined.

 It’s a hardware independent interface i.e it can be implemented on many different hardware platforms.

 With openGL we can draw a small set of geometric primitives such as points, lines and polygons etc.

 It provides double buffering which is vital in providing transformations.

 It is event driven software.

 It provides call back function

Dept. of 2021- Page 8


3D

3.5 Flowchart and Process descriptions

Dept. of 2021- Page 9


3D
3.6 Requirement Specification

 The purpose of this SRS is to specify the requirements of the web- b a s e d software
application, which is a news application. This Software Requirements Specification provides a
complete description of all the functions and specifications of modules. This document
contains the softwarerequirements of live news fetching using API.
 The mobiles and its applications are finding its voyage to each and every field of mankind, where
thedata and information are the primary necessities. The actual processing of the system becomes
very useful to its users because manipulation and utilization of data in a meaningful way is the
need of eachand every organization.
 The document is the one that describes the requirements along with interfaces for the
system. It ismeant for use by the developers and will be the basis for validating the final
delivered system.
 The system helps in live news online through internet using web API.

3.7 Hardware Requirements

Minimum hardware specification


 Microprocessor: 1.0 GHz and above CPU based on either AMD or INTEL Microprocessor
Architecture
 Main memory : 512 MB RAM
 Hard Disk : 40 GB
 Hard disk speed in RPM:5400 RPM
 Keyboard: QWERTY Keyboard
 Mouse :2 or 3 Button mouse
 Monitor : 1024 x 768 display resolution

3.8 Software Requirements


Minimum software specification
 Operating system : UBUNTU 10.10
 Tool Used : Eclipse
 OPENGL Library
 X86

Dept. of 2021- Page


3D
 X64(WOW)
 Mouse Driver
 Graphics Driver
 C Language

Dept. of 2021- Page


3D

3.9Functional and non-functional requirements

 Functional requirements

In Software engineering and systems engineering, a functional requirement defines a function of a


system or its component. A function is described as a set of inputs, the behavior, and outputs.
Functional requirements may be calculations, technical details, data manipulation and processing and
other specific functionality that define what a system is supposed to accomplish. Behavioral
requirements describing all the cases wherethe system uses the functional requirements are captured in
use cases.

The functional requirements of our system are –

 Start option which takes you into the application

 Truth section which has certain question with customizable option.

 Dare section which has certain question with customizable option.

 Non-functional requirements

In systems engineering and requirements engineering, a non-functional requirement (NFR) is a


requirement that specifies criteria that can be used to judge the operation of asystem, rather than
specific behaviors. They are contrasted with functional requirementsthat define specific behavior or
functions. The plan for implementing functional requirements is detailed in the system design. The
plan for implementing non-functionalrequirements is detailed in the system architecture, because they
are usually architecturally significant requirements. Broadly, functional requirements define what a
system is supposed to do and non-functional requirements define how a system is supposed to be.
Non-functional requirements are often called “quality attributes” of a system. Other terms for Non-
functional requirements are “qualities”, “quality goals” "quality of service requirements",
"constraints" and "non-behavioral requirements”.

Dept. of 2021- Page


3D

CHAPTER 4

DESIGN AND ANALYSIS

4.1. System Design

System design is the process of defining the architecture, components, modules, interfaces, and data
for a system to satisfy the specified requirements. Here, the design functions and operations are
described in detail, including screen layouts, business rules, process diagrams and other
documentation. The output of this stage will describe the new system as a collection of modules or
subsystems. Having a design methodology enforces consistency in the work as it helps in achieving
the deadlines timely.

The design stage takes as its initial input the requirements identified in the approved requirements
document. For each requirement, a set of one or more design elements will be produced that describe
the desired software features in detail. They generally include functional hierarchy diagrams, screen
layout diagrams, tables of business rules, business process diagrams, pseudo code, and a complete
entity relationship diagram with a full structure of the database.

Systems design implies a systematic approach to the design of a system. It may take a bottom-up or
top-down approach, but either way the process is systematic wherein it takes into account all related
variables of the system that needs to be created — from the architecture, to the required hardware
and software, right down to the data and how it travels and transforms throughout its travel through
the system. Systems design then overlaps with systems analysis, systems engineering and systems
architecture.

Design begins with requirements model. The team works to transform this model into four level of
design detail and they are,
• The data structure

• The system architecture

• The interface representation

• The component level detail

Dept. of 2021- Page


3D

The data design transforms the information domain model created during analysis into thedata
structure that is required for the implementation. The data objects and relationships defined in the
entity relationship diagram and detailed data content depicted provide the basis for the data design
activity. Part of data design may occur in conjunction with the design of software architecture.

The importance of software design can be stated with a single word - Quality. Design provides the
representations of software that can be assessed for quality. Design is an iterative process through
which requirements are translated into a "blueprint" for constructing the software. The design
represented at a high level of abstraction - a level that can be directly traced to the specific system
objective and more detailed data, functional and behavioral requirements. There are three
characteristics that serve as a guide for the evaluation of a good design. Each of these
characteristics is actually a goalof the design process. They are:

• The design must implement all of the explicit requirements contained in theanalysis
model and alsoaccommodate the desired implicit requirements.
• The design must be readable and understandable for coding, testing
andsubsequently support thesoftware.
• The design should provide a complete picture for addressing the data,
functionaland behavioraldomains from an implementation perspective.

The Software design includes different design materials. The designs are Architectural, Work flow,
Use case, Activity, Sequence, Database, Form Design. These designs are usedin software
development of a web-application and provides details of how the web- application should be
created.

Dept. of 2021- Page


3D

4.2 Methodology Incremental Model


Incremental Model is a process of software development where requirements divided into multiple
standalone modules of the software development cycle. In this model, each module goes through the
requirements, design, implementation and testing phases. Every subsequent release of the module
adds function to the previous release. The process continues until the complete system achieved.

The various phases of incremental model are as follows:

1. Requirement analysis: In the first phase of the incremental model, the product analysis
expertise identifies the requirements. And the system functional requirements areunderstood by the
requirement analysis team. To develop the software under the incremental model, this phase performs
a crucial role.

2. Design & Development: In this phase of the Incremental model of SDLC, the design of the
system functionality and the development method are finished with success. When software develops
new practicality, the incremental model uses style and development phase.

3. Testing: In the incremental model, the testing phase checks the performance of each
existing function as well as additional functionality. In the testing phase, the various methods are
used to test the behavior of each task.

4. Implementation: Implementation phase enables the coding phase of the development


system. It involves the final coding that design in the designing and development phase and tests the
functionality in the testing phase. After completion of this phase, the number of the product working
is enhanced and upgraded up to the final system product

Dept. of 2021- Page


3D

CHAPTER 5

IMPLEMENTATION
Implementation is the carrying out, execution, or practice of a plan, a method, or any design for doing
something. It encompasses all the processes involved in getting new software or hardwareoperating
properly in its environment, including installation, configuration, running, testing, andmaking
necessary changes. The word deployment is sometimes used to mean the same thing.
This section will investigate the distinctive viewpoints concerned about the implementation ofthe
developed system.

FUNCTIONS:

The glColor3f (float, float, float) :- This function will set the current drawing color

gluOrtho2D (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top):- which defines a two
dimensional viewing rectangle in the plane z=0.

glClear( ):-Takes a single argument that is the bitwise OR of several values indicating which buffer
be cleared.

glClearColor ():-Specifies the red, green, blue, and alpha values used by glClear to clear the color
buffers.

GlLoadIdentity( ):-the current matrix with the identity matrix.

glMatrixMode(mode):-Sets the current matrix mode, mode can be GL_MODELVIEW,


GL_PROJECTION or GL_TEXTURE.

Void glutInit (int *argc, char**argv):-Initializes GLUT, the arguments from main are passed in and
be used by the application.

Void glutInitDisplayMode (unsigned int mode):-Requests a display with the properties in mode.

Dept. of 2021- Page


3D
The value of mode is determined by the logical OR of options including the color model and buffering.

Void glutInitWindowSize (int width, int height):- Specifies the initial position of the topleft corner of
the window pixel.

Int glutCreateWindow (char *title):-A window on the display. The string title can be used to label
the window. The return value provides references to the window that can be used when there
are multiple windows.
Void glutMouseFunc(void *f(int button, int state, int x, int y):-Register the mouse callback function f.
callback function returns the button, the state of button after the event and the position of the mouse
relative to the top-left corner of the window.

Void glutKeyboardFunc(void(*func) (void)):-This function is called every time when you press enter
key to resume the game or when you press ‘b’ or ‘B’ key to go back to the initial screen.

Void glutDisplayFunc (void (*func) (void)):-Register the display function func that is executed when
the window needs to be redrawn.

Void glutSpecialFunc(void(*func)( void)):-This function is called when you press the special keys in the
keyboard like arrow keys, function keys etc. In our program, the func is invoked when the up arrow or
down arrow key is pressed for selecting the options in the main menu and when the left or right arrow
key is pressed for moving the object(car) accordingly.

glut PostReDisplay ( ) :-which requests that the display callback be executed after the current callback returns.

Void MouseFunc (void (*func) void)):-This function is invoked when mouse keys are pressed. This
function is used as an alternative to the previous function i.e., it is used to move the object(car) to right or left in
our program by clicking left and right button respectively.

Void glutMainLoop ()
Cause the program to enter an event-processing loop. It should be the last statement in main function.

Dept. of 2021- Page


3D

CHAPTER 6

SNAPSHOTS

Dept. of 2021- Page


3D

Inner view of house

Selecting main gate to open

Dept. of 2021- Page


3D

Top view of house

Back view of house

Dept. of 2021- Page


3D House

CONCLUSION

The 3D House has been tested under Windows XP and has been found to provide ease of use and
manipulation to the user. The 3D house created for the Windows XP operating system can be used to
draw lines, boxes, circles, ellipses, and polygons. It has a very simple and aesthetic user interface.

We found designing and developing this 3D House as a very interesting and learning experience. It helped
us to learn about computer graphics, design of Graphical User Interfaces, interface to the user, user
interaction handling and screen management. The graphics editor provides all and more than the features
that have been detailed in the university syllabus.

LIMITATIONS:
As with all types of parallel projection, objects drawn with isometric projection do not appear
larger or smaller as they extend closer to or away from the viewer. While advantageous for architectural
drawings where measurements need to be taken directly, the result is a perceived distortion, as unlike
perspective projection, it is not how our eyes or photography normally work. It also can easily result in
situations where depth and altitude are difficult to gauge, as is shown in the illustration to the right.

Dept. of 2021- Page


3D

FUTURE ENHANCEMENT

These are the features that are planned to be supported in the future
* Support for multiple canvases
* Support for pattern filling
* Support for 3d transformations
* Support for transparency of layers

REFERENCES

 Donald Hearn & Pauline Baker: Computer Graphics with OpenGL Version, 3rd / 4th Edition,
Pearson Education, 2011.
 [2] - Edward Angel: Interactive Computer Graphics- a Top-Down approach with OpenGL, 5th
edition. Pearson Education, 2008.
 - https://www.khronos.org/opengl/wiki/Getting_Started
 [2] - https://www.opengl.org/sdk/docs/tutorials/OGLSamples/
 [3] - https://www.geeksforgeeks.org/getting-started-with-opengl/
 http://www.lighthouse3d.com/tutorials/glut-tutorial/

Dept. of 2021- Page


3D

Dept. of 2021- Page

You might also like