Coder Social home page Coder Social logo

final-project's Introduction

                        ==============================
                        COMP308 2014T2 - Final Project
                        ==============================

Joseph Zachariah Sim (300263896)                           [email protected]
Thomas Beneteau (300250968)                             [email protected]

This is our final project for COMP308, which consists of rendering a realistic
sky and convincing lens flares using physically-based techniques, efficiently.

We used C++ with OpenGL, and used a few libraries to help us implement various
parts of the project - notably, FreeImage, for fast and flexible image loading
and simple image processing, FFTW for calculating two-dimensional fast Fourier
transforms (an important part of the lens flare pipeline) and AntTweakBar, for
the simple GUI widget used to interact with our program.

The code is written in standard C++11 and should run on Visual Studio 2012 and
later, g++, clang++, and the Intel C++ compiler on Linux. OpenGL 3.0 required.

Instructions
------------

    To build and run the program, please use the provided Makefile. A solution
    file Project.sln is also available for Visual Studio (>= 2012) on Windows.

    The compiled program will be generated in the `bin` folder and can then be
    run, note that the working directory of the program is the `bin` folder so
    for Windows double-clicking will work, for Linux please cd into the folder
    before executing the program, e.g. as follows:

        $ make deps        # if dependencies are not installed
        $ make
        $ cd bin && ./Project
        $ cd ..

    IMPORTANT: if GLEW fails to build, just ignore the error and run make. The
    university computers should already have it installed by default anyway.

    To navigate the demo, drag the cursor using the left mouse button or right
    click then move the mouse around, and use WASD to move the camera. The 'c'
    key makes the camera go downwards, space makes it go upwards - hitting the
    escape key will close the project - and the various program parameters are
    available for modification in the graphical user interface (tweak bar).

Folder Contents
---------------

    The different folders and their respective purpose are enumerated below:

        - `bin`: output folder for the final executable
        - `doc`: supporting documentation (paperwork, SIGGRAPH papers)
        - `lib`: third-party libraries, excluding OpenGL-related libs
        - `res`: assets used in our project (textures, models, etc.)
        - `src`: C/C++ source code and headers

    The `src/core` folder contains the actual implementations of the different
    rendering subsystems. The `src/gui` folder contains only source pertaining
    to the user interface, and `src/utils` general purpose utilities. Note the
    different vertex and fragment shaders are in the `res/shaders` folder.

External Links
--------------

http://glm.g-truc.net/0.9.5/index.html
http://anttweakbar.sourceforge.net/
http://freeimage.sourceforge.net/
http://freeglut.sourceforge.net/
http://glew.sourceforge.net/
http://www.fftw.org/

final-project's People

Contributors

tomcrypto avatar zach-sim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

derkreature

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.