RIO is a real-time rasterization renderer with OpenGL backend. It aims to implement SOTA real-time rendering algorithms for personal education usage. RIO will specifically focus on Shading, Lighting & Shadowing, and Anti-Aliasing techniques.
- User Interface
- Blinn-Phong Shading
- Physically-Based Rendering
- Image-Based Lighting / Environment Lighting
- Point / Directional / Spot lights
- Shadow Mapping with PCF / PCSS
PBR & IBL
Blinn-Phong
Build
Since all dependencies are included with source code, you can build RIO from any IDE with CMake on Windows or Linux.
Control
The image above shows the RIO interface with ImGui. You can modify several render options like
- Show skybox / Enable IBL / Render Light Model, etc.
- Switch shading method / Switch skybox.
You can modify scene options with a camera, all lights, and models with
- Switch models / Change model position, rotation, scaling, etc.
- Set camera position, rotation, move speed, etc.
- Set light position, color, intensity, etc.
Additionally, keyboard control for the camera and events is supported
- WASD: Travel with FPS camera.
- Hold Mouse Right: Rotate the camera.
- E / Q: Camera up and down.
- Up / Down: Increase / Decrease camera movement speed.
- F: Switch from Full screen.
- M: Open / Close GUI panel like Map.
- P: Print the current framebuffer and save it to the project directory.
Following dependencies are built from source within RIO.