[go: up one dir, main page]

Skip to content
/ RIO Public

Render In OpenGL: Experimental Farm for Real-Time Rendering Algorithms

License

Notifications You must be signed in to change notification settings

LanFear-Li/RIO

Repository files navigation

Render In OpenGL

CMake Windows CMake Linux

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.

Features

Basic

  • User Interface

Shading

  • Blinn-Phong Shading
  • Physically-Based Rendering
  • Image-Based Lighting / Environment Lighting

Lighting & Shadowing

  • Point / Directional / Spot lights
  • Shadow Mapping with PCF / PCSS

Gallery

PBR & IBL

helmet_hotel

helmet_street

Blinn-Phong

sponza

erato

robot

Usage

Build

Since all dependencies are included with source code, you can build RIO from any IDE with CMake on Windows or Linux.

Control

rio_interface

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.

Dependencies

Following dependencies are built from source within RIO.

Acknowledgements

About

Render In OpenGL: Experimental Farm for Real-Time Rendering Algorithms

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published