{"id":20708370,"url":"https://github.com/weakknight/restirpass","last_synced_at":"2025-04-23T02:24:27.167Z","repository":{"id":132492356,"uuid":"419777107","full_name":"WeakKnight/ReSTIRPass","owner":"WeakKnight","description":"ReSTIR Pass For Falcor","archived":false,"fork":false,"pushed_at":"2021-10-24T09:40:26.000Z","size":2839,"stargazers_count":8,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-29T21:11:19.602Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WeakKnight.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-21T15:24:49.000Z","updated_at":"2023-12-31T09:09:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"99f4b363-ce98-4f09-bd6f-011fc3b411a8","html_url":"https://github.com/WeakKnight/ReSTIRPass","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WeakKnight%2FReSTIRPass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WeakKnight%2FReSTIRPass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WeakKnight%2FReSTIRPass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WeakKnight%2FReSTIRPass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WeakKnight","download_url":"https://codeload.github.com/WeakKnight/ReSTIRPass/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250355673,"owners_count":21416948,"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":[],"created_at":"2024-11-17T01:30:52.196Z","updated_at":"2025-04-23T02:24:27.159Z","avatar_url":"https://github.com/WeakKnight.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ReSTIR Pass\n\n![result](images/result.png)  \n\na [Falcor](https://github.com/NVIDIAGameWorks/Falcor) render-pass for [ReSTIR](](https://research.nvidia.com/sites/default/files/pubs/2020-07_Spatiotemporal-reservoir-resampling/ReSTIR.pdf)) Based Direct Lighting, inspired by [RTXDI](https://developer.nvidia.com/rtxdi).\n\n## How to use\n\nAdd this project into the Falcor solution.  \n![file-tree-layout](images/layout.png)  \nAfter building this pass, you can load the render graph scripts under the project folder via Mogwai.  \n![render-graph-files](images/rendergraph.jpg)\n## Limitations\n\n\u003e I only used Falcor Light Sampler, including a hierarchical environment map sampler(see [EnvMapSampler](https://github.com/NVIDIAGameWorks/Falcor/blob/5236495554f57a734cc815522d95ae9a7dfe458a/Source/Falcor/Experimental/Scene/Lights/EnvMapSampler.slang)) and an [Alias-Method](http://cgi.cs.mcgill.ca/~enewel3/posts/alias-method/index.html) power-based emissive triangle sampler(see [EmissivePowerSampler](https://github.com/NVIDIAGameWorks/Falcor/blob/5236495554f57a734cc815522d95ae9a7dfe458a/Source/Falcor/Experimental/Scene/Lights/EmissivePowerSampler.slang)). If you want to support more light types(such as point light, directional light) or more efficient light sampling techniques, you need to implement corresponding light samplers as initial sampling primitives.\n\n\u003e For simplicity, I used VBuffer instead of GBuffer, but VBuffer may lead to more computation overhead.\n\n\u003e I did not do tricks like Pre-Sampling, Decoupled Shading(see [HPG2021 Rearch ReSTIR](https://research.nvidia.com/publication/2021-07_Rearchitecting-Spatiotemporal-Resampling)). If you want to improve performance further, you need to implement this kind of thing by yourself.\n\n\u003e I only implemented spatial resampling de-bias. You need to implement temporal de-bias by yourself.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweakknight%2Frestirpass","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fweakknight%2Frestirpass","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweakknight%2Frestirpass/lists"}