Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/knightcrawler25/glsl-pathtracer
A toy physically based GPU path tracer (C++/OpenGL/GLSL)
https://github.com/knightcrawler25/glsl-pathtracer
bsdf bvh disney glsl gpu linux opengl path path-tracer path-tracing pathtracer pathtracing ray ray-tracing raytracer tracer tracing windows
Last synced: about 24 hours ago
JSON representation
A toy physically based GPU path tracer (C++/OpenGL/GLSL)
- Host: GitHub
- URL: https://github.com/knightcrawler25/glsl-pathtracer
- Owner: knightcrawler25
- License: mit
- Created: 2018-11-09T15:10:23.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-02-09T17:38:14.000Z (11 months ago)
- Last Synced: 2024-12-14T07:05:09.194Z (8 days ago)
- Topics: bsdf, bvh, disney, glsl, gpu, linux, opengl, path, path-tracer, path-tracing, pathtracer, pathtracing, ray, ray-tracing, raytracer, tracer, tracing, windows
- Language: C++
- Homepage:
- Size: 121 MB
- Stars: 1,885
- Watchers: 42
- Forks: 176
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
GLSL-PathTracer
==========
A physically based path tracer that runs in a GLSL fragment shader.![Jinx](./screenshots/Jinx.jpg)
![Tropical Island](./screenshots/Tropical_Island.jpg)
Features
--------
- Unidirectional path tracer
- Two-level BVH for instancing
- Disney BSDF
- Texture mapping (Albedo, Metallic-Roughness, Normal, Emission)
- Analytic lights (Spherical, Rectangular, Directional)
- Image based lighting
- Multiple importance sampling
- Tile rendering
- OpenImageDenoise
- Stochastic alpha testing
- MagicaVoxel style homogeneous volumes
- GLTF/GLB support (In progress)Build Instructions
--------
Please see INSTALL-WIN.txt for the build instructions for Windows and INSTALL-LINUX.txt for LinuxSample Scenes
--------
A couple of sample scenes are provided in the repository. Additional scenes can be downloaded from here:
https://drive.google.com/file/d/1UFMMoVb5uB7WIvCeHOfQ2dCQSxNMXluB/viewGallery
--------
![Monster](./screenshots/Monster.jpg)
--------
![WW2](./screenshots/ww2.jpg)
--------
![RenderMan Swatch](./screenshots/Renderman_swatch.jpg)
--------
![Dragon](./screenshots/dragon.jpg)
--------
![Stormtrooper](./screenshots/stormtrooper.jpg)
--------
![Panther](./screenshots/panther.jpg)
--------
![Crown](./screenshots/crown.jpg)
--------
![Mustang](./screenshots/Mustang.jpg)
--------
![Mustang_Red](./screenshots/Mustang_Red.jpg)
--------
![Hyperion](./screenshots/hyperion.jpg)
--------
![Ajax](./screenshots/ajax_materials.jpg)
--------
![Dining Room](./screenshots/DiningRoom.jpg)
--------
![Rank3PoliceUnit](./screenshots/rank3police_color_corrected.jpg)
--------
![Staircase](./screenshots/staircase.jpg)
--------
![Substance Boy](./screenshots/MeetMat_Maps.jpg)References/Credits
--------
- A huge shout-out to Cedric Guillemet (https://github.com/CedricGuillemet) for cleaning up the code, adding the UI, integrating ImGuizmo, cmake and quite a lot of fixes.
- Tinsel Renderer (https://github.com/mmacklin/tinsel) A modified version of the scene description & loader from that project is used here.
- Ray Tracing in One Weekend (https://github.com/petershirley/raytracinginoneweekend) Peter Shirley's excellent book introductory book on raytracing which helped me get started on this project.
- Erich Loftis's THREE.js PathTracer (https://github.com/erichlof/THREE.js-PathTracing-Renderer).
- OptiX Introduction Samples (https://github.com/nvpro-samples/optix_advanced_samples/tree/master/src/optixIntroduction)
- Mitsuba Renderer (https://github.com/mitsuba-renderer/mitsuba) Reference for validation.
- PBRT-v3 (https://github.com/mmp/pbrt-v3) which provides an endless source of knowledge. The online book is a gift that keeps giving.
- Model links/credits are in the assets folder (See: Model Credits.txt)