3D Procedural Terrain Generation and Texturing Tool in OpenGL/C++

Overview


GitHub repo size Lines of code GitHub commit activity
GitHub all releases SourceForge GitHub
Maintenance Support me on Patreon



TerraForge3D

3D Procedural Terrain Generation Tool in OpenGL/C++

Tweet: Check out TerraGen3D Free and Open Source Procedural Modelling and Texturing Software : https://github.com/Jaysmito101/TerraGen3D

Give your valuable feedback : https://github.com/Jaysmito101/TerraForge3D/discussions/6

Tutorials : Youtube

Join the Discord Server : https://discord.gg/AcgRafSfyB

What can this do?

  • Tribute to all who Starred or Contributed to the project
  • Procedural Texturing
  • Realistic Hydraulic Erosion Simulation (CPU & GPU modes)
  • Use custom HDRI Skyboxes
  • Water with reflections, ripples, waves.
  • OpenCL Support
  • Compute Shaders
  • Infinite First Person Terrain Explorer
  • Maze Generator using Binary Tree Algorithm
  • Generte 3D Terrain Procedrally
  • First Person Terrain Explorer
  • An Highly abstracted API for OpenGL which can be reused by other projects
  • Foliage and custom model importer and renderer
  • Pack Projects into completely portable .terr3dpack files
  • A Texture Store Powered By PolyHaven
  • Export Terrain mesh as OBJ
  • Easy and Userfriendly UI
  • Autosave and backup projects
  • Caching system
  • Asset Management
  • You can write and test your own shaders
  • An Inbuilt IDE for shaders
  • Test under different lighting
  • A proper 3D viewer
  • Sea with waves amd custom color
  • Video Tutorials(Youtube)
  • A Node based as well as Layer based workflow
  • Save the project(custom .terr3d files)
  • Hieght map visualizer in node editor
  • Wireframe mode
  • Custom Lighiting
  • Customizable Geometry Shaders included in rendering pipeline
  • Skyboxes
  • Multithreded Mesh Generation
  • Lua scripting to add custom algotrithms
  • Export to heightmaps(both PNG and also custom format)
  • Custom Skyboxes
  • Completely usable 3D procedural modelling and texturing pipeline

Note

  • When you are stating up the app for first time it will need to download some things and cache them you can see the console for deails
  • You can Show/Hide the console from Menu > Options > Toggle System Console.
  • Whenever you feel that something is wrong or the app is slow check the console for updates

Contributing

