https://github.com/ecsolticia/rayndercast
Raycast renderer sandbox library for visualizing distance functions interactively. (WIP)
https://github.com/ecsolticia/rayndercast
gamedev math mathematics metric-space metric-spaces raycast raycaster raycasting renderer rendering
Last synced: 12 months ago
JSON representation
Raycast renderer sandbox library for visualizing distance functions interactively. (WIP)
- Host: GitHub
- URL: https://github.com/ecsolticia/rayndercast
- Owner: EcSolticia
- License: mit
- Created: 2025-05-12T17:45:23.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-13T20:19:24.000Z (about 1 year ago)
- Last Synced: 2025-06-13T20:36:14.609Z (about 1 year ago)
- Topics: gamedev, math, mathematics, metric-space, metric-spaces, raycast, raycaster, raycasting, renderer, rendering
- Language: C++
- Homepage:
- Size: 228 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# RaynderCast
RaynderCast is a C++ library for creating raycasting-based minimal walking simulators. Like traditional raycasting-based games, such as Wolfenstein3D, it creates an image based on the magnitude of arrays of rays projected into a 2D grid. This magnitude corresponds to a distance: the distance from the "camera" to each **ray-to-*solid grid cell wall*** collision point. These distance values are usually taken to be inversely proportional to the line-height of the rectangle that is drawn to represent the area around the collision point.
RaynderCast differs in allowing for different render distance functions. While the space and geometry remains Euclidean, the distance to each point specifically for rendering purposes can be custom-set by a C++ lambda. Consequently, this need not be Euclidean at all.
> [!WARNING]
> RaynderCast has mainly been a "learning project". Due to initial idiosyncratic choices regarding the modificaton of the raycasting-based rendering method clashing with what I later decided would be needed for the project, I decided to call it a sunk cost. This is the reason the README is not as detailed, and it completely lacks documentation. I may approach the same idea later on.