{"id":13831468,"url":"https://github.com/Zielon/PBRVulkan","last_synced_at":"2025-07-09T14:32:58.512Z","repository":{"id":45190452,"uuid":"293568790","full_name":"Zielon/PBRVulkan","owner":"Zielon","description":"Vulkan Real-time Path Tracer Engine","archived":false,"fork":false,"pushed_at":"2021-10-10T09:59:35.000Z","size":216942,"stargazers_count":488,"open_issues_count":14,"forks_count":37,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-11-20T13:38:54.518Z","etag":null,"topics":["brdf","gpu-programming","light-simulation","path-tracer","pbr","rasterization","raycaster-engine","raycasting","raytracer","raytracing","rtx","vulkan"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Zielon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-09-07T15:44:37.000Z","updated_at":"2024-11-03T05:15:56.000Z","dependencies_parsed_at":"2022-08-12T11:41:05.105Z","dependency_job_id":null,"html_url":"https://github.com/Zielon/PBRVulkan","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/Zielon/PBRVulkan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zielon%2FPBRVulkan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zielon%2FPBRVulkan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zielon%2FPBRVulkan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zielon%2FPBRVulkan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Zielon","download_url":"https://codeload.github.com/Zielon/PBRVulkan/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zielon%2FPBRVulkan/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264476300,"owners_count":23614487,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["brdf","gpu-programming","light-simulation","path-tracer","pbr","rasterization","raycaster-engine","raycasting","raytracer","raytracing","rtx","vulkan"],"created_at":"2024-08-04T10:01:28.779Z","updated_at":"2025-07-09T14:32:58.095Z","avatar_url":"https://github.com/Zielon.png","language":"C++","readme":"# Ray tracer sandbox in Vulkan\n\nThis project is an engine where you can create/test new shaders in real-time physically based ray tracing system. The main idea is that users can test their own integrators in predefined environment with assets like: meshes, materials, lights and textures. The Vulkan pipeline is abstracted in a shaders form and the only concern for a user is providing either their own scene description or using already existing one.\n\n ![discord](https://img.shields.io/discord/774330363810938890) ![issues](https://img.shields.io/github/issues/Zielon/PBRVulkan) ![release](https://img.shields.io/github/v/release/Zielon/PBRVulkan) ![closed](https://img.shields.io/github/issues-closed-raw/Zielon/PBRVulkan) ![Linux](https://img.shields.io/badge/system-Linux-green) ![Windwos](https://img.shields.io/badge/system-Windows-green)\n\nCheck out the discord [#general](https://discord.gg/365bNPbFTM) for more info or [discussions](https://github.com/Zielon/PBRVulkan/discussions). The current development is available under [project](https://github.com/Zielon/PBRVulkan/projects/1).  \n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/Zielon/PBRVulkan/blob/readme-assets/gifs/bedroom.gif?raw=true\" width=auto height=auto\u003e\n\u003c/p\u003e\n\n#### Sandbox\n\nAs an example of creating your own shader please take a look at [Ambient Occlusion](https://github.com/Zielon/PBRVulkan/blob/master/PBRVulkan/RayTracer/src/Assets/Shaders/Raytracer/Integrators/AO.glsl) or [Path Tracer](https://github.com/Zielon/PBRVulkan/blob/master/PBRVulkan/RayTracer/src/Assets/Shaders/Raytracer/Integrators/PathTracer.glsl). Those files are automatically included in the `hit shader`. At this level you have many resources available to create your own implementation. For now, to make them available for the engine, you would need to add them in the same way I added aforementioned files.\n\n#### Features\n```\n1) Ray tracing pipeline\n    scene/assets description with:\n      materials\n      meshes\n      lights (area, spherical)\n    HDR\n    path tracer integral\n    Disney BRDF\n2) Rasterizer pipeline     \n    Phong-Blinn model\n3) Compute shader pipeline \n    denoiser\n    egde detection\n    edge sharpner\n```\n#### How to run\n\n1) Download [VulkanSDK](https://vulkan.lunarg.com/sdk/home#windows) and install it following the instuctions.\n2) Run `windows_install.bat` or `sudo linux_install.sh` script depending on the system to download all necessary libraries. \n3) `git-lfs` must be installed in order to fetch scenes repository.\n\nC++17 is needed to compile the project.\n\n#### Assets\n\nThe scene description and assets are adapted from [GLSL-PathTracer](https://github.com/knightcrawler25/GLSL-PathTracer) project [4]. The [scenes repository](https://github.com/Zielon/PBRScenes) will be automatically cloned during the installation process.\n\n```\nPBRVulkan/Assets/PBRScenes/\n    bedroom/\n    coffee_cart/\n    HDR/\n    bedroom.scene\n    coffee_cart.scene\n    ...\n```\n\n#### References/Credits\n\n[0] [Vulkan Tutorial](https://vulkan-tutorial.com/) \\\n[1] [Vulkan Ray Tracing Tutorial](https://nvpro-samples.github.io/vk_raytracing_tutorial_KHR/) \\\n[2] [PBR Book](http://www.pbr-book.org/3ed-2018/contents.html) \\\n[4] [GLSL-PathTracer](https://github.com/knightcrawler25/GLSL-PathTracer) \\\n[5] [RayTracingInVulkan](https://github.com/GPSnoopy/RayTracingInVulkan)\n","funding_links":[],"categories":["ComputerGraphics \u0026\u0026 Shadingv","C++"],"sub_categories":["Google Analytics"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FZielon%2FPBRVulkan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FZielon%2FPBRVulkan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FZielon%2FPBRVulkan/lists"}