CLIRayMarchingEngine is a command-line ray marching engine that renders scenes using ray marching techniques. It supports various geometric primitives, smooth blending, and lighting effects.
- Ray marching for rendering scenes
- Support for various geometric primitives (Box, Capsule, Octahedron, Orb, Plane)
- Smooth blending between objects
- Blinn-Phong lighting model
- 3 predefined scenes with different objects
- User controls for extremely basic scene navigation
- Use the following controls to interact with the scenes:
W: Move forwardA: Move leftS: Move backwardD: Move rightQ: Stop rotating the lightE: Start rotating the lightSpacebar: Switch to the next sceneEscape: Exit the application
The engine comes with three predefined scenes:
- Scene One: A basic scene with various geometric primitives.
- Scene Two: A scene with smooth blending between objects.
- Scene Three: An endless repeater scene with infinite primitives in every direction.
CLIRayMarchingEngine/Program.cs: The main entry point of the application.CLIRayMarchingEngine/AppManager.cs: Handles running of the applicaiton.CLIRayMarchingEngine/Controls/: Contains user control handling classes.CLIRayMarchingEngine/Model/: Contains model classes for geometric primitives and scenes.CLIRayMarchingEngine/View/: Contains view classes for rendering the scenes.CLIRayMarchingEngine/SceneSetups.cs: Contains methods for setting up predefined scenes.CLIRayMarchingEngine/HelpMaths.cs: Contains helper math functions for smooth blending and lighting calculations.
- Maths taken from Inigo Quilez, obviously.
- Blinn-Phong reflection model for the lighting model.