Git Product home page Git Product logo

computer-graphics-assigments's Introduction

Computer Graphic Assignments

This repository contains the assignments for COMS30115 "Computer Graphics", a rasteriser and raytracer are implemented.

Both the raytracer and rasteriser render a Cornell Box.

Build

On university computers, simply run ./university-build.sh and everything will be compiled in ./build, you can find the executables in ./build/bin

$ mkdir build
$ cd build
$ cmake .. -DGLM_INCLUDE_DIR=/path/to/glm \
           -DSDL_INCLUDE_DIR=/path/to/include/SDL \
           -DSDL_LIBRARY=/path/to/libSDL.so \
           -DCMAKE_BUILD_TYPE=Release
$ make

Build targets:

  • raytracer: Basic ray tracer without extensions (bin/raytracer)
  • rasteriser: Basic rasteriser without extensions (bin/rasteriser)
  • raytracer-extensions: Ray tracer with extensions (bin/raytracer-extensions)
  • rasteriser-extensions: Rasteriser with extensions (bin/rasteriser-extensions)

Running

Ray tracer

Running ./bin/raytracer after make will launch the ray tracer.

Controls:

  • Ctrl-C: exit

Rasteriser

Running ./bin/rasteriser after make will launch the rasteriser. If you are running the extended rasteriser with texture mapping, make sure the bitmap space.bmp exists in your current directory, this is included in the top level of the repository

Controls:

  • w: Camera forward
  • s: Camera backward
  • a: Camera left
  • d: Camera right
  • i: Light move forward
  • k: Light move backward
  • j: Light move left
  • l: Light move right
  • u: Light move up
  • o: Light move down
  • mouse: Camera
  • Ctrl-C: exit.

Dependencies

The basic ray tracer is built with

  • GLM 0.9.8
  • SDL 1.X (tested with both 1.2 and 1.3)
  • CMake v2.8 or above

Extensions

  • indicates a completed extension

  • indicates an unattempted extension

  • Anti-aliasing

  • Depth of field

  • Indirect illumination

  • Textures

  • Loading general models

  • Hierarchical spatial structures for geometry storage

  • Specular materials

  • Fractals

  • Optimisations

  • Global illumination

vim: set ft=markdown:

computer-graphics-assigments's People

Contributors

ms14981 avatar willprice avatar

Stargazers

 avatar

Watchers

 avatar  avatar

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.