Arvutiteaduse instituut
  1. Kursused
  2. 2015/16 sügis
  3. Arvutigraafika (MTAT.03.015)
EN
Logi sisse

Arvutigraafika 2015/16 sügis

  • Main
  • Lectures
  • Practices
  • Projects
  • Exam
  • Results
  • Links

GTA2 in JavaScript

Vello Vaherpuu, Morten Paluteder

Description

We are continuing GTA project from last year.

Repo

https://bitbucket.org/Jorich/gta_project

Goals

Vello - Developing new and replacing old models

Morten- Implementing some post-processing effects and their triggers

Final report

New models demo link - http://kodu.ut.ee/~vellov/GTA_project/

Vello - My mistakes and results -

Goal - My goal was to learn how to make basic low-poly models in Blender and later implement them in our project.

Beginning - I started about 5 models, finished 3. Learning it wasn't that easy as I expected. At start when I thought my 1st model was finished I looked over what I had done and found out that I had way too many vertices (about 15k), that's when I discovered that subdividing meshes is not the best idea and started all over again, this time with a goal to have less than 500 vertices.

Improving - 2nd model was much better, goal was pretty much achieved, a little over 500 but still much better than 15k :D. Then came the colouring part. It looked simple and it kinda was, until I tried to export it to project.

Problems - With exporting i had several problems - exporting to .obj and .dae didn't work out as I wanted to, some sides were transparent, some were missing, so I asked and got advice to export to .json with three.js plugin, which actually worked pretty good. After I got my first obj imported to the game I had another problem. Cloning didn't work as I wanted. Object3d.clone() didn't clone my material and so every car had the same colour as the last car. (after another car was added the others changed colour). So I extended three.js with deep copy functions. Also I had problems with texture exporting and didn't get it to work with three.js exporting plugin.

Good stuff - It was really fun and I liked it. It's like a disease - once you start modelling there's no stopping before it's finished. After 1st model, the others came much quicker. Erich explained code whenever I needed, so that was a big plus.

Screens

.obj and .dae problems -

jeep -

building -

ingame -

texture, that I couldn't export :(

Morten - My journey

Goals

  • Add a post-processing framework to the project ✔
  • Implement different post-processing effects from Three.js ✔
  • Add event triggers for post-processing effects ✔
  • Write a custom post-processing effect shader X

Beginnning My beginning was quite rough as I was not familiar with the existing project and getting it to run and understanding what's going on proved to be quite a challenge, especially as I thought I could brute-force understand it by myself. It was proved wrong by the ridiculous amount of hours I wasted before Erich helped me out.

Problems Understanding how to run the project and grasping the inner workings of the project proved to be the biggest obstacles to overcome. Once those were dealt with, there were some post-processing effect implementation problems but nothing a few hours of development and some fine-tuning couldn't fix. There were also some bugs that made it to the final version but they aren't gamebreaking and only trigger when postprocessing is enabled.

Overall Didn't meet one of the goals I had set for myself because I expected the Three.js post-processing effects library to be somewhat lacking but I was actually surprised how many options there were. That's why I was satisfied with using pre-built shaders and didn't feel the need to build one of my own. I also implemented more triggering effects than I expected. The most valuable lessons I learned had to be about managing time better though.

Possible future improvements

  • More triggers
  • Bug squashing
  • Fine-tuning effects
  • Increasing performance
  • Options menu for persistent post-processing effects

Screenshots

Drugs

Getting hotter

Crash

  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Tartu Ülikooli arvutiteaduse instituudi kursuste läbiviimist toetavad järgmised programmid:
euroopa sotsiaalfondi logo