{"id":40107096,"url":"https://github.com/teledhil/rtx","last_synced_at":"2026-01-19T11:34:20.149Z","repository":{"id":165561610,"uuid":"639435525","full_name":"Teledhil/rtx","owner":"Teledhil","description":"A work-in-progress ray tracing engine using Vulkan","archived":false,"fork":false,"pushed_at":"2023-05-15T12:26:06.000Z","size":16200,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-18T06:58:05.507Z","etag":null,"topics":["cpp","raytracing","vulkan"],"latest_commit_sha":null,"homepage":"","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/Teledhil.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}},"created_at":"2023-05-11T13:23:12.000Z","updated_at":"2023-05-17T12:45:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"9cc2ffd9-8feb-4364-b972-a39eeb39a62a","html_url":"https://github.com/Teledhil/rtx","commit_stats":{"total_commits":67,"total_committers":1,"mean_commits":67.0,"dds":0.0,"last_synced_commit":"203efd40f2e137c8f025dbdff2a98dd52b753d34"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Teledhil/rtx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Teledhil%2Frtx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Teledhil%2Frtx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Teledhil%2Frtx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Teledhil%2Frtx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Teledhil","download_url":"https://codeload.github.com/Teledhil/rtx/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Teledhil%2Frtx/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28566547,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T08:53:44.001Z","status":"ssl_error","status_checked_at":"2026-01-19T08:52:40.245Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cpp","raytracing","vulkan"],"created_at":"2026-01-19T11:34:20.085Z","updated_at":"2026-01-19T11:34:20.135Z","avatar_url":"https://github.com/Teledhil.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RTX\n\n[![Build Status](https://drone.teledhil.eu/api/badges/Teledhil/rtx/status.svg)](https://drone.teledhil.eu/Teledhil/rtx)\n\n![RTX ON](/assets/screenshots/arch.png)\n\nWelcome to RTX, a work-in-progress ray tracing engine built using Vulkan.\n\n## Overview\n\nThe engine leverages the NVIDIA's [VK_NV_ray_tracing](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_ray_tracing.html)\nextension, which was the only available option when I started working on this.\nConsecuently, an NVIDIA RTX GPU is currently required to utilize the ray tracing\npipeline. I plan to migrate the code to the cross-platform\n[VK_KHR_ray_tracing_pipeline](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_ray_tracing_pipeline.html)\nextension, now that I have a Steam Deck.\n\nFor those without an NVIDIA RTX GPU, the engine will gracefully fallback to a\nminimal rasterizer pipeline.\n\n![rasterization](/assets/screenshots/macOS.png)\n\n## Features\n\n* Utilizes the [tinyobjloader](https://github.com/tinyobjloader/tinyobjloader)\nlibrary to load textured Wavefront OBJ models, only one model can be loaded.\n* Provides a simple UI with settings and stats using [Dear\nImGui](https://github.com/ocornut/imgui).\n* A [timing heat\nmap](https://developer.nvidia.com/blog/profiling-dxr-shaders-with-timer-instrumentation/)\nof the time spent to draw each pixel.\n\n![heat map](/assets/screenshots/temperature.png)\n\n* Light reflection on metal and lambertian materials.\n* A single source of light. It's position and intensity can be adjusted in the\nUI.\n* Mouse support. Models can be rotated and the mouse wheel lets you zoom in or\nout.\n* Move around the scene using the WASD keys.\n\n\n## Build instructions\n\nRTX can be built and executed on Linux, macOS, and Windows (with Git Bash and\nMSYS2). Ensure you have VulkanSDK 1.3 installed, although it should also work\nwith Vulkan 1.2 after making a few modifications.\n\n\n### Linux\n* On *Ubuntu*, refer to the `Dockerfile` or follow this steps:\n  * Install the [VulkanSDK](https://vulkan.lunarg.com/sdk/home) Ubuntu package.\n  * Install the following packages: `clang cmake curl git libgl-dev libx11-dev libxcursor-dev libxi-dev libxinerama-dev libxrandr-dev ninja-build`.\n* On *Arch Linux*, install the following packages: `clang cmake curl git libglvnd libx11 libxcursor libxi libxinerama libxrandr ninja vulkan-devel`.\n\n\n### macOS:\n* Install the [VulkanSDK](https://vulkan.lunarg.com/sdk/home) Installer.\n* Install [Hombrew](https://brew.sh/) and the required packages using the\n  following command:\n```\nbrew install cmake git ninja\n```\n\nTo build and run RTX, follow these steps:\n* Clone the repo and its submodules:\n```\ngit clone --recursive https://github.com/Teledhil/rtx.git\n```\n\n* Build with:\n```\n./build.sh\n```\n\n* Launch the render with:\n```\n./_build/bin/rtx\n```\n\n## References\n\n* The [Ray Tracing in One Weekend](https://raytracing.github.io/books/RayTracingInOneWeekend.html) books\n* [Vulkan Tutorial](https://vulkan-tutorial.com/)\n* Sascha Willems's [Vulkan C++ examples and\n  demos](https://github.com/SaschaWillems/Vulkan)\n* [NVIDIA Vulkan Ray Tracing\n  Tutorials](https://github.com/nvpro-samples/vk_raytracing_tutorial_NV)\n* GPSnoopy's\n  [RayTracingInVulkan](https://github.com/GPSnoopy/RayTracingInVulkan)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteledhil%2Frtx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteledhil%2Frtx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteledhil%2Frtx/lists"}