{"id":18007519,"url":"https://github.com/illation/planetrenderer","last_synced_at":"2025-08-31T05:34:32.339Z","repository":{"id":91507768,"uuid":"71079356","full_name":"Illation/PlanetRenderer","owner":"Illation","description":"A repo for my research on planet rendering in c++ | opengl  **Now runs on Linux**","archived":false,"fork":false,"pushed_at":"2020-12-03T11:01:26.000Z","size":109330,"stargazers_count":100,"open_issues_count":2,"forks_count":17,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-07-25T22:47:57.381Z","etag":null,"topics":["cdlod","cross-platform-game","cross-platform-graphics","frustum-culling","graphics-programming","lod","opengl","rendering-3d-graphics","terrain"],"latest_commit_sha":null,"homepage":"http://www.leah-lindner.com/blog/","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/Illation.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}},"created_at":"2016-10-16T21:50:44.000Z","updated_at":"2025-06-24T15:06:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"d5213b48-c17d-4807-aa88-07edc5ff8e26","html_url":"https://github.com/Illation/PlanetRenderer","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Illation/PlanetRenderer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Illation%2FPlanetRenderer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Illation%2FPlanetRenderer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Illation%2FPlanetRenderer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Illation%2FPlanetRenderer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Illation","download_url":"https://codeload.github.com/Illation/PlanetRenderer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Illation%2FPlanetRenderer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272940990,"owners_count":25019018,"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","status":"online","status_checked_at":"2025-08-31T02:00:09.071Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["cdlod","cross-platform-game","cross-platform-graphics","frustum-culling","graphics-programming","lod","opengl","rendering-3d-graphics","terrain"],"created_at":"2024-10-30T01:13:41.160Z","updated_at":"2025-08-31T05:34:32.311Z","avatar_url":"https://github.com/Illation.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PlanetRenderer\n\n## **Work in this repository has been discontinued. The project lives on in a new repository, as it has been merged with my openGL framework: https://github.com/Illation/ETEngine**\n\n\n### A repo for my research on planet rendering in c++ | opengl\n\n#### Description\nBasic Planet rendering using a version of the CDLOD algorithm with triangles instead of quads on an icosahedron.\nI regularly post updates about this project on my blog: http://leah-lindner.com/blog/category/project/planet-renderer/\n\n#### Terrain\nThere is a recursively subdividing icosahedron. Triangles subdivide based on the distance from the camera and get culled when outside of the frustum. When drawn, every triangle instances a patch geometry, which allows for insane level of detail at high framerates, and morphs smoothly between subdivision levels.\n\n![Text Rendering Moon Planet terrain LOD Leah Lindner](http://i.imgur.com/csAW0tV.jpg)\n![OpenGL Planet terrain LOD Rendering Leah Lindner](http://i.imgur.com/qubk7gj.jpg)\n\n### Demo Video (Click to open)\n[![Link](https://i.ytimg.com/vi/66VysDSQ8Mw/maxresdefault.jpg)](https://www.youtube.com/watch?v=66VysDSQ8Mw)\n\n#### Controls\n| Keys | Function |\n| :---: |:--- |\n| F1 | Screenshot |\n| F2 | Toggle Debug UI |\n| W - S | Change Camera Altitude |\n| A - D | Change Camera Longitude |\n| NUM4 - NUM6 | Change Camera Zoom |\n| Z | Toggle Wireframe |\n| SPACE | Lock Frustum |\n| R | Rotate Planet |\n| UP - Down | Change max subdivisions |\n| LMB | Rotate View |\n\n#### Framework\nA lot of the code for the framework is copied from my openGL framework, but since I want a barebones techdemo as a result in order to keep all the code relevant, I did not code this in the framework itself.\n\nCurrently there is context managment, time, input managment, window settings, opengl and sdl initialization, shaders, camera, transforms, textures and text rendering.\n\n#### Libraries\nLibraries used: SDL2, GLM, OpenGL, DevIL\n\nFont files created with BMFont.\n\n#### Building\n\nThis framework uses Genie to generate project files: https://github.com/bkaradzic/GENie\nYou need to install it and use it from a terminal, the easiest way to do that is adding it to your PATH\nYou should obviously also be running on a computer that has the hardware and drivers for modern openGL.\n\n##### Windows\n\nNavigate to the folder where this readme is located in a terminal\n\n    genie --file=build\\genie.lua vs2015\n    \nOpen the generated visual studio solution\n\nTo build the project you need to define an environment variable or [a macro for visual studio](https://imgur.com/a/6uMFN) to find the above mentioned libraries.\nThe variable is called \"S_LIBS\", and the value would be something like \"C:\\Dev\\StaticLibraries\".\nThat folder needs to contain the .lib files and the include folders of SDL2, GLM and DevIL.\nFor DevIL I suggest downloading the [Windows SDK at version 1.8](https://sourceforge.net/projects/openil/files/DevIL%20Windows%20SDK/1.8.0/).\n\nHit F5\n\nIf there are any linker errors, check if your library directory matches the include and library paths, you might need to remove the version name from your folder.\nAlternativly you can modify the visual studio project include and library paths to suit your setup. \n\n##### Linux\n\nMake sure you have libraries for SDL2, GLM and DevIL installed, with -dev packages where applicable.\nYou might need to change the path in the includedirs configuration in \"build/genie.lua\"\n\nNavigate to the folder where this readme is located in a terminal\n\n    genie --file=build\\genie.lua gmake\n    \n    make\n    \n    cp -R ./PlanetFramework/Fonts/ ./bin/release/\n    cp -R ./PlanetFramework/Textures/ ./bin/release/\n    cp -R ./PlanetFramework/Shaders/ ./bin/release/\nNavigate to the release folder to make sure that it is your working directory (for file loading)\n\n    cd ./bin/release\n    ./PlanetFramework\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fillation%2Fplanetrenderer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fillation%2Fplanetrenderer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fillation%2Fplanetrenderer/lists"}