{"id":19580773,"url":"https://github.com/mirzaim/ray-tracing-renderer","last_synced_at":"2025-02-26T12:16:03.343Z","repository":{"id":259216333,"uuid":"876426108","full_name":"mirzaim/ray-tracing-renderer","owner":"mirzaim","description":"A ray tracing engine developed in C++ that renders realistic 3D scenes.","archived":false,"fork":false,"pushed_at":"2024-10-23T13:42:02.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-09T05:18:41.570Z","etag":null,"topics":["3d-rendering","computer-graphics","cpp","openmp","path-tracing","raytracing","rendering"],"latest_commit_sha":null,"homepage":"","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/mirzaim.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":"2024-10-22T00:21:18.000Z","updated_at":"2024-10-23T13:42:11.000Z","dependencies_parsed_at":"2024-10-23T15:48:46.727Z","dependency_job_id":"772e9057-dce9-4be6-8028-09517e0ddbb8","html_url":"https://github.com/mirzaim/ray-tracing-renderer","commit_stats":null,"previous_names":["mirzaim/ray-tracing-renderer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirzaim%2Fray-tracing-renderer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirzaim%2Fray-tracing-renderer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirzaim%2Fray-tracing-renderer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirzaim%2Fray-tracing-renderer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mirzaim","download_url":"https://codeload.github.com/mirzaim/ray-tracing-renderer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240849054,"owners_count":19867617,"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-rendering","computer-graphics","cpp","openmp","path-tracing","raytracing","rendering"],"created_at":"2024-11-11T07:29:38.147Z","updated_at":"2025-02-26T12:16:03.203Z","avatar_url":"https://github.com/mirzaim.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Ray Tracing Renderer\n\nThis project is a ray tracing engine developed from scratch in C++ without any external dependencies. It focuses on rendering scenes with realistic lighting and reflections, using core principles of ray tracing. The renderer supports various materials and recursive reflections, showcasing how basic geometric shapes like spheres can be accurately rendered in 3D space.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/bc23d3b3-5987-4de8-aa84-2da7a895d908\" alt=\"ray tracing render output\"/\u003e\n\u003c/p\u003e\n\n### Overview\nThis ray tracer implements key features including:\n- Ray-sphere intersections\n- Recursive reflections and refractions for realistic lighting effects\n- Support for various materials like diffuse (Lambertian), metal, and dielectric (transparent)\n- Anti-aliasing for smoother image quality\n- Multi-threaded rendering using OpenMP (available in the `openmp-support` branch)\n\nIt was designed to explore the fundamentals of ray tracing, with additional optimizations such as OpenMP for faster performance.\n\n### Installation\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/mirzaim/ray-tracing-renderer.git\n   cd ray-tracing\n   ```\n\n2. Create a `build` folder for the compiled output:\n   ```bash\n   mkdir build\n   ```\n\n3. Use the provided Makefile to compile the project:\n   ```bash\n   make\n   ```\n\nFor OpenMP support, switch to the `openmp-support` branch and compile using the same process.\n\n### Usage\n\nRun the ray tracer with the default scene:\n```bash\n./build/main \u003e image.ppm\n```\n\nFor a high-quality scene (this takes much longer and uses OpenMP for faster performance):\n```bash\n./build/main 1 \u003e image.ppm\n```\n\nOpen the `image.ppm` file with an image viewer to see the rendered result.\n\n### Useful Resources\n\nDuring the development of this project, I found several resources helpful in understanding ray tracing concepts and improving the implementation. The following is a list of materials I used:\n\n1. [Ray Tracing in One Weekend](https://raytracing.github.io/books/RayTracingInOneWeekend.html)\n2. [The Ray Tracer Challenge](https://pragprog.com/titles/jbtracer/the-ray-tracer-challenge/)\n3. [Computer Graphics from Scratch](https://www.gabrielgambetta.com/computer-graphics-from-scratch/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmirzaim%2Fray-tracing-renderer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmirzaim%2Fray-tracing-renderer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmirzaim%2Fray-tracing-renderer/lists"}