GithubHelp home page GithubHelp logo

3d-engine-from-scratch's Introduction

3D Engine From Scratch

Table of contents

General info

The project is a 3D engine from scratch. It containing basic functionalities such as loading 3D models in .obj format, loading textures for models, rotating, moving and scaling models. It's also possible to move and rotate the camera around the area.

Technologies

Setup

To run this project:

  1. Open VisualStudio
  2. Click File -> Open -> Project/Solution... (Control + Shift + O)
  3. Select Projekt_LGiM.sln
  4. Click Debug -> Start Without Debugging (Control + F5)

Controls

General

Key Function
W Move the camera forward
S Move the camera backward
A Move the camera to the left
D Move the camera to the right
Space Move the camera up
Left Control Move the camera down
LPM + Mouse move Rotate the camera in the x-axis and y-axis
Left Shift + LPM + Mouse move Rotate the camera in the z-axis
Mouse Scroll Zoom
1 Change mode to moving
2 Change mode to scaling
3 Change mode to rotating

Moving mode

Key Function
PPM + Horizontal mouse move Move the object to the left/right
PPM + Vertical mouse move Move the object up/down
Left Shift + PPM + Veritcal mouse move Move the object to/from yourself

Scaling mode

Key Function
PPM + Horizontal mouse move Scale the object horizontally
PPM + Vertical mouse move Scale the object vertically
Left Shift + PPM + Veritcal mouse move Scale the object horizontally and vertically

Rotating mode

Key Function
PPM + Horizontal mouse move Rotate the object horizontally
PPM + Vertical mouse move Rotate the object vertically
Left Shift + PPM + Veritcal mouse move Rotate the object in the z-axis

TODO

  • Models parser optimization
  • Repairing camera rotation
  • Adding the possibility of handling many light sources
  • FPP like camera
  • Support for multipart models

Bugs

  • Some models don't load

3d-engine-from-scratch's People

Contributors

matiyas avatar

Watchers

 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.