{"id":15039335,"url":"https://github.com/the-man-w-laughs/obj-renderer","last_synced_at":"2026-03-27T04:59:05.564Z","repository":{"id":194979363,"uuid":"691996867","full_name":"the-man-w-laughs/Obj-Renderer","owner":"the-man-w-laughs","description":"A lightweight OBJ file renderer written in C# using the SFML library.","archived":false,"fork":false,"pushed_at":"2023-09-28T20:21:13.000Z","size":2986,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-13T15:17:04.030Z","etag":null,"topics":["c-sharp","dependency-injection","dot-net","flat-shading","lambertian-shading","matrix-transformations","obj-files","obj-parser","rendering-3d-graphics","sfml","unit-testing","xunit"],"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/the-man-w-laughs.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":"2023-09-15T10:34:01.000Z","updated_at":"2024-06-15T14:29:58.000Z","dependencies_parsed_at":"2025-01-20T10:41:55.725Z","dependency_job_id":"3c9472f5-6bbb-4e71-99db-9ac5fc0af918","html_url":"https://github.com/the-man-w-laughs/Obj-Renderer","commit_stats":null,"previous_names":["the-man-w-laughs/obj-renderer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/the-man-w-laughs%2FObj-Renderer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/the-man-w-laughs%2FObj-Renderer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/the-man-w-laughs%2FObj-Renderer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/the-man-w-laughs%2FObj-Renderer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/the-man-w-laughs","download_url":"https://codeload.github.com/the-man-w-laughs/Obj-Renderer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243428436,"owners_count":20289317,"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":["c-sharp","dependency-injection","dot-net","flat-shading","lambertian-shading","matrix-transformations","obj-files","obj-parser","rendering-3d-graphics","sfml","unit-testing","xunit"],"created_at":"2024-09-24T20:42:29.287Z","updated_at":"2025-12-29T03:02:42.275Z","avatar_url":"https://github.com/the-man-w-laughs.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OBJ File Renderer\n\n![Project Image](docs/obj-file-renderer.png)\n\nA lightweight OBJ file renderer written in C# using the SFML library. This project includes XUnit tests, an SFML-based presentation, manual matrix transformation capabilities, and dependency injection for extensibility. It also features a manual OBJ file parser for maximum control.\n\n## Features\n\n- Rendering of OBJ files\n- Manually parsed OBJ files\n- XUnit tests for code validation\n- SFML-based presentation for 3D visualization\n- Manual matrix transformation for manipulating models\n- Camera Position Adjustment\n- Lambertian light distribution model\n- Light Position Adjustment\n- Z-Buffer\n- Flat Shadowing\n- Dependency injection for flexibility and modularity\n\n### Manual Matrix Transformation\n\nFor manual matrix transformations and a deeper understanding of coordinate systems and transformations, you can refer to the [LearnOpenGL tutorial](https://learnopengl.com/Getting-started/Coordinate-Systems).\n\n### Camera Position Adjustment\n\nThis application also provides users with the ability to dynamically change the camera position.  \nFor a deeper understanding of camera positioning and the spherical coordinate system, you can refer to the [Wikipedia article on Spherical Coordinate Systems](https://en.wikipedia.org/wiki/Spherical_coordinate_system).\n\n### Flat Shadowing\n\nIf you'd like to delve deeper into the concept and implementation of flat shadowing, you can watch this informative video tutorial: [Flat Shadowing Tutorial](https://www.youtube.com/watch?v=kCCsko29pv0\u0026t=463s\u0026ab_channel=OGLDEV).\n\nTo run this project, you need to have the following prerequisites installed:\n\n- .NET Core SDK\n- SFML.NET\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthe-man-w-laughs%2Fobj-renderer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthe-man-w-laughs%2Fobj-renderer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthe-man-w-laughs%2Fobj-renderer/lists"}