Since this project has become very large I would really love some help. Here are some things that you might contribute:

  • A Documentation (written or video guide)
  • Add comments to the source code
  • Add the small values here and there to serialization which I may have missed
  • Add Some more maze algorithms (like Kruskal's algorithm).(See BinaryTreeMazeNode for reference)
  • Report any bug you can find.
  • In case you write a general purpose script node in lua you may contribute it if you dont mind.
  • You can post the screenshots of your creations to https://github.com/Jaysmito101/TerraGen3D/issues/10

What of SHOWCASE?

After every 10 - 15 posts in https://github.com/Jaysmito101/TerraGen3D/issues/10 I would make a montage of all of them to show the capabilities of TerraGen3D!

Support

I am just a Highschool student so I may not have the best quality of code but still i am trying my best to write good code!

Any support would be highly appretiated!

For example you could add a feature and contribute via pull requests or you could even report any issues with the program!

And the best thing you could do to support this project is spread word about this so that more people who might be interested in this may use this!

Please considering tweeting about this!

Tweet: Check out TerraGen3D Free and Open Source Procedural Modelling and Texturing Software : https://github.com/Jaysmito101/TerraGen3D

Give your valuable feedback : https://github.com/Jaysmito101/TerraGen3D/discussions/6

Tutorials : Youtube

Join the Discord Server : https://discord.gg/AcgRafSfyB

TerraGen3D - 3D Procedural Node Based Terrain Generation Tool | Product Hunt

Visitors

Comments
  • The application only works with the debug version of the c library and not the release version!

    The application only works with the debug version of the c library and not the release version!

    The application only works with the debug version of the c library and not the release version!

    To Reproduce Steps to reproduce the behavior:

    1. Switch to release mode
    2. In the compioer options switch from /MTd to /MT
    3. Build the app
    4. On runni g you see that the mesh is not be9ng rendered

    Expected behavior Should run just same as when compiped in debug mode.

    bug help wanted severe fixed 
    opened by Jaysmito101 8
  • Fixed Bug Crash

    Fixed Bug Crash

    I have changed the original if statement from a 2 integer to an INFINITY integer. I also created a nodeCounter in case that is something you would like to keep track of.

    opened by QDaily117 2
  • Documentation Needed

    Documentation Needed

    We need a documentation for this project. For this I am opening this Issue. Incase anyone is interested in helping you are welcome! Also if you need any help you can contact directly via : https://discord.gg/gJjvDHFpSh

    documentation help wanted good first issue 
    opened by Jaysmito101 2
  • Python syntax error in Setup.bat

    Python syntax error in Setup.bat

    When running scripts/Setup.bat I am getting the following python error:

    Traceback (most recent call last): File "Setup.py", line 6, in import Utils File "D:\Programming\TerraForge3D\scripts\Utils.py", line 27 print(f"URL Error encountered: {e.reason}. Proceeding with backup...\n\n") ^ SyntaxError: invalid syntax

    What version of python is needed? I am running 2.7.5 and I don't see in the docs what version is expected.

    question fixed 
    opened by SirKnightTG 1
  • Add heightmap node

    Add heightmap node

    Hi, while playing around with CPU node editor, I found the texture node didn't work well for heightmaps. The smoothness gets worse extremely quickly as the mesh resolution increases. I created a node for properly dealing with and interpolating 16-bit heightmap images.

    Because I use Linux, I had to try fixing the file selection dialog first.

    Comparison with Texture node

    Here's a quick comparison. The Heightmap node was tested with a 4096 mesh resolution, which seems to be when more precision would be needed. The Texture node was unusable at only 1024.

    comparison

    enhancement 
    opened by malpas 1
  • Linux fix paths

    Linux fix paths

    PR to the #31 I've renamed PATH_SEPERATOR by PATH_SEPARATOR as it is the correct spelling. Then, I've replaced every \\, where it is not windows only, by PATH_SEPARATOR including Platform.h where it was missing.

    Hope nothing breaks :sweat_smile:

    fixed bugfix 
    opened by fiplox 1
  • [ImgBot] Optimize images

    [ImgBot] Optimize images

    Beep boop. Your images are optimized!

    Your image file size has been reduced by 19% ๐ŸŽ‰

    Details

    | File | Before | After | Percent reduction | |:--|:--|:--|:--| | /TerraForge3D/vendor/imnodes/img/imnodes.gif | 1,481.72kb | 294.72kb | 80.11% | | /Screenshots/Showcase/HeightMap1.png | 366.59kb | 135.12kb | 63.14% | | /Binaries/Data/textures/ui_thumbs/cube.png | 9.72kb | 4.34kb | 55.38% | | /Binaries/Data/textures/ui_thumbs/cone.png | 7.31kb | 3.54kb | 51.61% | | /Binaries/Data/textures/ui_thumbs/sphere.png | 9.99kb | 5.61kb | 43.86% | | /Binaries/Data/textures/ui_thumbs/torus.png | 20.59kb | 12.11kb | 41.19% | | /Binaries/Data/textures/ui_thumbs/cylinder.png | 4.29kb | 2.76kb | 35.66% | | /TerraForge3D/vendor/zip/zip.png | 5.15kb | 3.50kb | 32.11% | | /Screenshots/Showcase/Volcano.png | 2,616.80kb | 1,834.77kb | 29.88% | | /resources/icons-png-secondary/icon-7.png | 11.80kb | 8.80kb | 25.42% | | /Screenshots/Showcase/Desert Night.png | 435.51kb | 329.57kb | 24.33% | | /resources/icons-png-secondary/icon-5.png | 5.17kb | 3.95kb | 23.57% | | /resources/icons-png-secondary/icon-6.png | 8.27kb | 6.34kb | 23.34% | | /resources/icons-png-secondary/icon-8.png | 21.06kb | 16.51kb | 21.61% | | /Screenshots/UI/Screenshot (481).png | 352.78kb | 277.46kb | 21.35% | | /resources/icons-png/icon-7.png | 5.95kb | 4.68kb | 21.28% | | /resources/icons-png/icon-8.png | 9.79kb | 7.78kb | 20.45% | | /Screenshots/UI/CB.png | 479.71kb | 382.30kb | 20.31% | | /resources/icons-png/icon-9.png | 12.33kb | 9.85kb | 20.13% | | /resources/icons-png-secondary/icon-4.png | 3.62kb | 2.90kb | 19.91% | | /Screenshots/Showcase/Grassy Hillock.png | 642.65kb | 516.69kb | 19.60% | | /Screenshots/Showcase/Muddy Forest.png | 6,210.30kb | 5,005.30kb | 19.40% | | /resources/icons-png/icon-6.png | 4.06kb | 3.27kb | 19.31% | | /Screenshots/UI/Screenshot (482).png | 726.03kb | 588.44kb | 18.95% | | /Binaries/Data/textures/ui_thumbs/plane.png | 12.45kb | 10.13kb | 18.59% | | /Screenshots/UI/Screenshot (483).png | 423.43kb | 347.25kb | 17.99% | | /Screenshots/UI/Screenshot (484).png | 246.92kb | 202.85kb | 17.85% | | /Screenshots/Showcase/Sandy Desert 1.png | 3,539.60kb | 2,956.14kb | 16.48% | | /Screenshots/UI/Screenshot (485).png | 645.36kb | 539.27kb | 16.44% | | /Screenshots/UI/Screenshot (486).png | 645.36kb | 539.27kb | 16.44% | | /Screenshots/Showcase/Sandy Desert 2.png | 3,437.91kb | 2,885.90kb | 16.06% | | /resources/icons-png-secondary/icon-3.png | 2.26kb | 1.92kb | 15.11% | | /Screenshots/UI/NEFE.png | 673.23kb | 572.78kb | 14.92% | | /Screenshots/UI/Screenshot (493).png | 601.14kb | 513.61kb | 14.56% | | /Screenshots/UI/Screenshot (495).png | 552.94kb | 473.35kb | 14.39% | | /Screenshots/UI/Screenshot (494).png | 575.79kb | 493.37kb | 14.31% | | /Screenshots/UI/Screenshot (491).png | 476.63kb | 408.52kb | 14.29% | | /Screenshots/UI/NE.png | 562.55kb | 483.85kb | 13.99% | | /resources/icons-png-secondary/icon-9.png | 26.83kb | 23.08kb | 13.99% | | /Screenshots/UI/Screenshot (505).png | 507.44kb | 441.25kb | 13.04% | | /Screenshots/UI/Screenshot (507).png | 450.30kb | 392.92kb | 12.74% | | /Screenshots/UI/Screenshot (490).png | 357.04kb | 312.59kb | 12.45% | | /Screenshots/UI/Screenshot (492).png | 557.14kb | 490.68kb | 11.93% | | /Screenshots/UI/Screenshot (480).png | 616.42kb | 545.03kb | 11.58% | | /Screenshots/UI/Screenshot (504).png | 576.16kb | 511.00kb | 11.31% | | /resources/icons-png-secondary/icon-2.png | 1.61kb | 1.43kb | 11.21% | | /TerraForge3D/vendor/glfw/docs/spaces.svg | 107.67kb | 96.72kb | 10.17% | | /Screenshots/UI/Screenshot (503).png | 586.88kb | 527.25kb | 10.16% | | /Screenshots/UI/Screenshot (502).png | 572.66kb | 514.49kb | 10.16% | | /Screenshots/UI/Screenshot (500).png | 398.44kb | 362.88kb | 8.93% | | /Screenshots/UI/Screenshot (496).png | 381.57kb | 348.68kb | 8.62% | | /resources/icons-materials/diamond icon-9.png | 49.55kb | 45.65kb | 7.87% | | /Screenshots/UI/VC.png | 483.22kb | 445.45kb | 7.82% | | /Screenshots/UI/Screenshot (497).png | 375.93kb | 349.06kb | 7.15% | | /Screenshots/UI/Screenshot (501).png | 271.94kb | 254.87kb | 6.28% | | /Screenshots/UI/Screenshot (498).png | 466.45kb | 442.23kb | 5.19% | | /resources/icons-materials/bronze icon-9.png | 34.42kb | 32.71kb | 4.96% | | /Screenshots/UI/Screenshot (499).png | 463.93kb | 441.37kb | 4.86% | | /Screenshots/UI/Screenshot (506).png | 303.66kb | 290.45kb | 4.35% | | /Screenshots/UI/Screenshot (508).png | 234.18kb | 224.20kb | 4.26% | | /Screenshots/UI/Screenshot (489).png | 376.87kb | 362.86kb | 3.72% | | /resources/icons-materials/platinum icon-9.png | 29.55kb | 28.48kb | 3.62% | | /Screenshots/Showcase/Asteroid.png | 152.02kb | 146.62kb | 3.55% | | /Screenshots/UI/QB.png | 269.28kb | 263.33kb | 2.21% | | /resources/icons-materials/gold icon-9.png | 34.84kb | 34.08kb | 2.16% | | /Binaries/Data/textures/water_dudv.png | 252.30kb | 249.16kb | 1.25% | | /Screenshots/UI/Screenshot (488).png | 355.43kb | 351.24kb | 1.18% | | /Screenshots/UI/Screenshot (487).png | 355.43kb | 351.24kb | 1.18% | | /resources/icons-png/icon-3.png | 1.52kb | 1.52kb | 0.19% | | /resources/ReadmeHeader.png | 97.65kb | 97.50kb | 0.14% | | /resources/icons-png/icon-4.png | 2.00kb | 2.00kb | 0.10% | | /resources/icons-png/icon-5.png | 2.50kb | 2.49kb | 0.08% | | | | | | | Total : | 35,599.55kb | 28,873.02kb | 18.89% |


    ๐Ÿ“ docs | :octocat: repo | ๐Ÿ™‹๐Ÿพ issues | ๐Ÿช marketplace

    ~Imgbot - Part of Optimole family

    opened by imgbot[bot] 0
  • Add a Gitter chat badge to README.md

    Add a Gitter chat badge to README.md

    Jaysmito101/TerraGen3D now has a Chat Room on Gitter

    @Jaysmito101 has just created a chat room. You can visit it here: https://gitter.im/TerraGen3D/community.

    This pull-request adds this badge to your README.md:

    Gitter

    If my aim is a little off, please let me know.

    Happy chatting.

    PS: Click here if you would prefer not to receive automatic pull-requests from Gitter in future.

    opened by gitter-badger 0
  • Assertion Failure on Windows 8.1 - Will not run.

    Assertion Failure on Windows 8.1 - Will not run.

    Assertion Failure Screenshot (106)

    To Reproduce Steps to reproduce the behavior:

    1. Launch TerraForge3D.exe
    2. Within seconds Assertion error occurs

    Expected behavior Expected it to run as on Linux.

    Screenshots See above

    Desktop (please complete the following information):

    • OS: Windows 8.1
    bug help wanted 
    opened by true2thepen 1
  • Use higher bit-depth for texture baking

    Use higher bit-depth for texture baking

    Texture baking currently only exports an image with 8 bit depth. This causes noticeable stepping, because there are only 256 possible values to use. Supporting a 16 bit-depth is important for using the terrain with any other tool.

    Example

    When you take the texture baking output of this terrain: example

    And try to use it in something like Blender, you get this:

    example-blender

    It's also flipped for some reason (ExportTexture.cpp:23).

    Heightmap: height

    enhancement work in progress 
    opened by malpas 2
  • Please make AppImage package for Linux

    Please make AppImage package for Linux

    not running in Ubuntu 18.04 LTS

    ./TerraForge3D: /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.29' not found (required by ./TerraForge3D) ./TerraForge3D: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: versionGLIBCXX_3.4.26' not found (required by ./TerraForge3D)

    i have libstdc++6, 8.4.0-1ubuntu1~18.04 installed Ubuntu 18.04 LTS libc6 is 2.27-3ubuntu1.5

    Cn you release AppImage packages?

    bug 
    opened by lahtis 3
  • MacOS support

    MacOS support

    Describe the solution you'd like I'd like to see support for the mac by terraforge, because of the recent linux support when that becomes stable it shouldn't be a big problem adding macOS support. If needed, I can build terraforge for mac on my mac every time you want a new release! I would help with the code itself but I'm not familiar with the codebase and I'm relatively busy with exams and ongoing projects however, let me know if there's a small task I can help with on the repo! I'm sure that apple silicon will only get more relevant and powerful into the future based off the amazing performance of the new M1 chips.

    Describe alternatives you've considered I've already tried running terraforge in asahi and a vm, but it's terribly slow and gets me out of my workflow

    enhancement help wanted work in progress 
    opened by CMDR-Piboy314 2
  • Request for Nord Theme

    Request for Nord Theme

    This is something i need help with. It is to add a nord theme to terraforge3d! You can jse the theme editor to customize ui and styling ans save it as a normal savefile. Or you can also directly write the imgui code .

    enhancement help wanted good first issue 
    opened by Jaysmito101 0
Releases(v2.3)
  • v2.3(Mar 29, 2022)

    What's New?

    Shader Node Editor

    A blender like node editor for shaders.

    Texture Baker

    A new and advanced way for baking and exporting Textures.

    Added Linux Support

    Now TerraForge3D is supported natively on linux. โš ๏ธ Linux Version is in Alpha

    PBR Renderer

    Now TerraForge3D has a Physically Based Renderer for high quality preview

    New Modules API

    Now you can extend TerraForge3D however you want and write custom plugins using the powerful TerraForge3D SDK.

    Refactored Codebase

    Not a big thing from users point of view but for anyone wanting to develop TerraForge3D its a huge deal. The codebase has been massively cleaned up.

    There has been several small fixes and additions which are not mentioned here.

    Some Relevant PRs

    • Change directories in includes to lowercase by @lunaboards-dev in https://github.com/Jaysmito101/TerraForge3D/pull/26
    • Fix pixel alignment kept at default when loading textures from STBI by @ltjax in https://github.com/Jaysmito101/TerraForge3D/pull/27
    • Fix uniform IDs not being initialized by @ltjax in https://github.com/Jaysmito101/TerraForge3D/pull/28
    • Added Doxygen Support by @Jaysmito101 in https://github.com/Jaysmito101/TerraForge3D/pull/29
    • Linux build fixes. by @MalikuMane in https://github.com/Jaysmito101/TerraForge3D/pull/30
    • Linux fix paths by @fiplox in https://github.com/Jaysmito101/TerraForge3D/pull/32

    New Contributors

    • @lunaboards-dev made their first contribution in https://github.com/Jaysmito101/TerraForge3D/pull/26
    • @ltjax made their first contribution in https://github.com/Jaysmito101/TerraForge3D/pull/27
    • @MalikuMane made their first contribution in https://github.com/Jaysmito101/TerraForge3D/pull/30
    • @fiplox made their first contribution in https://github.com/Jaysmito101/TerraForge3D/pull/32

    Full Changelog: https://github.com/Jaysmito101/TerraForge3D/compare/v2.2...v2.3

    Source code(tar.gz)
    Source code(zip)
    TerraForge3D.Linux.tar.gz(16.78 MB)
    TerraForge3D.SDK.Linux.tar.gz(47.70 MB)
    TerraForge3D.SDK.Win64.zip(74.14 MB)
    TerraForge3D.Win64.zip(39.67 MB)
  • v2.2(Feb 18, 2022)

    Features

    TerraForge3D has got a series of features. Listing all of them is a very difficult task. Here are some of the major features.

    GPU Powered Terrain Generation

    TerraForge3D utilizes the power of your GPU to generate the terrains blazing fast. TerraForge3D utilizes OpenCL 2.0 to use your GPU. With GPU mesh generation you can work with extremely huge meshs in realtime.

    CPU Powered Terrain Generation

    There are somethings which cannot possible be done on a GPU as efficiently(like the node editor) so you can optionally mix GPU generation with CPU generation to get more control. Also if you GPU doesnt support OpenCL 2.0 you can still use the CPU mesh Generation. Also TerraForge's CPU Mesh Generation algorithms are made keeping efficiency and speed in mind thus they are extremely fast.

    No Limit on Resolution

    Most terrain generation applications limit you to a certain maximum resolution or only certain resolutions like (128, 256, ...) but not TerraForge3D! TerraForge3D Allows you to work with any resolution you can imagine of.

    Advanced Node Editor

    TerraForge3D has a very advanced Node Editor with 40+ different nodes which let you completely control how the terrain is generated. You can even use mathematical functions to shape your terrain!

    Physically Based Erosion

    TerraForge3D has several erosion algorithms(hydraulic, wind, ...) which lets you simulate the simulation on you procedurally generated terrains giving it an extra touch of realism. These algorithms simulate actual rain, wind, dust to give the best effect.

    Custom Shape Generation

    Procedural is great! But sometimes there must be a human touch! Thus TerraForge3D lets you customize your terrain by pmanyally placing terrrain features like hills, caters, cliffs, etc and combine it with procedural terrain.

    Custom Sky

    TerraForge3D allows you to completely customize the sky. You can use a sky box, sky dome. You can procedurally generate a sky or use a HDRI.

    Sea Level Visualization

    TerraForge3D also lets you visualize a sea to give you a idea of the sea level.

    Custom Shaders

    TerraForge3D allows you to have a custom shader(in GLSL). TerraForge3D also provides a inbuilt editor for writing your shaders!

    Texture Store & Texture Settings

    TerraForge3D gives you a huge collection of textures to download and use free of cost! Also TerraForge3D's texture settings give you fine control over how the mesh is textured.

    Universal

    TerraForge3D can export to a whole lot of 3D file formats like OBJ, GLTF, GLB, STL, ... . Also you can export heightmaps as PNG, JPG, ... . This makes TerraForge3D totally compitable with any program you can think of! Be it Blender, Unreal Engine, Uniy, Maya, anything.

    Source code(tar.gz)
    Source code(zip)
    LICENSE.md(1.09 KB)
    TerraForge3D.Win64.zip(39.46 MB)
  • v_08(Nov 11, 2021)

    โš ๏ธ SOME OF PRIOR VERSIONS HAVE STOPPED WORKING DUE TO REBRANDING TO TerraForge3D

    What can this do?

    • Anything you can think of for a terrain generation application!
    • Tribute to all who Starred or Contributed to the project
    • Procedural Texturing
    • Realistic Hydraulic Erosion Simulation (CPU & GPU modes)
    • Use custom HDRI Skyboxes
    • Water with reflections, ripples, waves.
    • OpenCL Support
    • Compute Shaders
    • Infinite First Person Terrain Explorer
    • Maze Generator using Binary Tree Algorithm
    • Generate 3D Terrain Procedurally
    • First Person Terrain Explorer
    • An Highly abstracted API for OpenGL which can be reused by other projects
    • Foliage and custom model importer and renderer
    • Pack Projects into completely portable .terr3dpack files
    • A Texture Store Powered By PolyHaven
    • Export Terrain mesh as OBJ
    • Easy and User friendly UI
    • Autosave and backup projects
    • Caching system
    • Asset Management
    • You can write and test your own shaders
    • An Inbuilt IDE for shaders
    • Test under different lighting
    • A proper 3D viewer
    • Sea with waves and custom color
    • Video Tutorials(Youtube)
    • A Node based as well as Layer based workflow
    • Save the project(custom .terr3d files)
    • Height map visualizer in node editor
    • Wireframe mode
    • Custom Lighting
    • Customizable Geometry Shaders included in rendering pipeline
    • Skyboxes
    • Multithreaded Mesh Generation
    • Lua scripting to add custom algorithms
    • Export to heightmaps(both PNG and also custom format)
    • Custom Skyboxes
    • Completely usable 3D procedural modelling and texturing pipeline
    Source code(tar.gz)
    Source code(zip)
    License.zip(24.41 KB)
    TerraForge3D.Win32.zip(29.33 MB)
  • v_07(Nov 11, 2021)

    โš ๏ธ SOME OF PRIOR VERSIONS HAVE STOPPED WORKING DUE TO REBRANDING TO TerraForge3D

    What can this do?

    • Anything you can think of for a terrain generation application!
    • Tribute to all who Starred or Contributed to the project
    • Procedural Texturing
    • Realistic Hydraulic Erosion Simulation (CPU & GPU modes)
    • Use custom HDRI Skyboxes
    • Water with reflections, ripples, waves.
    • OpenCL Support
    • Compute Shaders
    • Infinite First Person Terrain Explorer
    • Maze Generator using Binary Tree Algorithm
    • Generate 3D Terrain Procedurally
    • First Person Terrain Explorer
    • An Highly abstracted API for OpenGL which can be reused by other projects
    • Foliage and custom model importer and renderer
    • Pack Projects into completely portable .terr3dpack files
    • A Texture Store Powered By PolyHaven
    • Export Terrain mesh as OBJ
    • Easy and User friendly UI
    • Autosave and backup projects
    • Caching system
    • Asset Management
    • You can write and test your own shaders
    • An Inbuilt IDE for shaders
    • Test under different lighting
    • A proper 3D viewer
    • Sea with waves and custom color
    • Video Tutorials(Youtube)
    • A Node based as well as Layer based workflow
    • Save the project(custom .terr3d files)
    • Height map visualizer in node editor
    • Wireframe mode
    • Custom Lighting
    • Customizable Geometry Shaders included in rendering pipeline
    • Skyboxes
    • Multithreaded Mesh Generation
    • Lua scripting to add custom algorithms
    • Export to heightmaps(both PNG and also custom format)
    • Custom Skyboxes
    • Completely usable 3D procedural modelling and texturing pipeline
    Source code(tar.gz)
    Source code(zip)
    LICENSE.zip(24.13 KB)
    TerraForge3D.Win32.zip(8.65 MB)
  • v_06(Oct 31, 2021)

    What can this do?

    • Anything you can think of for a terrain generation application!
    • Tribute to all who Starred or Contributed to the project
    • Procedural Texturing
    • Realistic Hydraulic Erosion Simulation (CPU & GPU modes)
    • Use custom HDRI Skyboxes
    • Water with reflections, ripples, waves.
    • OpenCL Support
    • Compute Shaders
    • Infinite First Person Terrain Explorer
    • Maze Generator using Binary Tree Algorithm
    • Generate 3D Terrain Procedurally
    • First Person Terrain Explorer
    • An Highly abstracted API for OpenGL which can be reused by other projects
    • Foliage and custom model importer and renderer
    • Pack Projects into completely portable .terr3dpack files
    • A Texture Store Powered By PolyHaven
    • Export Terrain mesh as OBJ
    • Easy and User friendly UI
    • Autosave and backup projects
    • Caching system
    • Asset Management
    • You can write and test your own shaders
    • An Inbuilt IDE for shaders
    • Test under different lighting
    • A proper 3D viewer
    • Sea with waves and custom color
    • Video Tutorials(Youtube)
    • A Node based as well as Layer based workflow
    • Save the project(custom .terr3d files)
    • Height map visualizer in node editor
    • Wireframe mode
    • Custom Lighting
    • Customizable Geometry Shaders included in rendering pipeline
    • Skyboxes
    • Multithreaded Mesh Generation
    • Lua scripting to add custom algorithms
    • Export to heightmaps(both PNG and also custom format)
    • Custom Skyboxes
    • Completely usable 3D procedural modelling and texturing pipeline
    Source code(tar.gz)
    Source code(zip)
    Licenses.zip(53.05 KB)
    TerraGen3D.Win32.zip(10.80 MB)
  • v_05(Oct 22, 2021)

    What can this do?

    • Tribute to all who Starred or Contributed to the project
    • Procedural Texturing
    • Infinite First Person Terrain Explorer
    • Maze Generator using Binary Tree Algorithm
    • Generte 3D Terrain Procedrally
    • First Person Terrain Explorer
    • An Highly abstracted API for OpenGL which can be reused by other projects
    • Foliage and custom model importer and renderer
    • Pack Projects into completely portable .terr3dpack files
    • A Texture Store Powered By PolyHaven
    • Export Terrain mesh as OBJ
    • Easy and Userfriendly UI
    • Autosave and backup projects
    • Caching system
    • Asset Management
    • You can write and test your own shaders
    • An Inbuilt IDE for shaders
    • Test under different lighting
    • A proper 3D viewer
    • Sea with waves amd custom color
    • Video Tutorials(Youtube)
    • A Node based as well as Layer based workflow
    • Save the project(custom .terr3d files)
    • Hieght map visualizer in node editor
    • Wireframe mode
    • Custom Lighiting
    • Customizable Geometry Shaders included in rendering pipeline
    • Skyboxes
    • Multithreded Mesh Generation
    • Lua scripting to add custom algotrithms
    • Export to heightmaps(both PNG and also custom format)
    • Custom Skyboxes
    • Completely usable 3D procedural modelling and texturing pipeline
    Source code(tar.gz)
    Source code(zip)
    Demo.Savefiles.zip(73.68 KB)
    LICENSE.md(6.95 KB)
    ShowCase4.gif(20.03 MB)
    TerraGen3D.Win32.zip(13.50 MB)
  • v_04.1(Oct 17, 2021)

    What can this do?

    • Tribute to all who starred or contributed to the project
    • Generate 3D Terrain Procedurally
    • An Highly abstracted API for OpenGL which can be reused by other projects
    • Foliage and custom model importer and renderer
    • Pack Projects into completely portable .terr3dpack files
    • A Texture Store Powered By PolyHaven
    • Export Terrain mesh as OBJ
    • Easy and User-friendly UI
    • Autosave and backup projects
    • Caching system
    • Asset Management
    • You can write and test your own shaders
    • An Inbuilt IDE for shaders
    • Test under different lighting
    • A proper 3D viewer
    • Sea with waves and custom color
    • Video Tutorials(Youtube)
    • A Node based as well as Layer based workflow
    • Save the project(custom .terr3d files)
    • Height map visualizer in node editor
    • Wireframe mode
    • Custom Lighting
    • Customizable Geometry Shaders included in rendering pipeline
    • Skyboxes
    • Multithreaded Mesh Generation
    • Lua scripting to add custom algorithms
    • Export to heightmaps(both PNG and also custom format)
    • Custom Skyboxes
    • Completely usable 3D procedural modelling and texturing pipeline
    Source code(tar.gz)
    Source code(zip)
    Demo.Savefiles.zip(41.29 MB)
    Extra.Shaders.zip(5.49 KB)
    LICENSE.md(7.07 KB)
    TerraGen3D.Win32.zip(13.48 MB)
  • v_04(Oct 14, 2021)

    What can this do?

    • Tribute to all who starred or contributed to the project
    • Generte 3D Terrain Procedrally
    • An Highly abstracted API for OpenGL which can be reused by other projects
    • Foliage and custom model importer and renderer
    • Pack Projects into completely portable .terr3dpack files
    • A Texture Store Powered By PolyHaven
    • Export Terrain mesh as OBJ
    • Easy and Userfriendly UI
    • Autosave and backup projects
    • Caching system
    • Asset Management
    • You can write and test your own shaders
    • An Inbuilt IDE for shaders
    • Test under different lighting
    • A proper 3D viewer
    • Sea with waves amd custom color
    • Video Tutorials(Youtube)
    • A Node based as well as Layer based workflow
    • Save the project(custom .terr3d files)
    • Hieght map visualizer in node editor
    • Wireframe mode
    • Custom Lighiting
    • Customizable Geometry Shaders included in rendering pipeline
    • Skyboxes
    • Multithreded Mesh Generation
    • Lua scripting to add custom algotrithms
    • Export to heightmaps(both PNG and also custom format)
    • Custom Skyboxes
    • Completely usable 3D procedural modelling and texturing pipeline
    Source code(tar.gz)
    Source code(zip)
    Data.zip(4.85 MB)
    Demo.Savefiles.zip(41.29 MB)
    ShowCase2.gif(27.76 MB)
    TerraGen3D.Win32.zip(12.66 MB)
  • v_03(Sep 30, 2021)

    What can this do?

    • Generte 3D Terrain Procedrally
    • Export Terrain mesh as OBJ
    • You can write and test your own shaders
    • An Inbuilt IDE for shaders
    • Test under different lighting
    • A 3D viewer
    • A Node based as well as Layer based workflow
    • Save the project(custom .terr3d files)
    • Hieght map visualizer in node editor
    • Wireframe mode
    • Custom Lighiting
    • Customizable Geometry Shaders included in rendering pipeline
    • Skyboxes
    • Multithreded Mesh Generation
    • Lua scripting to add custom algotrithms
    • Export to heightmaps(both PNG and also custom format)
    • Custom Skyboxes
    • Completely usable 3D procedural modelling and texturing pipeline
    Source code(tar.gz)
    Source code(zip)
    Data.zip(4.73 MB)
    Demo.Savefiles.zip(2.65 MB)
    LICENSE.md(7.07 KB)
    Screenshots.zip(1.28 MB)
    Shaders.zip(2.24 KB)
    TerraGen3D.Win32.zip(6.96 MB)
Generate Height map with Generator (OpenGL and imgui) and Construct Splat Map with generated height map using Algorithm

Generate Height map with Generator (OpenGL and imgui) and Construct Splat Map with generated height map using Algorithm(DPS, BFS, Gradient Descent ... etc) . At Renderer, with height map and blend map which are generated in front of this stage, render high quality terrain with OpenGL

Snowapril 35 Mar 22, 2022
ZT is a zig-contained library that automatically compiles+links ImGui, OpenGL, and GLFW into typed packages.

ZT is a zig-contained library that automatically compiles+links ImGui, OpenGL, and GLFW into typed packages. By zig contained I mean that ZT is intend

null 90 Jan 1, 2023
Pangolin: a lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input.

What is Pangolin Pangolin is a lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input. A

Yee 1 Dec 25, 2021
OGL - A Great Cross Platform OpenGL Base Library With Everything You might Ever need

ogl OGL - A Great Cross Platform OpenGL Base Library With Everything You might Ever need

Jaysmito Mukherjee 55 Aug 11, 2022
Monster Mash: New Sketch-Based Modeling and Animation Tool

Monster Mash is a new sketch-based modeling and animation tool that allows you to quickly sketch a character, inflate it into 3D, and promptly animate it. You can perform all interactions in the sketching plane. No 3D manipulation is required.

Google 1.2k Dec 31, 2022
A tool for drawing 2d diagrams, 3d knots, Seifert surfaces. Computes some knot properties and invariants.

A tool for drawing 2d diagrams, 3d knots, Seifert surfaces. Computes some knot properties and invariants.

Nikolay Pultsin 8 Oct 18, 2022
Spotfetch - a tool to fetch spotify info with with ascii picture written in C++

A C++ fetch tool for spotify, its a cool little tool to retrieve information on current playing song on spotify. Run the command and be treated to a pixelated version of the album art accompanied by its information.

xfcisco 14 Nov 9, 2022
Rate-Distortion Optimized Lossy PNG Encoding Tool

rdopng is a command line tool which uses LZ match optimization, Lagrangian multiplier rate distortion optimization (RDO), a simple perceptual error tolerance model, and Oklab-based colorspace error metrics to encode 24/32bpp PNG files which are 30-80% smaller relative to lodepng/libpng.

Rich Geldreich 40 Dec 24, 2022
Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN and ACNet.

Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN and ACNet.

Aaron Feng 8.7k Jan 7, 2023
C++ image processing and machine learning library with using of SIMD: SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX-512, VMX(Altivec) and VSX(Power7), NEON for ARM.

Introduction The Simd Library is a free open source image processing and machine learning library, designed for C and C++ programmers. It provides man

Ihar Yermalayeu 1.7k Jan 5, 2023
CGIF, A fast and lightweight GIF encoder that can create GIF animations and images

CGIF, a GIF encoder written in C A fast and lightweight GIF encoder that can create GIF animations and images. Summary of the main features: user-defi

Daniel Lรถbl 75 Dec 28, 2022
libspng is a C library for reading and writing PNG format files with a focus on security and ease of use.

libspng (simple png) is a C library for reading and writing Portable Network Graphics (PNG) format files with a focus on security and ease of use.

Randy 570 Dec 29, 2022
A crude untested example showing how to retrieve and display images from multiple cameras with OpenCV and wxWidgets.

About wxOpenCVCameras is a crude untested example of how to retrieve and display images from multiple cameras, using OpenCV to grab images from a came

PB 8 Dec 14, 2022
An image and texture viewer for tga, png, apng, exr, dds, gif, hdr, jpg, tif, ico, webp, and bmp files

An image and texture viewer for tga, png, apng, exr, dds, gif, hdr, jpg, tif, ico, webp, and bmp files. Uses Dear ImGui, OpenGL, and Tacent. Useful for game devs as it displays information like the presence of an alpha channel and querying specific pixels for their colour.

Tristan Grimmer 159 Dec 31, 2022
PNG encoder and decoder in C and C++.

PNG encoder and decoder in C and C++, without dependencies

Lode Vandevenne 1.7k Dec 25, 2022
A bunch of functions and helpers classes for D3D12, and DXGI libraries

TypedD3D A bunch of functions and helpers classes for D3D12, and DXGI libraries Namespaces Helpers A bunch of helper functions that interface more wit

Renzy Alarcon 8 Sep 15, 2022
A toolkit for making real world machine learning and data analysis applications in C++

dlib C++ library Dlib is a modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++ to solve real worl

Davis E. King 11.6k Dec 31, 2022