Skip to content

leon-tanguay/RaycastingBeta1-9

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RayCasting 3D Simulation

RayCasting Demo

A C++ project that utilizes raycasting to simulate a 3D-style environment from a 2D image, inspired by retro games like Wolfenstein 3D, utilizing the SFML library to handle graphics and input.

Table of Contents

Introduction

Inspired by videos I watched on the math behind raycasting, I decided to try and implement the system myself from scratch using C++. I also decided to do this project to help develop my skills in CMake, GTest, and modern C++17 techniques. The math behind raycasting can be found here: https://www.youtube.com/watch?v=NbSee-XM7WA

Features

  • Converts image to 2d map to be rendered in 3d
  • First-person player controller using WASD keys and mouse
  • Hue Shifting Algorithm implemented using a simulation of a color cube rotation
  • RayCasting simulation using physics, made more efficient by a grid-based system
  • Player collision detection
  • 3D-style environment with a simple shader system
  • SFML integration
  • Custom Vector template class

Dependencies

  • C++17 or later.
  • CMake version 3.16 or later
  • SFML 2.6
  • ImGui v1.89

Controls

WASD to for directional movement. Mouse movement rotates player character horizontally and vertically. Press ESC to free mouse from window.

Improvements

I hope to add more player movement options such as jumping in the future to help immerse the player in the world, as well as adding support for textured terrain and a more advanced lighting system. Prior to these features, I want to ensure that the code is as clean as possible, and manage the amount of required dependencies

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors