{"id":25513349,"url":"https://github.com/ww92030-storage/vsc","last_synced_at":"2025-04-10T17:24:01.323Z","repository":{"id":275049919,"uuid":"924918821","full_name":"WW92030-STORAGE/VSC","owner":"WW92030-STORAGE","description":"Portable 3D Real-Time Rendering Engine in C++","archived":false,"fork":false,"pushed_at":"2025-04-03T21:37:53.000Z","size":2639,"stargazers_count":106,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-03T22:24:50.011Z","etag":null,"topics":["3d-graphics","graphics","graphics-engine","protogen","rasterization","rasterizer","render","rendering","rendering-engine"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WW92030-STORAGE.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2025-01-30T21:50:25.000Z","updated_at":"2025-04-03T21:37:56.000Z","dependencies_parsed_at":"2025-02-18T22:29:55.318Z","dependency_job_id":"73c7d919-cfb7-428b-9215-62e62e7241d8","html_url":"https://github.com/WW92030-STORAGE/VSC","commit_stats":null,"previous_names":["ww92030-storage/vsc"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WW92030-STORAGE%2FVSC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WW92030-STORAGE%2FVSC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WW92030-STORAGE%2FVSC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WW92030-STORAGE%2FVSC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WW92030-STORAGE","download_url":"https://codeload.github.com/WW92030-STORAGE/VSC/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248261959,"owners_count":21074229,"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","graphics","graphics-engine","protogen","rasterization","rasterizer","render","rendering","rendering-engine"],"created_at":"2025-02-19T11:19:32.589Z","updated_at":"2025-04-10T17:24:01.308Z","avatar_url":"https://github.com/WW92030-STORAGE.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VSC\r\n  \r\n\"I might have to wait, I'll never give up. I guess it's half timing, and the other half is luck...\" -Michael Buble  \r\n  \r\nVSC (VOUGA-SHREINER-CANTH) Verified is A real-time 3D rendering engine written _entirely using software_ with the intention of being portable.\r\nInspired by DoomGeneric with its rather novel approach to separating the backend from the frontend.  \r\nAlso self-inspired by my (NormalExisting's) other C++ backends mostly for games/clones such as The Witness and Chess.  \r\n  \r\nThis is a rasterizer. It uses computational techniques to approximate the reality of lights, shadows, textures, and materials.  \r\nIf you want a raytracer stay tuned for the sequel FINAL DESTINATION coming soon to theaters near you in the `src/raytracer` directory.  \r\n  \r\n# CREDITS  \r\n  \r\nEverything in here is based on the book Mathematics for 3D Game Programming and Computer Graphics (Third Edition) by Eric Lengyel, as well as various other resources including CS354H (UT Austin Computer Graphics Honors) and other online resources on graphics. \r\n\r\nMathematics for 3d Game Programming will be dubbed as the \"Skeleton Book\" because of its cover. All files were written primarily by NormalExisting using the Skeleton Book (et al.) as basis and inspiration.\r\n  \r\n# DEDICATIONS  \r\n  \r\nEtienne Vouga (Graphics Professor at UT Austin, some of his teachings influences this work)  \r\nDave Shreiner (Author of the Official OpenGL Guide)  \r\nCoela Canth (Creator of another rendering engine actually a raytracer)  \r\n\r\nVSC Verified is a community-made level created and completed (\"verified\") by player nSwish in the game Geometry Dash, intended to be a joke but also happens to be extremely challenging. It uses the song \"Haven't Met You Yet\" by Michael Buble as the background music, and requires several perfectly timed inputs to various rhythms presented by the song.  \r\n\r\n# HOW TO USE THIS\r\n\r\nLook in the `examples` folder for some example runner code. Or you can modify `main.cpp` as the runner. The Makefile provided is a template that builds and runs `main.cpp` and then the `render.py` which renders the contents of the output buffer (The buffer to render is to be specified in `render.py`).  \r\n  \r\nThere is also code in `ESP32` that makes this compatible with your ESP32.  \r\n  \r\nBe aware that the API is constantly changing as this is in development. However the changes should not need to be too severe.\r\n\r\nRudimentary documentation can be found in the `.docs` subdirectory.\r\n\r\n# HOW TO RECREATE THIS  \r\n  \r\nFollow the Skeleton book until the end of chapter 5. Some linear algebra background is recommended.  \r\nAfter chapter 5 we make the actual renderer that has the basic rendering abilities of single-color triangles and meshes under a directional light.  \r\nAnd then after that we go into the more juicy stuff such as texturing, clipping, visibility culling, and the like.  \r\n  \r\nThere is a document named `NOTES.md` that holds notes that might be useful. It's like playing a game of Super Metroid.\r\n\r\n# QUESTIONS/CONCERNS/ISSUES\r\n\r\nFeel free to push an issue, do a pull request, or simply contact me (NormalExisting on Discord, Bluesky, and Telegram).\r\n\r\n# SHOWCASE!\r\n|               |               |\r\n| ------------- | ------------- |\r\n| \u003cimg src=\"example_outputs/mcrproto.gif\" width=\"256\" height=\"256\" alt=\"Example!\"\u003e  | \u003cimg src=\"example_outputs/mcrproto.PNG\" width=\"256\" height=\"256\" alt=\"Example!\"\u003e  |\r\n| \u003cimg src=\"example_outputs/ray_traced_cubes.PNG\" width=\"256\" height=\"256\" alt=\"Example!\"\u003e  | \u003cimg src=\"example_outputs/cubemorph.gif\" width=\"256\" height=\"256\" alt=\"Example!\"\u003e  |\r\n\r\n\u003c!-- ![Example!](example_outputs/mcrproto.PNG?raw=true) --\u003e\r\n\u003c!-- ![Example!](example_outputs/mcrproto.gif?raw=true) --\u003e\r\n\u003c!-- ![Example!](example_outputs/ray_traced_cubes.PNG?raw=true) --\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fww92030-storage%2Fvsc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fww92030-storage%2Fvsc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fww92030-storage%2Fvsc/lists"}