It's a is a graphics application project that explores the fascinating realm of celestial bodies through the lens of shaders. The project implements various shaders for different celestial bodies such as Earth, Neptune, Sun, Moon, Venus, Pluton, and a Random shader. It utilizes noise generation for terrain and density, along with triangle filling functions for rendering.
Files • External Dependencies • Features • How To Use
- configure.sh: A shell script to set up the project dependencies and environment.
- build.sh: A shell script to build the project using CMake.
- run.sh: A shell script to execute the compiled graphics application.
- clean.sh: A shell script to clean up build artifacts and generated files.
- src: A directory containing the source code files for the graphics application.
- barycentric.cpp: Source code file for barycentric coordinate calculations.
- camera.h: Header file defining the camera class for viewpoint control.
- colors.h: Header file containing color definitions.
- fragment.h: Header file defining functions for fragment processing.
- framebuffer.cpp: Source code file for framebuffer management.
- framebuffer.h: Header file defining the framebuffer class.
- main.cpp: Main source code file for the graphics application.
- noise.h: Header file for noise generation functions.
- print.h: Header file containing print functions.
- shaders.h: Header file defining shader functions for different celestial bodies.
- triangleFill.cpp: Source code file for triangle filling functions.
- triangleFill.h: Header file for triangle filling functions.
- triangles.cpp: Source code file containing functions related to triangles.
The project makes use of the FastNoise library by Jordan Peck ([email protected]). Specifically, it includes the files FastNoise.h and FastNoise.Lite.h for advanced noise generation.
The main features of the graphics application include:
- Implementation of various shaders for different celestial bodies (Earth, Neptune, Sun, Moon, Venus, Pluton, Random).
- Noise generation for terrain and density.
- Triangle filling functions for rendering.
To clone and run this application, you'll need WSL (Windows Subsystem for Linux) and the following tools installed on it: Git, C++ compiler, CMake, Make, glew, glm, tbb, and SDL2. From your command line:
# Clone this repository
$ git clone https://github.com/bl33h/outOfSpaceShaders
# Open the project
$ cd outOfSpaceShaders
# Give execution permissions
$ chmod +x configure.sh
$ chmod +x build.sh
$ chmod +x run.sh
# Run the app
$ ./run.sh