An open API service indexing awesome lists of open source software.

https://github.com/ouked/threejs_arcball

Coursework for "Fundamentals of Visual Computing" at University of Bath
https://github.com/ouked/threejs_arcball

coursework javascript threejs

Last synced: 2 months ago
JSON representation

Coursework for "Fundamentals of Visual Computing" at University of Bath

Awesome Lists containing this project

README

        

# ThreeJS Demo 📦
A simple ThreeJS project for my *Fundamental of Visual Computing* module at University of Bath.
You can read the full report I wrote as part of this coursework [here](https://github.com/ouked/FoVC_Coursework/blob/master/fovc-5.pdf).
![Screenshot of Project](https://github.com/ouked/FoVC_Coursework/blob/master/screenshot.png)

Skybox generated by https://github.com/wwwtyro/space-3d

## Learning outcomes 📚

From the specification:

> • Construct appropriate mathematical operations to manipulate 3D objects
>
> • Use an industry standard graphics programming API (ThreeJS)
>
> • Develop code to interact with JavaScript events (mouse clicks, key presses etc.)
>
> • Test and document a graphics interaction system

This project has also taught how **orbiting cameras** work, as we weren't allowed to use the provided OrbitCamera.js module from ThreeJS.

## Live demo ⚡️
https://alex-dawkins.com/threejs_arcball/WebGL-Coursework.html

### Controls 🎮

| Controls | Key |
|:---------------------:|:----------:|
| Orbit camera | ```MOUSE``` |
| Pan camera | ```SHIFT+MOUSE```|
| Zoom | ```SCROLL```|
| Fly | ```ARROW KEYS```, ```Q```, ```A``` |
| Rotate objects | ```X```,```Y```,```Z``` |
| Cube face render mode | ```F``` |
| Cube vertex render mode | ```V``` |
| Cube wireframe render mode | ```E``` |
| Peter face render mode | ```J``` |
| Peter vertex render mode | ```K``` |
| Peter wireframe render mode | ```L``` |
| Reset camera | ```0``` |
| Help | ```H``` |