{"id":29707611,"url":"https://github.com/pathogendavid/threel","last_synced_at":"2025-08-31T22:34:51.999Z","repository":{"id":183637415,"uuid":"660317467","full_name":"PathogenDavid/ThreeL","owner":"PathogenDavid","description":"An implementation of lighting via light linked list in Direct3D 12 with a side of PBR","archived":false,"fork":false,"pushed_at":"2024-03-19T05:08:06.000Z","size":54749,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-01T22:09:05.368Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pixelalchemy.dev/portfolio/threel/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PathogenDavid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2023-06-29T18:29:41.000Z","updated_at":"2024-04-13T18:20:04.000Z","dependencies_parsed_at":"2024-03-19T07:06:44.236Z","dependency_job_id":null,"html_url":"https://github.com/PathogenDavid/ThreeL","commit_stats":null,"previous_names":["pathogendavid/threel"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/PathogenDavid/ThreeL","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PathogenDavid%2FThreeL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PathogenDavid%2FThreeL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PathogenDavid%2FThreeL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PathogenDavid%2FThreeL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PathogenDavid","download_url":"https://codeload.github.com/PathogenDavid/ThreeL/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PathogenDavid%2FThreeL/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266717708,"owners_count":23973384,"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","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2025-07-23T17:11:26.452Z","updated_at":"2025-07-23T17:11:26.958Z","avatar_url":"https://github.com/PathogenDavid.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"ThreeL: An implementation of lighting via light linked list\r\n===============================================================================\r\n\r\n[![MIT Licensed](https://img.shields.io/github/license/pathogendavid/threel?style=flat-square\u0026)](LICENSE.txt)\r\n\r\nThreeL is an implementation of a somewhat unusual lighting algorithm, real-time lighting via light linked list.\r\n\r\nYou can read more about ThreeL and the lighting via light linked list algorithm [on my portfolio](https://pixelalchemy.dev/portfolio/threel/).\r\n\r\nPre-built binaries can be found [here on GitHub](https://github.com/PathogenDavid/ThreeL/releases/latest).\r\n\r\n![](Screenshot.png)\r\n\r\nThe project utilizes relatively thin abstractions, hopefully making it more friendly for beginners to learn something from. In this renderer you'll find:\r\n\r\n* Direct3D 12\r\n* Physically-based rendering (matching the [core glTF feature set](https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#appendix-b-brdf-implementation))\r\n* A forward renderer with a depth pre-pass\r\n* Generating mipmap chains in compute\r\n* Compute-based particle systems\r\n* Basic glTF loading (non-conformant, it's restricted to the features needed by ThreeL)\r\n* Bindless rendering (Specifically for textures/samplers used by PBR materials and some mesh data)\r\n* A few little Dear ImGui-based tools for fiddling with things\r\n\r\n## Controls\r\n\r\nMove with \u003ckbd\u003eWASD\u003c/kbd\u003e\\*, click and drag to look around. Hold \u003ckbd\u003eShift\u003c/kbd\u003e to sprint, \u003ckbd\u003eCtrl\u003c/kbd\u003e to move slowly.\r\n\r\nYou can also use an Xbox Controller. Click in the left stick to sprint.\r\n\r\nVarious debug visualizations, settings, and tools can be accessed using the UI.\r\n\r\n\u003csup\u003e(\\*Or \u003ckbd\u003eZWSD\u003c/kbd\u003e or \u003ckbd\u003e,AOE\u003c/kbd\u003e or \u003ckbd\u003eWARS\u003c/kbd\u003e whatever your keyboard uses for those keys. Arrow keys work too.)\u003c/sup\u003e\r\n\r\n## Building\r\n\r\nBuilding should be as simple as opening `ThreeL.sln` in Visual Studio 2022 and pressing F5.\r\n\r\n### Build Configurations\r\n\r\nThreeL has three build configrations:\r\n\r\n* Debug - Code optimizations disabled (including shaders) with debug layer \u0026 asserts – slowest\r\n* Checked - Optimizations enabled with asserts only – faster\r\n* Release - Optimizations enabled without asserts – fastest\r\n\r\nThe debug and checked configurations are instrumented with [WinPixEventRuntime](https://devblogs.microsoft.com/pix/winpixeventruntime/) if you're wanting to inspect the structure of the frame using [PIX](https://devblogs.microsoft.com/pix/download/) or [RenderDoc](https://renderdoc.org/).\r\n\r\n## License\r\n\r\nThreeL is licensed under the MIT License. [See the license file for details](LICENSE.txt).\r\n\r\nAdditionally, ThreeL has some third-party dependencies. [See the third-party notice listing for details](THIRD-PARTY-NOTICES.md).\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpathogendavid%2Fthreel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpathogendavid%2Fthreel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpathogendavid%2Fthreel/lists"}