All Projects → Illation → PlanetRenderer

Illation / PlanetRenderer

Licence: MIT License
A repo for my research on planet rendering in c++ | opengl **Now runs on Linux**

Programming Languages

C++
36643 projects - #6 most used programming language
GLSL
2045 projects
lua
6591 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to PlanetRenderer

Terrain-Generation-Study
Using Perlin noise to generate a map texture and then generate an LOD enabled terrain mesh from the map. This system was going to be used in a now abandoned project.
Stars: ✭ 23 (-62.9%)
Mutual labels:  terrain, lod
Real-Time-Rendering-4th-Bibliography-Collection
Real-Time Rendering 4th (RTR4) 参考文献合集典藏 | Collection of <Real-Time Rendering 4th (RTR4)> Bibliography / Reference
Stars: ✭ 2,806 (+4425.81%)
Mutual labels:  graphics-programming, rendering-3d-graphics
Dungeontemplatelibrary
🌏: Dungeon free resources (terrain & roguelike generation)
Stars: ✭ 595 (+859.68%)
Mutual labels:  terrain, graphics-programming
Procedural-Terrain-Generator-OpenGL
Procedural terrain generator with tessellation | C++ OpenGL 4.1
Stars: ✭ 98 (+58.06%)
Mutual labels:  terrain, graphics-programming
software-development-resources
Collection of links to great software development resources!
Stars: ✭ 20 (-67.74%)
Mutual labels:  graphics-programming, rendering-3d-graphics
rabbit-hole
An experimental voxel engine.
Stars: ✭ 39 (-37.1%)
Mutual labels:  terrain, lod
Thalatta
An open source terrain generation suite.
Stars: ✭ 37 (-40.32%)
Mutual labels:  terrain
GalaxyBreak
Galaxy Break is a minimalistic endless video game for mobile published for Android platform.
Stars: ✭ 21 (-66.13%)
Mutual labels:  graphics-programming
BRDFGenerator
BRDF LUT generation for PBR Pipelines
Stars: ✭ 97 (+56.45%)
Mutual labels:  graphics-programming
suika2
A Cross-platform Game Engine for Visual Novels
Stars: ✭ 66 (+6.45%)
Mutual labels:  cross-platform-game
PyQt-Sqlite-Project-CURD
Pyqt SQLite Project Have Features like Login, Add, Delete, Search, Update, Show the Students. In this, I show all the CURD operations of the Program. All Project is well represented and with interactive Toolbar & Menu bar. The database is included in the repository.
Stars: ✭ 41 (-33.87%)
Mutual labels:  graphics-programming
tdme2
TDME2 - ThreeDeeMiniEngine2 is a lightweight, multi-platform 3D engine including tools suited for 3D game/application development using C++
Stars: ✭ 86 (+38.71%)
Mutual labels:  terrain
ommpfritt
semantic, procedural, non-destructive vector modelling
Stars: ✭ 37 (-40.32%)
Mutual labels:  graphics-programming
ArtOfIllusion
Art of Illusion modeling and rendering suite - core application and tools
Stars: ✭ 58 (-6.45%)
Mutual labels:  rendering-3d-graphics
gamedevguide
Game Development & Unreal Engine Programming Guide
Stars: ✭ 314 (+406.45%)
Mutual labels:  graphics-programming
snap-to-tin
Snap vector features to the faces of a triangulated irregular network (TIN)
Stars: ✭ 18 (-70.97%)
Mutual labels:  terrain
terrain generator
A wizard that generates terrains for Gazebo using height maps.
Stars: ✭ 46 (-25.81%)
Mutual labels:  terrain
terrain
Create a 3d terrain with WebGL.
Stars: ✭ 43 (-30.65%)
Mutual labels:  terrain
awesome-glsl
🎇 Compilation of the best resources to learn programming OpenGL Shaders
Stars: ✭ 700 (+1029.03%)
Mutual labels:  graphics-programming
Xacor
Experimental Game Engine
Stars: ✭ 24 (-61.29%)
Mutual labels:  graphics-programming

PlanetRenderer

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

A repo for my research on planet rendering in c++ | opengl

Description

Basic Planet rendering using a version of the CDLOD algorithm with triangles instead of quads on an icosahedron. I regularly post updates about this project on my blog: http://leah-lindner.com/blog/category/project/planet-renderer/

Terrain

There 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.

Text Rendering Moon Planet terrain LOD Leah Lindner OpenGL Planet terrain LOD Rendering Leah Lindner

Demo Video (Click to open)

Link

Controls

Keys Function
F1 Screenshot
F2 Toggle Debug UI
W - S Change Camera Altitude
A - D Change Camera Longitude
NUM4 - NUM6 Change Camera Zoom
Z Toggle Wireframe
SPACE Lock Frustum
R Rotate Planet
UP - Down Change max subdivisions
LMB Rotate View

Framework

A 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.

Currently there is context managment, time, input managment, window settings, opengl and sdl initialization, shaders, camera, transforms, textures and text rendering.

Libraries

Libraries used: SDL2, GLM, OpenGL, DevIL

Font files created with BMFont.

Building

This framework uses Genie to generate project files: https://github.com/bkaradzic/GENie You need to install it and use it from a terminal, the easiest way to do that is adding it to your PATH You should obviously also be running on a computer that has the hardware and drivers for modern openGL.

Windows

Navigate to the folder where this readme is located in a terminal

genie --file=build\genie.lua vs2015

Open the generated visual studio solution

To build the project you need to define an environment variable or a macro for visual studio to find the above mentioned libraries. The variable is called "S_LIBS", and the value would be something like "C:\Dev\StaticLibraries". That folder needs to contain the .lib files and the include folders of SDL2, GLM and DevIL. For DevIL I suggest downloading the Windows SDK at version 1.8.

Hit F5

If 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. Alternativly you can modify the visual studio project include and library paths to suit your setup.

Linux

Make sure you have libraries for SDL2, GLM and DevIL installed, with -dev packages where applicable. You might need to change the path in the includedirs configuration in "build/genie.lua"

Navigate to the folder where this readme is located in a terminal

genie --file=build\genie.lua gmake

make

cp -R ./PlanetFramework/Fonts/ ./bin/release/
cp -R ./PlanetFramework/Textures/ ./bin/release/
cp -R ./PlanetFramework/Shaders/ ./bin/release/

Navigate to the release folder to make sure that it is your working directory (for file loading)

cd ./bin/release
./PlanetFramework
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].