konradjanica / cg_assign3 Goto Github PK
View Code? Open in Web Editor NEWUniversity of Adelaide, Computer Graphics - Assignment 3
License: MIT License
University of Adelaide, Computer Graphics - Assignment 3
License: MIT License
Currently delta time is calculated in both object.cc and camera.cc
For efficiency we need to calculate it once somewhere
Something has broken the camera zoom (holding right click to zoom)
I haven't tested it for a while so no idea when it broke. I need it now for testing car stuff. Possibly broken when projection was put in main or when y vertices were reversed.
High priority IMO (no particular ordering):
Low Priority Addons:
Lighting needs to be done for water (ill leave this to you @andrewphamvk)
also we need to consider whether we want the water normals to be calculated on the CPU (very intensive) or we can just switch textures when it hits night or something idk
All time needs to be unsigned int.
Anything directly proportional to time needs to be fixed to allow overflow.
As we discussed a few weeks ago to pass one of the assignment specifications.
The first person mode is done so we can make another model for this task.
Although I suspect transparent water is enough to pass the requirement.
I think the easiest and a very optimal way of making the car move is to attach it to the camera. I have done this in the car_is_camera branch.
However, if you test it for yourself you will see the controls are originating around the camera position and not the car itself.
For some reason attaching the car model to the camera has broken the zoom. If we fix this, we could position the camera in the car and zoom out, this method of car movement would work very well.
The only change needed to attach the car is in renderer.cc -> Render(Object * ... instead of translating the camera_matrix by the view matrix, we leave it in camera space. See the if statement with a search for "camera_matrix"
Some branches are over 2 months old.
Please clean-up your legacy branches.
Leaving chase car camera for last so we can debug terrains (etc.) independent of car movement.
Arrow keys will be for camera movement and WSAD will be for Car control.
Renderer is getting ridiculous. I propose we introduce a new Controller class.
Remove all models/objects/terrains from renderer and put them in Controller instead. Turn Renderer->render(index) => Renderer->draw(Object * car) / ->draw(vector<Object > models) / ->draw(vector <Terrain * terrain>) e̶a̶c̶h̶ ̶w̶i̶t̶h̶ ̶t̶h̶e̶ ̶o̶p̶t̶i̶o̶n̶a̶l̶ ̶p̶a̶r̶a̶m̶e̶t̶e̶r̶ ̶o̶f̶ ̶s̶h̶a̶d̶e̶r̶ ̶p̶r̶o̶g̶r̶a̶m̶.̶ ̶I̶.̶e̶.̶ ̶p̶r̶o̶t̶o̶t̶y̶p̶e̶ ̶=̶ ̶v̶o̶i̶d̶ ̶d̶r̶a̶w̶(̶c̶o̶n̶s̶t̶ ̶O̶b̶j̶e̶c̶t̶ ̶̶ ̶c̶a̶r̶,̶ ̶c̶o̶n̶s̶t̶ ̶G̶L̶u̶i̶n̶t̶ ̶&̶p̶r̶o̶g̶r̶a̶m̶_̶i̶d̶)̶ The VAO handle requires a program_id so the model does need to hold it's own Program_ID - Konrad
Shaders should be loaded into the Renderer in a vector
The controller will also handle car collision detection, car input controls, sun location for day/night cycle?, scores?, all states.
The NPC cars travelling towards the camera are almost pitch black in first person mode.
Require white point lights on the front. @andrewphamvk
Hey guys, I propose we move normal calculation into the vertex shader possibly because if we are to have animation (for the water) the vertices change positions so doing static CPU side normal calculations is not good enough, this could be done by having a new shader just for water
open to any ideas!
Collision of car with road.
Keeping in mind the roads might be rotated to connect properly so collisions can't just be put on X coordinate but include Z too.
The angle of the players car headlights (spotlights) isn't angled properly to see the road signs, would look much better in my opinion... @andrewphamvk
Buffering a few tiles ahead and clearing already passed terrains.
Refactor the main shader program by moving current Phong lighting calculations into the fragment shader.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.