gitextract_y8dts4rh/ ├── .clang-format ├── .gitattributes ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── config.yml │ │ └── feature_request.yml │ ├── actions/ │ │ ├── base-deps/ │ │ │ └── action.yml │ │ └── build-cache/ │ │ └── action.yml │ └── workflows/ │ ├── android.yml │ ├── build.yml │ ├── ios.yml │ ├── linux.yml │ ├── macos.yml │ ├── web.yml │ └── windows.yml ├── .gitignore ├── .gitmodules ├── .readthedocs.yaml ├── AUTHORS.md ├── CONTRIBUTING.md ├── LICENSE.txt ├── README.md ├── SConstruct ├── Terrain3D.sln ├── Terrain3D.vcxproj ├── Terrain3D.vcxproj.filters ├── Terrain3D.vcxproj.user ├── doc/ │ ├── Makefile │ ├── _static/ │ │ └── theme_overrides.css │ ├── api/ │ │ ├── class_terrain3d.rst │ │ ├── class_terrain3dassets.rst │ │ ├── class_terrain3dcollision.rst │ │ ├── class_terrain3ddata.rst │ │ ├── class_terrain3deditor.rst │ │ ├── class_terrain3dinstancer.rst │ │ ├── class_terrain3dmaterial.rst │ │ ├── class_terrain3dmeshasset.rst │ │ ├── class_terrain3dregion.rst │ │ ├── class_terrain3dtextureasset.rst │ │ ├── class_terrain3dutil.rst │ │ └── index.rst │ ├── build_docs.sh │ ├── conf.py │ ├── doc_classes/ │ │ ├── Terrain3D.xml │ │ ├── Terrain3DAssets.xml │ │ ├── Terrain3DCollision.xml │ │ ├── Terrain3DData.xml │ │ ├── Terrain3DEditor.xml │ │ ├── Terrain3DInstancer.xml │ │ ├── Terrain3DMaterial.xml │ │ ├── Terrain3DMeshAsset.xml │ │ ├── Terrain3DRegion.xml │ │ ├── Terrain3DTextureAsset.xml │ │ └── Terrain3DUtil.xml │ ├── docs/ │ │ ├── authors.rst │ │ ├── building_from_source.md │ │ ├── collision.md │ │ ├── contributing.rst │ │ ├── controlmap_format.md │ │ ├── data_format.md │ │ ├── displacement.md │ │ ├── double_precision.md │ │ ├── games.md │ │ ├── generating_csharp_bindings.md │ │ ├── getting_help.md │ │ ├── heightmaps.md │ │ ├── import_export.md │ │ ├── installation.md │ │ ├── instancer.md │ │ ├── introduction.md │ │ ├── keyboard_shortcuts.md │ │ ├── license.rst │ │ ├── navigation.md │ │ ├── nightly_builds.md │ │ ├── occlusion_culling.md │ │ ├── platforms.md │ │ ├── press.md │ │ ├── programming_languages.rst │ │ ├── shader_design.md │ │ ├── system_architecture.md │ │ ├── texture_painting.md │ │ ├── texture_prep.md │ │ ├── tips_environment.md │ │ ├── tips_technical.md │ │ ├── troubleshooting.md │ │ ├── tutorial_videos.md │ │ └── user_interface.md │ ├── dump_contributors.py │ ├── index.rst │ ├── make.bat │ └── requirements.txt ├── project/ │ ├── Terrain3D.csproj │ ├── Terrain3D.sln │ ├── addons/ │ │ └── terrain_3d/ │ │ ├── brushes/ │ │ │ ├── .gdignore │ │ │ ├── acrylic1.exr │ │ │ ├── circle0.exr │ │ │ ├── circle1.exr │ │ │ ├── circle2.exr │ │ │ ├── circle3.exr │ │ │ ├── circle4.exr │ │ │ ├── hill1.exr │ │ │ ├── hill2.exr │ │ │ ├── mountain1.exr │ │ │ ├── mountain2.exr │ │ │ ├── mountain3.exr │ │ │ ├── mountain4.exr │ │ │ ├── peak1.exr │ │ │ ├── peak2.exr │ │ │ ├── peak3.exr │ │ │ ├── ring1.exr │ │ │ ├── smoke.exr │ │ │ ├── square1.exr │ │ │ ├── square2.exr │ │ │ ├── square3.exr │ │ │ ├── square4.exr │ │ │ ├── square5.exr │ │ │ ├── stones.exr │ │ │ ├── terrain1.exr │ │ │ ├── terrain2.exr │ │ │ ├── terrain3.exr │ │ │ ├── terrain4.exr │ │ │ ├── terrain5.exr │ │ │ ├── terrain6.exr │ │ │ ├── texture1.exr │ │ │ ├── texture2.exr │ │ │ ├── texture3.exr │ │ │ ├── texture4.exr │ │ │ ├── texture5.exr │ │ │ └── vegetation1.exr │ │ ├── csharp/ │ │ │ ├── Terrain3D.cs │ │ │ ├── Terrain3D.cs.uid │ │ │ ├── Terrain3DAssets.cs │ │ │ ├── Terrain3DAssets.cs.uid │ │ │ ├── Terrain3DCollision.cs │ │ │ ├── Terrain3DCollision.cs.uid │ │ │ ├── Terrain3DData.cs │ │ │ ├── Terrain3DData.cs.uid │ │ │ ├── Terrain3DEditor.cs │ │ │ ├── Terrain3DEditor.cs.uid │ │ │ ├── Terrain3DInstancer.cs │ │ │ ├── Terrain3DInstancer.cs.uid │ │ │ ├── Terrain3DMaterial.cs │ │ │ ├── Terrain3DMaterial.cs.uid │ │ │ ├── Terrain3DMeshAsset.cs │ │ │ ├── Terrain3DMeshAsset.cs.uid │ │ │ ├── Terrain3DRegion.cs │ │ │ ├── Terrain3DRegion.cs.uid │ │ │ ├── Terrain3DTextureAsset.cs │ │ │ ├── Terrain3DTextureAsset.cs.uid │ │ │ ├── Terrain3DUtil.cs │ │ │ └── Terrain3DUtil.cs.uid │ │ ├── extras/ │ │ │ ├── 3rd_party/ │ │ │ │ ├── import_sgt.gd │ │ │ │ ├── import_sgt.gd.uid │ │ │ │ ├── project_on_terrain3d.gd │ │ │ │ └── project_on_terrain3d.gd.uid │ │ │ ├── particle_example/ │ │ │ │ ├── Terrain3DParticles.tscn │ │ │ │ ├── grass.gdshader │ │ │ │ ├── grass.gdshader.uid │ │ │ │ ├── grass_material.tres │ │ │ │ ├── particles.gdshader │ │ │ │ ├── particles.gdshader.uid │ │ │ │ ├── process_material.tres │ │ │ │ ├── terrain_3D_particles.gd │ │ │ │ └── terrain_3D_particles.gd.uid │ │ │ └── shaders/ │ │ │ ├── M_ocean.tres │ │ │ ├── hex_grid.gdshaderinc │ │ │ ├── hex_grid.gdshaderinc.uid │ │ │ ├── lightweight.gdshader │ │ │ ├── lightweight.gdshader.uid │ │ │ ├── minimum.gdshader │ │ │ ├── minimum.gdshader.uid │ │ │ ├── ocean_shader.gdshader │ │ │ └── ocean_shader.gdshader.uid │ │ ├── icons/ │ │ │ ├── autoshader.svg.import │ │ │ ├── color_paint.svg.import │ │ │ ├── height_add.svg.import │ │ │ ├── height_div.svg.import │ │ │ ├── height_flat.svg.import │ │ │ ├── height_mul.svg.import │ │ │ ├── height_slope.svg.import │ │ │ ├── height_smooth.svg.import │ │ │ ├── height_sub.svg.import │ │ │ ├── holes.svg.import │ │ │ ├── layers.svg.import │ │ │ ├── multimesh.svg.import │ │ │ ├── navigation.svg.import │ │ │ ├── picker_checked.svg.import │ │ │ ├── region_add.svg.import │ │ │ ├── region_remove.svg.import │ │ │ ├── terrain3d.svg.import │ │ │ ├── texture_paint.svg.import │ │ │ ├── texture_spray.svg.import │ │ │ └── wetness.svg.import │ │ ├── menu/ │ │ │ ├── bake_lod_dialog.gd │ │ │ ├── bake_lod_dialog.gd.uid │ │ │ ├── bake_lod_dialog.tscn │ │ │ ├── baker.gd │ │ │ ├── baker.gd.uid │ │ │ ├── channel_packer.gd │ │ │ ├── channel_packer.gd.uid │ │ │ ├── channel_packer.tscn │ │ │ ├── channel_packer_dragdrop.gd │ │ │ ├── channel_packer_dragdrop.gd.uid │ │ │ ├── channel_packer_import_template.txt │ │ │ ├── directory_setup.gd │ │ │ ├── directory_setup.gd.uid │ │ │ ├── directory_setup.tscn │ │ │ ├── terrain_menu.gd │ │ │ └── terrain_menu.gd.uid │ │ ├── plugin.cfg │ │ ├── src/ │ │ │ ├── asset_dock.gd │ │ │ ├── asset_dock.gd.uid │ │ │ ├── asset_dock.tscn │ │ │ ├── double_slider.gd │ │ │ ├── double_slider.gd.uid │ │ │ ├── editor_plugin.gd │ │ │ ├── editor_plugin.gd.uid │ │ │ ├── gradient_operation_builder.gd │ │ │ ├── gradient_operation_builder.gd.uid │ │ │ ├── multi_picker.gd │ │ │ ├── multi_picker.gd.uid │ │ │ ├── operation_builder.gd │ │ │ ├── operation_builder.gd.uid │ │ │ ├── tool_settings.gd │ │ │ ├── tool_settings.gd.uid │ │ │ ├── toolbar.gd │ │ │ ├── toolbar.gd.uid │ │ │ ├── ui.gd │ │ │ └── ui.gd.uid │ │ ├── terrain.gdextension │ │ ├── terrain.gdextension.uid │ │ ├── tools/ │ │ │ ├── importer.gd │ │ │ ├── importer.gd.uid │ │ │ ├── importer.tscn │ │ │ ├── region_mover.gd │ │ │ └── region_mover.gd.uid │ │ └── utils/ │ │ ├── terrain_3d_objects.gd │ │ ├── terrain_3d_objects.gd.uid │ │ ├── transform_changed_notifier.gd │ │ └── transform_changed_notifier.gd.uid │ ├── demo/ │ │ ├── CodeGeneratedDemo.tscn │ │ ├── Demo.tscn │ │ ├── NavigationDemo.tscn │ │ ├── assets/ │ │ │ ├── materials/ │ │ │ │ ├── M_crystal_blue.tres │ │ │ │ ├── M_crystal_purple.tres │ │ │ │ ├── M_crystal_red.tres │ │ │ │ ├── M_rock23_black_tp.tres │ │ │ │ └── M_rock23_tp.tres │ │ │ ├── models/ │ │ │ │ ├── CrystalC.tscn │ │ │ │ ├── LOD10Example.tscn │ │ │ │ ├── LOD5Example.tscn │ │ │ │ ├── RockA.glb │ │ │ │ ├── RockA.glb.import │ │ │ │ ├── RockA.tscn │ │ │ │ ├── RockB.glb │ │ │ │ ├── RockB.glb.import │ │ │ │ ├── RockB.tscn │ │ │ │ ├── RockC.glb │ │ │ │ ├── RockC.glb.import │ │ │ │ ├── RockC.tscn │ │ │ │ ├── Tunnel.glb │ │ │ │ ├── Tunnel.glb.import │ │ │ │ └── Tunnel.tscn │ │ │ └── textures/ │ │ │ ├── asset_licenses.txt │ │ │ ├── ground037_alb_ht.png.import │ │ │ ├── ground037_nrm_rgh.png.import │ │ │ ├── rock023_alb_ht.png.import │ │ │ └── rock023_nrm_rgh.png.import │ │ ├── components/ │ │ │ ├── DemoBenchmark.tscn │ │ │ ├── Enemy.tscn │ │ │ ├── Environment.tscn │ │ │ ├── Player.tscn │ │ │ ├── Tunnel.tscn │ │ │ └── UI.tscn │ │ ├── csharp/ │ │ │ ├── CodeGenerated.cs │ │ │ ├── CodeGenerated.cs.uid │ │ │ └── CodeGeneratedCSDemo.tscn │ │ ├── data/ │ │ │ ├── M_terrain.tres │ │ │ ├── assets.tres │ │ │ ├── nav_mesh.res │ │ │ ├── terrain3d_00-01.res │ │ │ ├── terrain3d_00-02.res │ │ │ └── terrain3d_00_00.res │ │ └── src/ │ │ ├── CameraManager.gd │ │ ├── CameraManager.gd.uid │ │ ├── CaveEntrance.gd │ │ ├── CaveEntrance.gd.uid │ │ ├── CodeGenerated.gd │ │ ├── CodeGenerated.gd.uid │ │ ├── DemoScene.gd │ │ ├── DemoScene.gd.uid │ │ ├── Enemy.gd │ │ ├── Enemy.gd.uid │ │ ├── Player.gd │ │ ├── Player.gd.uid │ │ ├── RuntimeNavigationBaker.gd │ │ ├── RuntimeNavigationBaker.gd.uid │ │ ├── UI.gd │ │ └── UI.gd.uid │ ├── icon.png.import │ └── project.godot ├── src/ │ ├── constants.h │ ├── generated_texture.cpp │ ├── generated_texture.h │ ├── logger.h │ ├── register_types.cpp │ ├── register_types.h │ ├── shaders/ │ │ ├── auto_shader.glsl │ │ ├── backgrounds.glsl │ │ ├── debug_views.glsl │ │ ├── displacement.glsl │ │ ├── displacement_buffer.glsl │ │ ├── dual_scaling.glsl │ │ ├── editor_functions.glsl │ │ ├── gpu_depth.glsl │ │ ├── macro_variation.glsl │ │ ├── main.glsl │ │ ├── overlays.glsl │ │ ├── pbr_views.glsl │ │ ├── projection.glsl │ │ └── samplers.glsl │ ├── target_node_3d.h │ ├── terrain_3d.cpp │ ├── terrain_3d.h │ ├── terrain_3d_asset_resource.h │ ├── terrain_3d_assets.cpp │ ├── terrain_3d_assets.h │ ├── terrain_3d_collision.cpp │ ├── terrain_3d_collision.h │ ├── terrain_3d_data.cpp │ ├── terrain_3d_data.h │ ├── terrain_3d_editor.cpp │ ├── terrain_3d_editor.h │ ├── terrain_3d_instancer.cpp │ ├── terrain_3d_instancer.h │ ├── terrain_3d_material.cpp │ ├── terrain_3d_material.h │ ├── terrain_3d_mesh_asset.cpp │ ├── terrain_3d_mesh_asset.h │ ├── terrain_3d_mesher.cpp │ ├── terrain_3d_mesher.h │ ├── terrain_3d_region.cpp │ ├── terrain_3d_region.h │ ├── terrain_3d_texture_asset.cpp │ ├── terrain_3d_texture_asset.h │ ├── terrain_3d_util.cpp │ ├── terrain_3d_util.h │ ├── unit_testing.cpp │ └── unit_testing.h └── tools/ ├── build_release.sh ├── hooks/ │ ├── asmessage.applescript │ ├── canonicalize_filename.sh │ ├── pre-commit │ ├── pre-commit-clang-format │ └── winmessage.ps1 └── install-hooks.py