Skip to content

🌞 radiōsum (radiant) is an implementation of "A general two-pass method integrating specular and diffuse reflection."

Notifications You must be signed in to change notification settings

brunosegiu/radiosum

Repository files navigation

Radiosum

Radiosum is an implementation of the methods presented in A general two-pass method integrating specular and diffuse reflection.

The approach proposed involves computing extended form factors, a geometric relationship between surfaces (or patches) that are the basis for the radiosity method. In this particular project three algoritms were developed.

Additionally, the tool includes a GUI which enables quick and simple editing of the objects/surfaces materials. Linear interpolation is optional, but already built-in.

Additional documentation can be found here. Spanish only.

UI

Hemicube + portal rendering for planar reflections

Form factors are calculated using by rendering a hemicube, located at the surface's barycenter and directed by its normal. The specular extensions are derived in subsequent draw passes, by drawing the whole geometery from the portal's perspective.

Hemicube + raytraced reflections

Form factors are calculated using by rendering a hemicube, located at the surface's barycenter and directed by its normal. The specular extensions are derived in subsequent draw passes, rays are emitted stocastically covering the whole mirror; for each of these rays its reflection path is followed.

Hemisphere + raytraced reflections

Form factors are derived from a stochastic process, which involves casting rays from pseudo-random directions included in the hemisphere centered at the surface's barycenter. The rays' path is followed, and additional rays are casted when a hit with a specular surface is registered.

street

Dependencies and platforms

Radiosum was built, tested and thought as a Windows only project, since graphics drivers are heavily optimized in the platform. Third party libraries include:

  1. SDL2
  2. Embree
  3. GLEW
  4. Dear ImGUI
  5. GLM
  6. SDL2Image
  7. Eigen

About

🌞 radiōsum (radiant) is an implementation of "A general two-pass method integrating specular and diffuse reflection."

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published