{"id":17968721,"url":"https://github.com/k0bin/sourcerenderer","last_synced_at":"2025-03-25T10:32:39.143Z","repository":{"id":45927103,"uuid":"156135255","full_name":"K0bin/SourceRenderer","owner":"K0bin","description":"Toy game engine - Also known as dreieck.exe","archived":false,"fork":false,"pushed_at":"2025-03-20T01:02:36.000Z","size":35390,"stargazers_count":47,"open_issues_count":23,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-20T01:07:21.961Z","etag":null,"topics":["3d-graphics","csgo","rust","source-engine","vulkan"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/K0bin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2018-11-04T23:28:20.000Z","updated_at":"2025-03-20T01:02:42.000Z","dependencies_parsed_at":"2025-02-27T01:28:58.211Z","dependency_job_id":null,"html_url":"https://github.com/K0bin/SourceRenderer","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/K0bin%2FSourceRenderer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K0bin%2FSourceRenderer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K0bin%2FSourceRenderer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K0bin%2FSourceRenderer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/K0bin","download_url":"https://codeload.github.com/K0bin/SourceRenderer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245444421,"owners_count":20616372,"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":["3d-graphics","csgo","rust","source-engine","vulkan"],"created_at":"2024-10-29T14:41:21.787Z","updated_at":"2025-03-25T10:32:34.113Z","avatar_url":"https://github.com/K0bin.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SourceRenderer\nSource Engine map renderer written in Rust\n\nIt's a Rust port of https://github.com/K0bin/sourceloader and I plan to add a Vulkan renderer.\nThe main goal of this project is to learn Rust and Vulkan.\n\nFeatures:\n* rather basic Vulkan forward renderer\n  * temporal anti aliasing\n  * SSAO\n  * clustered forward shading (currently only supports point lights)\n  * incomplete PBR lighting\n  * Two render paths:\n    * Conservative:\n      * Frustum culling \u0026 occlusion culling (based on GPU queries)\n    * GPU driven:\n      * frustum culling in compute\n      * occlusion culling in compute using a hierarchical z-buffer\n      * bindless textures\n  * Vulkan ray tracing\n    * Soft shadows (denoising is still TODO)\n  * Late latching just before submission to minimize latency\n  * Texture streaming using a transfer queue\n* Pipelined rendering\n* loading Source engine maps:\n  * loading BSP levels\n    * basic brush geometry\n    * displacements (at least to some degree)\n    * light maps\n    * static models\n  * loading 2D VTF textures\n  * loading the most basic VMT materials\n* loading GLTF levels (currently without textures and needs to be rewritten to use less memory)\n\nPlatforms:\n* Desktop\n  * using SDL2\n  * tested on Linux \u0026 Windows\n  * shouldn't take too much work to make it work on Mac OS\n* Web version\n  * using web workers \u0026 SharedArrayBuffers for threading\n  * extremely limited WebGL2 renderer\n* Android version\n  * used the Vulkan renderer\n  * using Khronos Vulkan extension layers to support timeline semaphores\n    and synchronization2 on older drivers\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fk0bin%2Fsourcerenderer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fk0bin%2Fsourcerenderer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fk0bin%2Fsourcerenderer/lists"}