Ask Computer Graphics Expert

Computer Graphics Assignment: OpenGL Programming - Solar System

Learning Outcomes of this Assessment

- Show awareness of a variety of graphics toolkits and select an appropriate one for a given task

- Discuss the capabilities of various input and output devices and their relationship to graphics programming A4 - use appropriate mathematics to perform standard graphical transformations

- Application of graphics programming skills in a real-world application

Key Skills to be Assessed

C/C++ programming Use of OpenGL API

Application of low level graphics principles & data management techniques for developing interactive graphics application Critical Evaluation of tools used

The Assessment Task

Your task is to demonstrate your newly acquired skills in C and OpenGL programming. This will be achieved by producing a demonstration application that will offer a simple visualisation comprising a collection of discrete objects located in a navigable space. Fundamental to the successful completion of this assignment is careful consideration of the management of scene data, using resizable dynamic memory structures, and the application of appropriate mathematical models for simulation, navigation and interaction.

The form of this assignment will be a basic solar system simulation in which a dynamic collection of planetary bodies will be simulated. These bodies will be represented by simple graphical forms and have the ability to show a historical trail of their movement. The bodies motion should be defined by a simple gravitational system simulation which calculates forces based on the masses of the bodies and uses this to derive discrete step changes to acceleration and velocity.Inital starting conditions for the planetary bodies should be random (mass, position, starting velocity and material (colour)). Advanced solutions should consider the actions taking place when collisions between bodies occur. In these cases the collision should be detected. The mass and velocities of the bodies should be combined (thereby removing one of the bodies from the data structure) with the major body taking priority. Ideally the size of the resultant body should be changed to reflect the enhanced mass. You should also provide mechanisms to add bodies during the runtime of the simulation (based on random data) both at user request and to maintain a set number of bodies in the system.

You are provided with an example solution to evaluate and a template project, including a maths library, camera model and basic utilities as a starting point.

The implementation of the assignment problem will be assessed in the following areas

1. Design and implementation of a suitable dynamic data structure that will maintain an ordered list of the render-able objects with facilities to add and remove entities at the beginning, end and middle of the list. This structure should support an efficient rendering process for drawing the objects as part of the rendering cycle and provide the data components necessary for efficient progression of simulation.

2. Design and implementation of the simulation component. This will provide initialisation of the data structure and enable discrete updates (progression) of the model based on accepted principles of force and motion. The simulation should support features to start and stop updates, add new entities, etc. Advanced solutions may include functionality for automated collision detection and response.

3. Rendering processes. The basic visualisation required is for simple spheres to represent planets, with a dimension (radius) proportional to the mass and randomised materials. More advanced solutions should include a variety of geometric forms for representing planetary bodies. An extension of this is to include a trail for the bodies motion, represented as a line curve. Better solutions will seek to utilise rendering efficiencies (display lists and client side rendering functions) to optimise the graphical display. Advanced solutions may seek additional graphical fidelity with the use of texture and additional rendered artefacts/forms to enhance the visual display, e.g. texture of planet surfaces, fading of planetary trials, variable length/number of trails, support for non-simulated features (e.g. dust clouds, spaceships, lens flare, etc) .

4. User interaction. Basic solutions will use the camera model provided and simple key presses to control the simulation parameters. More advanced solutions should seek to use the menu system to provide graphical command structures. Very advanced solutions may seek additional user functionality. These may include selection and manipulation of parameters for a specific body, variation/control of the graphical representations (e.g. changing the representation/length of trails) and in very advanced cases may also include features such as the ability to change focus of the navigation mechanism to enable relative navigation/tracking of a single body, and/or changing the mode of navigation

Throughout the implementation you should seek to apply best practices for C coding and programming methodology. All code should be clearly presented using a consistent style and format. More advanced solutions may also consider decomposing code into multiple files or libraries. The assignment must be delivered as a Visual Studio (2015) project that will both compile and run without modification. Submission should be as a single zip file including all source code, project files and a running executable.

Recommended Reading

The OpenGL website (http://www.opengl.org/) will be invaluable in helping you to complete this assignment. Key areas within this site are the reference documentation and the example programmes

Equipment and Facilities to be Used

The university laboratory computers are installed with MS Visual Studio 2010. A template application (Visual Studio solution is provided) and a working executable is also provided for reference.

Computer Graphics, Computer Science

  • Category:- Computer Graphics
  • Reference No.:- M92097709

Have any Question?


Related Questions in Computer Graphics

Please read my question if you post copy and pasted code

Please read my question if you post copy and pasted code you will get a negative review. This is java In this graphical program, you are going to simulate arcade car racing game. You need a single player that is movable ...

The problemyou are to search a bitmap in rgb format and

The problem: You are to search a bitmap in RGB format and count the number of pixels which match a set of colors. The bitmap will be 1024 by 1024 pixels for the purposes of explaining this problem. The set of colors will ...

The problemsit is strongly recommended that you tackle the

The problems: It is strongly recommended that you tackle the following tasks in a modular way -- a separate standalone function for each task. Draw a rectangle as a Rectangle and as a Polygon. Make the lines of the Polyg ...

You have a program draw a rectangle on the screen and allow

You have a program draw a rectangle on the screen and allow the user to change the color/size of the rectangle. The program will store in the browser the settings of the color/size so that upon revisiting the page, the v ...

Question a describe the architecture of simple raster

Question : a) Describe the architecture of simple raster graphics system? b) Explain raster scan display processor?

The saffir-simpson hurricane scale classifies hurricanes

The Saffir-Simpson Hurricane Scale classifies hurricanes into five categories numbered 1 through 5. Write an application named Hurricane that outputs a hurricane's category based on the user's input of the wind speed. CA ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

Why might a bank avoid the use of interest rate swaps even

Why might a bank avoid the use of interest rate swaps, even when the institution is exposed to significant interest rate

Describe the difference between zero coupon bonds and

Describe the difference between zero coupon bonds and coupon bonds. Under what conditions will a coupon bond sell at a p

Compute the present value of an annuity of 880 per year

Compute the present value of an annuity of $ 880 per year for 16 years, given a discount rate of 6 percent per annum. As

Compute the present value of an 1150 payment made in ten

Compute the present value of an $1,150 payment made in ten years when the discount rate is 12 percent. (Do not round int

Compute the present value of an annuity of 699 per year

Compute the present value of an annuity of $ 699 per year for 19 years, given a discount rate of 6 percent per annum. As