This is a simple 2D lighting system based on raycasting and polygon triangulation, using SFML.
This is an experimental project I'm working on to learn about Raycasting, Computer Graphics and OpenGl.
To get a better grip on what polygon triangulation is and why it is important, feel free to open the following links:
It's also my first ever program/code written in C++. I do anyway realize the monstrosities I have writtend and how bad the source code is.\
A demo of the lighting system.
Here I show how the raycasts are thrown and their contact points.
To be able to fill with colour a concave figure a form of triangulation is required, I decided to use the EarCut algorithm, a simple and fast polygon triangulation algorithm. The result is not perfect, but can be improved.
To get a local copy up and running follow these simple steps.
You'll need to have SFML installed https://www.sfml-dev.org/download.php
Not interactive yet
- Rewriting source code in OOP
- Adding interactivity
- Adding shades blending
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Project Link: https://github.com/stefanoscolapasta/CppRayCastLightingSystem