Skip to content

OpenGL project which consists of 3D Environment, to demonstrate assembly and disassembly of desktop parts

License

Notifications You must be signed in to change notification settings

AdarshRevankar/Desktop-Simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Desktop Simulator

Inline docs Build Status HitCount

OpenGL project which consists of 3D environment, to demonstrate assembly and disassembly of desktop parts. This uses basic glut library to construct a 3D Scene of CPU and it's components.

Desktop-Simulator-Logo

see Code of Conduct


Demonstration - Youtube

https://youtu.be/VInynN3uoLo


Snapshot

Instance Image
Initial View initial view of system
CPU View cpu view
Desktop View desktop

Setup Project

Windows

  1. Setup the project with required OpenGL headerfiles in your IDE (refer this - Visual Studio or CodeBlocks).
  2. Copy all required header files & data files the project.
  3. Run the project. main.cpp

Note: BMP Image Error - parameter.h change BMP images path to either Relative to project ( Currently ) or Absolute ( if error occurs )

MacOS

Instructions to run on MacOS

Install brew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Install necesarry linking libraries

brew install freeglut glfw3 glew lstdc++

Compile project into binary

clang -o main main.cpp -L/usr/local/lib -lglfw -lstdc++ -framework OpenGL -framework GLUT -framework Cocoa

Run the binary

./main

Note: GLUT is getting deprecated on MacOS 10.9 above, so some functionalities might not work. Need to fix these deprecations soon


Controls

  • Up Arrow - Move Forwards
  • Down Arrow - Move Backwords
  • Left Arrow - Move Left Side
  • Right Arrow - Move Right Side
  • Esc - Exit of Program / Exit of CPU View ( according to context )
  • Enter - Enter into CPU View / Disassemble Components ( according to context )
  • Backspace - Assemble components
  • Mouse Hover - Change Camera View & Rotate Person

Requirements

  • (optional) IDE ( Visual Studio / CodeBlocks )*
  • basic C++ Libraries
  • glut.h ( freeglut )

References

  1. Basic 3D World Setup - lighthouse3d.com.
  2. Basic OpenGL function's introduction - khronos.org.
  3. Texture Mapping - youtube.com.
  4. Textbook for understanding structure of OpenGL - Computer Graphics With OpenGL - Donald Hearn & Pauline Baker.

Project Report

Project Report with detailed structure of project.


Questions

Mail / Facebook messages can be done