├── .gitignore ├── LICENSE ├── README.md ├── godot ├── Demos │ ├── Blur │ │ ├── AsteroidTrail.gd │ │ ├── BlurDirection.gd │ │ ├── BlurredPresentation.gd │ │ ├── MotionBlurScene.gd │ │ ├── PrecomputeGaussianKernel.gd │ │ ├── ShakingCamera.gd │ │ ├── ShakingCamera.tscn │ │ ├── Ship.gd │ │ ├── Ship.tscn │ │ ├── SpaceBackground.tscn │ │ ├── asteroid-round.svg │ │ ├── asteroid-round.svg.import │ │ ├── topdown-player.svg │ │ └── topdown-player.svg.import │ ├── BlurGlowDemo.tscn │ ├── BlurViewportContainersDemo.tscn │ ├── BlurViewportTexturesDemo.tscn │ ├── Clouds2D │ │ ├── clouds_noise1.tres │ │ ├── clouds_noise2.tres │ │ ├── topdown-adventure.svg │ │ └── topdown-adventure.svg.import │ ├── Clouds2DDemo.tscn │ ├── Crystals │ │ ├── Crystal_Albedo.png │ │ ├── Crystal_Albedo.png.import │ │ ├── Crystal_Emission.png │ │ ├── Crystal_Emission.png.import │ │ ├── Crystal_Normal.png │ │ ├── Crystal_Normal.png.import │ │ ├── LICENSE │ │ ├── crystals.glb │ │ └── crystals.glb.import │ ├── CrystalsDemo.tscn │ ├── Dissolve │ │ ├── Dissolve2D │ │ │ ├── Dissolve2DControls.gd │ │ │ ├── DissolveController.gd │ │ │ ├── DissolveMaskController.gd │ │ │ ├── Particles2D.gd │ │ │ ├── black.png │ │ │ ├── black.png.import │ │ │ └── color_ramp.tres │ │ ├── Dissolve3D │ │ │ ├── DissolveMaterial.tres │ │ │ └── DissolvingSphere.gd │ │ └── noise_tex.tres │ ├── Dissolve2DDemo.tscn │ ├── Dissolve3DDemo.tscn │ ├── EnvironmentGlowDemo.tscn │ ├── Flag3D │ │ └── Flag3DScene.tscn │ ├── Flag3DDemo.tscn │ ├── ForceField │ │ ├── ForceFieldEmitter.gd │ │ ├── ForceFieldScene.tscn │ │ ├── force_field_material.tres │ │ ├── hexagon_grid.png │ │ └── hexagon_grid.png.import │ ├── ForceFieldDemo.tscn │ ├── Glow2D │ │ ├── BlurGlow │ │ │ ├── GlowSprite.gd │ │ │ └── Scene.tscn │ │ ├── glowy_arrow.png │ │ └── glowy_arrow.png.import │ ├── ImpossibleCube │ │ ├── ImpossibleCubeBase.tscn │ │ ├── Rotate.gd │ │ ├── cube_full.obj │ │ ├── cube_full.obj.import │ │ ├── cube_hollow.obj │ │ ├── cube_hollow.obj.import │ │ ├── cube_stencil.png │ │ └── cube_stencil.png.import │ ├── ImpossibleCubeDemo.tscn │ ├── InteractiveSnow │ │ ├── InteractiveSnowMaterial.tres │ │ ├── InteractiveSnowPlane.glb │ │ ├── InteractiveSnowPlane.glb.import │ │ ├── InteractiveSnowViewport.gd │ │ ├── InteractiveSnowball.gd │ │ ├── Textures │ │ │ ├── BlendTexture.jpg │ │ │ ├── BlendTexture.jpg.import │ │ │ ├── Ground039_1K_Color.jpg │ │ │ ├── Ground039_1K_Color.jpg.import │ │ │ ├── Ground039_1K_Normal.jpg │ │ │ ├── Ground039_1K_Normal.jpg.import │ │ │ ├── Ground039_1K_Roughness.jpg │ │ │ ├── Ground039_1K_Roughness.jpg.import │ │ │ ├── Snow004_1K_Color.jpg │ │ │ ├── Snow004_1K_Color.jpg.import │ │ │ ├── Snow004_1K_Normal.jpg │ │ │ ├── Snow004_1K_Normal.jpg.import │ │ │ ├── Snow004_1K_Roughness.jpg │ │ │ ├── Snow004_1K_Roughness.jpg.import │ │ │ ├── testmask.png │ │ │ └── testmask.png.import │ │ ├── TrailTexture.png │ │ ├── TrailTexture.png.import │ │ ├── TrailTip.png │ │ └── TrailTip.png.import │ ├── InteractiveSnowDemo.tscn │ ├── InvertedColorsDemo.tscn │ ├── MatCap │ │ ├── Chrome_matcap.png │ │ ├── Chrome_matcap.png.import │ │ ├── MatCapScene.tscn │ │ ├── black_glass_matcap.jpeg │ │ ├── black_glass_matcap.jpeg.import │ │ ├── copper_matcap.png │ │ ├── copper_matcap.png.import │ │ ├── flat_sketch_matcap.png │ │ ├── flat_sketch_matcap.png.import │ │ ├── glowy_matcap.jpeg │ │ ├── glowy_matcap.jpeg.import │ │ ├── plastic_matcap.jpg │ │ ├── plastic_matcap.jpg.import │ │ ├── red_matcap.png │ │ ├── red_matcap.png.import │ │ ├── redjade_matcap.png │ │ ├── redjade_matcap.png.import │ │ ├── skin_matcap.png │ │ └── skin_matcap.png.import │ ├── MatCapDemo.tscn │ ├── NoiseDemo.tscn │ ├── Outline │ │ ├── Outline2D │ │ │ ├── Cursor.gd │ │ │ ├── Outline.gd │ │ │ ├── OutlineBothDirections.tscn │ │ │ ├── OutlineInner.tscn │ │ │ ├── OutlineOuter.tscn │ │ │ ├── mouse_cursor.png │ │ │ └── mouse_cursor.png.import │ │ └── Outline3D │ │ │ ├── AnimatedOutline.gd │ │ │ ├── CameraMouseHover.gd │ │ │ ├── Outline3DScene.tscn │ │ │ ├── OutlinePopArea.gd │ │ │ └── SmoothNormalsMeshInstance.gd │ ├── Outline2DDemo.tscn │ ├── Outline3DDemo.tscn │ ├── PaletteSwap2D │ │ ├── KingsAndPigs_color_sets.png │ │ ├── KingsAndPigs_color_sets.png.import │ │ ├── KingsAndPigs_greyscale_sprite.png │ │ ├── KingsAndPigs_greyscale_sprite.png.import │ │ └── PaletteSwapSprite.gd │ ├── PaletteSwap2DDemo.tscn │ ├── ParticleBridge │ │ ├── ParticleBridgeDemo.gd │ │ └── RigidPlayer.gd │ ├── ParticleBridgeDemo.tscn │ ├── PixelPerfectOutline3DDemo.tscn │ ├── PointilismDemo.tscn │ ├── PreBakedGlowDemo.tscn │ ├── Reflection2D │ │ ├── Reflection2D.gd │ │ ├── Reflection2DTextureRect.gd │ │ └── mirror_y.gdshader │ ├── Reflection2DDemo.tscn │ ├── Reflection2DTextureRectDemo.tscn │ ├── Shockwave │ │ ├── Shockwave.gd │ │ ├── ShockwaveMaterial.tres │ │ ├── ShockwaveScene.tscn │ │ └── basic_blue.tres │ ├── Shockwave3D │ │ ├── Scene.blend │ │ ├── Scene.blend.import │ │ ├── Shockwave.gd │ │ ├── Shockwave3DMaterial.tres │ │ └── Shockwave3DScene.tscn │ ├── Shockwave3DDemo.tscn │ ├── ShockwaveDemo.tscn │ ├── SphereMask │ │ ├── .LanternAlbedo.png-autosave.kra │ │ ├── BridgeBody.mesh │ │ ├── BridgeMaterial.tres │ │ ├── Lantern.mesh │ │ ├── LanternAlbedo.png │ │ ├── LanternAlbedo.png.import │ │ ├── LanternMaterial.material │ │ ├── LanternMaterialEmissive.material │ │ ├── LanternPositionToMaterial.gd │ │ ├── PaperTransmission.jpg │ │ ├── PaperTransmission.jpg.import │ │ ├── Poles.mesh │ │ ├── PolesMaterial.material │ │ ├── PolesTexture.jpeg │ │ ├── PolesTexture.jpeg.import │ │ ├── SphereMaskMaterial.material │ │ ├── bridge-lantern.blend │ │ ├── bridge-lantern.blend.import │ │ ├── bridge-lantern.glb │ │ └── bridge-lantern.glb.import │ ├── SphereMaskDemo.tscn │ ├── StylizedFire │ │ ├── BlueFireGradient.tres │ │ ├── CloudNoise.tres │ │ ├── FireGradient.tres │ │ ├── FireMask.png │ │ ├── FireMask.png.import │ │ ├── GreenFireGradient.tres │ │ ├── HoleNoise.png │ │ ├── HoleNoise.png.import │ │ ├── WispyNoise.png │ │ └── WispyNoise.png.import │ ├── StylizedFireDemo.tscn │ ├── StylizedLiquid │ │ ├── LiquidWobble.gd │ │ ├── Models │ │ │ ├── Beige.material │ │ │ ├── Glass.material │ │ │ ├── Red.material │ │ │ ├── potionLarge_red.gltf.glb │ │ │ └── potionLarge_red.gltf.glb.import │ │ └── PotionLarge.tscn │ ├── StylizedLiquidDemo.tscn │ ├── StylizedWaterfall │ │ ├── RocksMaterial.material │ │ ├── RocksMaterial.tres │ │ ├── RocksMaterial_001.material │ │ ├── Sand_001.material │ │ ├── WaterMaterial.tres │ │ ├── WaterfallMaterial_001.material │ │ ├── WaterfallMesh.blend │ │ ├── WaterfallMesh.blend.import │ │ ├── WaterfallMesh.blend.zip │ │ ├── WaterfallMesh.blend1 │ │ ├── WaterfallMesh.dae │ │ ├── WaterfallMesh.dae.import │ │ ├── color-uv.png │ │ ├── color-uv.png.import │ │ ├── rock-color.jpg │ │ └── rock-color.jpg.import │ ├── StylizedWaterfallDemo.tscn │ ├── TextureMix │ │ ├── MixMaterial.tres │ │ ├── TextureMixDemo.gd │ │ ├── lambert2.material │ │ ├── scene.glb │ │ ├── scene.glb.import │ │ └── textures │ │ │ ├── Moss003_1K_Color.jpg │ │ │ ├── Moss003_1K_Color.jpg.import │ │ │ ├── Moss003_1K_Normal.jpg │ │ │ ├── Moss003_1K_Normal.jpg.import │ │ │ ├── lambert2_ao.jpg │ │ │ ├── lambert2_ao.jpg.import │ │ │ ├── lambert2_ao.png.import │ │ │ ├── lambert2_baseColor.jpeg │ │ │ ├── lambert2_baseColor.jpeg.import │ │ │ ├── lambert2_normal.jpg │ │ │ └── lambert2_normal.jpg.import │ ├── TextureMixDemo.tscn │ ├── UnlitDirectionalTint.tscn │ ├── UnlitDirectionalTint │ │ └── UnlitDirectionalTint.tres │ ├── Water2D │ │ ├── Water2D.gd │ │ ├── disk_mask.png │ │ ├── disk_mask.png.import │ │ ├── water_2D_material.tres │ │ ├── water_diffuse.png │ │ ├── water_diffuse.png.import │ │ ├── water_normal.png │ │ ├── water_normal.png.import │ │ ├── water_uv_offset.png │ │ └── water_uv_offset.png.import │ ├── Water2DDemo.tscn │ ├── Water3D │ │ ├── diffuse.png │ │ ├── diffuse.png.import │ │ ├── normal.png │ │ ├── normal.png.import │ │ ├── rocks.glb │ │ ├── rocks.glb.import │ │ ├── specular.png │ │ └── specular.png.import │ ├── Water3DDemo.tscn │ ├── WaterSidescroll2D │ │ ├── WaterSidescroll2D.gd │ │ ├── water_sidescroll_2D_full.gdshader │ │ └── water_sidescroll_2D_simple.gdshader │ ├── WaterSidescroll2DDemo.tscn │ ├── WindGrass │ │ ├── GrassMesh.gd │ │ ├── WindGrassScene.tscn │ │ ├── grass_triangle.obj │ │ ├── grass_triangle.obj.import │ │ ├── unshaded.gdshader │ │ └── wind_grass.tres │ ├── WindGrassDemo.tscn │ ├── WindTrees │ │ ├── FolliageWindGrassMaterial.tres │ │ ├── FolliageWindTreeLeavesMaterial.tres │ │ ├── FolliageWindTreeTrunkMaterial.tres │ │ ├── Models │ │ │ ├── Tree.glb │ │ │ ├── Tree.glb.import │ │ │ ├── grass_clump.mesh │ │ │ ├── terrain.obj │ │ │ └── terrain.obj.import │ │ ├── Textures │ │ │ ├── 3d_noise.png │ │ │ ├── 3d_noise.png.import │ │ │ ├── bark_albedo.png │ │ │ ├── bark_albedo.png.import │ │ │ ├── bark_normal.png │ │ │ ├── bark_normal.png.import │ │ │ ├── elm leaf.png │ │ │ ├── elm leaf.png.import │ │ │ ├── elm_leaf_albedo.png │ │ │ ├── elm_leaf_albedo.png.import │ │ │ ├── elm_leaf_normal.png │ │ │ ├── elm_leaf_normal.png.import │ │ │ ├── elm_leaf_transmission.png │ │ │ ├── elm_leaf_transmission.png.import │ │ │ ├── grass_albedo.png │ │ │ ├── grass_albedo.png.import │ │ │ ├── grass_normal.png │ │ │ ├── grass_normal.png.import │ │ │ ├── ground_ORM.png │ │ │ ├── ground_ORM.png.import │ │ │ ├── ground_albedo.png │ │ │ ├── ground_albedo.png.import │ │ │ ├── ground_normal.png │ │ │ └── ground_normal.png.import │ │ ├── Tree.tscn │ │ ├── WindControl.gd │ │ ├── WindTreeScene.tscn │ │ ├── foliage_wind_grass.gdshader │ │ ├── foliage_wind_tree_leaves.gdshader │ │ └── foliage_wind_tree_trunk.gdshader │ ├── WindTreesDemo.tscn │ ├── XRay2DDemo.tscn │ ├── XRay3DDemo.tscn │ ├── Xray2d │ │ ├── GearTrain.tscn │ │ ├── MainScene.tscn │ │ ├── Watcher.gd │ │ ├── gear.png │ │ └── gear.png.import │ └── labels │ │ ├── demo_labels.csv │ │ ├── demo_labels.csv.import │ │ └── demo_labels.en.translation ├── Intro │ ├── Elements │ │ ├── CubeScene.gd │ │ ├── CubeScene.tscn │ │ ├── EnableWireframe.gd │ │ ├── LineDrawer.gd │ │ ├── LineDrawer.tscn │ │ ├── LineDrawers.gd │ │ ├── Pixel.gd │ │ ├── Pixel.tscn │ │ ├── Pixels.gd │ │ ├── RawVertexData.gd │ │ ├── ShaderPipelineIntro.gd │ │ ├── TintedSpriteDemo.tscn │ │ ├── Title.gd │ │ ├── VertexCodeAnim.tscn │ │ ├── VertexRaw.gd │ │ └── VertexRaw.tscn │ ├── ShaderPipelineIntro.tscn │ ├── textured_square.png │ └── textured_square.png.import ├── Main │ ├── Constants.gd │ ├── DemoItem.gd │ ├── DemoItem.tscn │ ├── DemoList.gd │ ├── DemoList.tscn │ ├── DemoPickerUI.gd │ ├── DemoPickerUI.tscn │ ├── DemoPlayer.gd │ ├── DemoSelector.gd │ ├── DemoSelector.tscn │ ├── GDQuestLogo.gd │ ├── GDQuestLogo.tscn │ ├── UI │ │ ├── 9patch_mainmenu.png │ │ ├── 9patch_mainmenu.png.import │ │ ├── 9patch_searchbar.png │ │ ├── 9patch_searchbar.png.import │ │ ├── Slider.tscn │ │ ├── TextButton.tscn │ │ ├── arrowLeft.png │ │ ├── arrowLeft.png.import │ │ ├── arrowLeftPressed.png │ │ ├── arrowLeftPressed.png.import │ │ ├── arrowRight.png │ │ ├── arrowRight.png.import │ │ ├── arrowRightPressed.png │ │ ├── arrowRightPressed.png.import │ │ ├── button.png │ │ ├── button.png.import │ │ ├── buttonLong.png │ │ ├── buttonLong.png.import │ │ ├── buttonLongPressed.png │ │ ├── buttonLongPressed.png.import │ │ ├── buttonPressed.png │ │ ├── buttonPressed.png.import │ │ ├── close.png │ │ ├── close.png.import │ │ ├── fonts │ │ │ ├── ExtraLargeFont.tres │ │ │ ├── KeyboardKeyFont.tres │ │ │ ├── Montserrat-Bold.ttf │ │ │ ├── Montserrat-Bold.ttf.import │ │ │ ├── SmallFont.tres │ │ │ ├── SourceCodePro-Bold.otf │ │ │ ├── SourceCodePro-Bold.otf.import │ │ │ ├── SubtitleFont.tres │ │ │ └── TitleFont.tres │ │ ├── lineedit_stylebox_error.tres │ │ ├── lineedit_stylebox_focus.tres │ │ ├── lineedit_stylebox_normal.tres │ │ ├── node-icons │ │ │ ├── Control.svg │ │ │ ├── Control.svg.import │ │ │ ├── GuiVisibilityVisible.svg │ │ │ ├── GuiVisibilityVisible.svg.import │ │ │ ├── Node.svg │ │ │ ├── Node.svg.import │ │ │ ├── Node2D.svg │ │ │ ├── Node2D.svg.import │ │ │ ├── Node3D.svg │ │ │ └── Node3D.svg.import │ │ ├── scrollbar.png │ │ ├── scrollbar.png.import │ │ ├── scrollbar_grabber_active.png │ │ ├── scrollbar_grabber_active.png.import │ │ ├── scrollbar_grabber_inactive.png │ │ ├── scrollbar_grabber_inactive.png.import │ │ ├── textFrame.png │ │ ├── textFrame.png.import │ │ └── ui_theme.tres │ ├── UIControlsList.gd │ ├── UIControlsList.tscn │ ├── UIKeyMapping.gd │ ├── UIKeyMapping.tscn │ ├── UIKeyboardKey.tscn │ ├── background.png │ ├── background.png.import │ ├── filter_button_group.tres │ ├── gdquest_logo_white.svg │ ├── gdquest_logo_white.svg.import │ ├── keyboard_key_panel.tres │ ├── nodes_metadata.json │ ├── planet.png │ ├── planet.png.import │ ├── planet_large.png │ ├── planet_large.png.import │ ├── title.svg │ └── title.svg.import ├── Shaders │ ├── PalettSwap2D.gdshader │ ├── SpecularControl.gdshader │ ├── VisualShader │ │ ├── shockwave.tres │ │ └── test.tres │ ├── baked_sprite_glow.gdshader │ ├── clouds2D.gdshader │ ├── compose.gdshader │ ├── dissolve.gdshader │ ├── dissolve2D.gdshader │ ├── dissolve2D_mask.gdshader │ ├── flag_3d.gdshader │ ├── force_field.gdshader │ ├── fresnel_crystal.gdshader │ ├── gaussian_blur.gdshader │ ├── gaussian_blur_optimized.gdshader │ ├── glow_prepass.gdshader │ ├── interactive_snow.gdshader │ ├── invert.gdshader │ ├── matcap.gdshader │ ├── outline2D_inner.gdshader │ ├── outline2D_inner_outer.gdshader │ ├── outline2D_outer.gdshader │ ├── outline3D.gdshader │ ├── outline3D_smooth_normals_color.gdshader │ ├── particle_bridge_particle.gdshader │ ├── particle_bridge_spatial.gdshader │ ├── perlin_noise.gdshader │ ├── pixel_perfect_outline3D.gdshader │ ├── pointilism.gdshader │ ├── random_noise.gdshader │ ├── rim_control.gdshader │ ├── shockwave.gdshader │ ├── shockwave_3d.gdshader │ ├── sphere_mask.gdshader │ ├── stencil_mask.gdshader │ ├── stylized_fire.gdshader │ ├── stylized_liquid.gdshader │ ├── stylized_waterfall.gdshader │ ├── texture_mix.gdshader │ ├── unlit_directional_tint.gdshader │ ├── value_noise.gdshader │ ├── value_noise_layered.gdshader │ ├── voronoi_noise.gdshader │ ├── water_2D.gdshader │ ├── water_3d.gdshader │ ├── wind_grass.gdshader │ ├── wind_texture.gdshader │ ├── wind_uv.gdshader │ ├── xray_2d_mask.gdshader │ ├── xray_3d_mask.gdshader │ └── xray_glow.gdshader ├── Shared │ ├── Background2D │ │ ├── Demo2DBackground.tscn │ │ ├── gaussian_blur_lod_15_samples.gdshader │ │ ├── gaussian_blur_lod_9_samples.gdshader │ │ ├── gradient.svg │ │ ├── gradient.svg.import │ │ ├── graph.svg │ │ ├── graph.svg.import │ │ ├── sparkle.png │ │ └── sparkle.png.import │ ├── Camera │ │ ├── MouseCamera2D.gd │ │ ├── MouseCamera2D.tscn │ │ └── ParallaxBackground.tscn │ ├── Demo3DEnvironment.tscn │ ├── Demo3DEnvironmentDark.tscn │ ├── DemoInterface.gd │ ├── DemoInterface.tscn │ ├── environments │ │ ├── 2d_level_environment.tres │ │ ├── level_environment.tres │ │ └── level_environment_dark.tres │ ├── materials │ │ └── basic_grey.tres │ ├── models │ │ ├── 3D-environment │ │ │ ├── AtlasMaterial.material │ │ │ ├── SceneColorAtlas.tres │ │ │ ├── ShockwaveScene.glb │ │ │ ├── ShockwaveScene.glb.import │ │ │ ├── ShockwaveScene_palette.png │ │ │ └── ShockwaveScene_palette.png.import │ │ └── rat_model │ │ │ ├── rat.dae │ │ │ ├── rat.dae.import │ │ │ ├── rat.tscn │ │ │ ├── rat_albedo.png │ │ │ ├── rat_albedo.png.import │ │ │ ├── rat_body_ao.png │ │ │ ├── rat_body_ao.png.import │ │ │ ├── rat_body_claws_mask.png │ │ │ ├── rat_body_claws_mask.png.import │ │ │ ├── rat_body_flesh_mask.png │ │ │ ├── rat_body_flesh_mask.png.import │ │ │ ├── rat_head_albedo.png │ │ │ ├── rat_head_albedo.png.import │ │ │ ├── rat_head_ao.png │ │ │ ├── rat_head_ao.png.import │ │ │ ├── rat_head_eyes_mask.png │ │ │ ├── rat_head_eyes_mask.png.import │ │ │ ├── rat_head_flesh_mask.png │ │ │ ├── rat_head_flesh_mask.png.import │ │ │ ├── rat_head_teeth_mask.png │ │ │ ├── rat_head_teeth_mask.png.import │ │ │ ├── rat_shadow_paint.png │ │ │ └── rat_shadow_paint.png.import │ ├── sprites │ │ ├── cloud1.png │ │ ├── cloud1.png.import │ │ ├── robi_shaded.png │ │ └── robi_shaded.png.import │ └── theme │ │ ├── empty.tres │ │ ├── fonts │ │ ├── default_font_bold.tres │ │ ├── default_font_code.tres │ │ ├── default_font_italics.tres │ │ ├── font_default.tres │ │ ├── font_info.tres │ │ ├── font_title.tres │ │ ├── montserrat │ │ │ ├── Montserrat-Black.ttf │ │ │ ├── Montserrat-Black.ttf.import │ │ │ ├── Montserrat-Bold.ttf │ │ │ ├── Montserrat-Bold.ttf.import │ │ │ ├── Montserrat-Medium.ttf │ │ │ ├── Montserrat-Medium.ttf.import │ │ │ ├── Montserrat-MediumItalic.ttf │ │ │ └── Montserrat-MediumItalic.ttf.import │ │ └── source_code_pro │ │ │ ├── SourceCodePro-Medium.otf │ │ │ └── SourceCodePro-Medium.otf.import │ │ ├── gdquest.theme │ │ ├── icons │ │ ├── chevron-right.svg │ │ ├── chevron-right.svg.import │ │ ├── chevron-up.svg │ │ ├── chevron-up.svg.import │ │ ├── trash_icon.svg │ │ └── trash_icon.svg.import │ │ ├── slider │ │ ├── grabber_area.stylebox │ │ └── slider.stylebox │ │ └── stylebox │ │ ├── button_disabled.tres │ │ ├── button_focused.tres │ │ ├── button_focused_error.tres │ │ ├── button_focused_margin.tres │ │ ├── button_hover.tres │ │ ├── button_normal.tres │ │ ├── button_pressed.tres │ │ ├── line.tres │ │ ├── line_edit.tres │ │ ├── panel.tres │ │ └── panel_popup.tres ├── Utils │ ├── DebugViewer.gd │ ├── PostProcessBuilder.gd │ └── PostProcessStep.gd ├── addons │ └── ShaderSecretsHelper │ │ └── DemoScreen.gd ├── default_env.tres ├── icon.png ├── icon.png.import └── project.godot └── img ├── banner-shader-secrets.png ├── robi-in-flames.png ├── stylized-fire.png └── water2d.png /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Godot-specific ignores 3 | .import/ 4 | .godot/ 5 | export.cfg 6 | export_presets.cfg 7 | 8 | # Mono-specific ignores 9 | .mono/ 10 | data_*/ 11 | 12 | .vscode/ 13 | -------------------------------------------------------------------------------- /godot/Demos/Blur/BlurDirection.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | @export var direction_provider_path := NodePath() 4 | @export var blur_scale := Vector2.ONE 5 | 6 | var direction := Vector2.ZERO 7 | 8 | @onready var direction_provider: Node = get_node(direction_provider_path) 9 | 10 | 11 | func _ready() -> void: 12 | if direction_provider: 13 | direction_provider.connect("speeding_up", Callable(self, "_on_speeding_up")) 14 | direction = Vector2.UP.rotated(deg_to_rad(direction_provider.direction_degrees)) 15 | blur_scale = blur_scale.normalized() 16 | 17 | 18 | func _on_speeding_up(percentage_of_max: float) -> void: 19 | material.set_shader_parameter("blur_scale", direction * percentage_of_max * blur_scale) 20 | -------------------------------------------------------------------------------- /godot/Demos/Blur/BlurredPresentation.gd: -------------------------------------------------------------------------------- 1 | extends TextureRect 2 | 3 | @export var direction_provider_path := NodePath() 4 | 5 | @onready var direction_provider: Node = get_node(direction_provider_path) 6 | 7 | 8 | func _ready() -> void: 9 | if direction_provider: 10 | direction_provider.connect("speeding_up", Callable(self, "_on_speeding_up")) 11 | 12 | 13 | func _on_speeding_up(percentage_of_max: float) -> void: 14 | self_modulate.a = percentage_of_max 15 | -------------------------------------------------------------------------------- /godot/Demos/Blur/MotionBlurScene.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | signal speeding_up(percentage_of_max) 4 | 5 | @export var trail_length: float 6 | @export var direction_degrees: float 7 | -------------------------------------------------------------------------------- /godot/Demos/Blur/PrecomputeGaussianKernel.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | # Computes a gaussian kernels with `SAMPLES` samples and prints it as ShaderScript 3 | extends EditorScript 4 | 5 | const SAMPLES := 71 6 | 7 | 8 | func gaussian(x: float) -> float: 9 | var x_squared := x * x 10 | var width := 1.0 / sqrt(TAU * SAMPLES) 11 | 12 | return width * exp((x_squared / (2.0 * SAMPLES)) * -1.0) 13 | 14 | 15 | func _run() -> void: 16 | var output := "const float SAMPLES = %s.0;\n" % SAMPLES 17 | output += "\tconst float WEIGHTS[%s] = {" % (SAMPLES if SAMPLES % 2 == 0 else SAMPLES - 1) 18 | 19 | for i in range(-SAMPLES / 2.0, SAMPLES / 2.0): 20 | output += "\n\t\t%s," % gaussian(float(i)) 21 | 22 | output = output.rstrip(',') + "\n\t};" 23 | 24 | OS.clipboard = output 25 | print("Precomputing gaussian weights: \n%s" % output) 26 | -------------------------------------------------------------------------------- /godot/Demos/Blur/ShakingCamera.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://dkvt3w3hayp4j"] 2 | 3 | [ext_resource type="Script" path="res://Demos/Blur/ShakingCamera.gd" id="1"] 4 | 5 | [node name="ShakingCamera" type="Camera2D"] 6 | position_smoothing_enabled = true 7 | script = ExtResource("1") 8 | amplitude = 8.0 9 | duration = 0.8 10 | 11 | [node name="Timer" type="Timer" parent="."] 12 | wait_time = 0.8 13 | one_shot = true 14 | -------------------------------------------------------------------------------- /godot/Demos/Clouds2D/clouds_noise1.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="NoiseTexture2D" load_steps=2 format=3 uid="uid://bok1i4hhop0o2"] 2 | 3 | [sub_resource type="FastNoiseLite" id="1"] 4 | 5 | [resource] 6 | width = 1024 7 | seamless = true 8 | noise = SubResource("1") 9 | -------------------------------------------------------------------------------- /godot/Demos/Clouds2D/clouds_noise2.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="NoiseTexture" load_steps=2 format=2] 2 | 3 | [sub_resource type="FastNoiseLite" id=1] 4 | octaves = 2 5 | period = 11.1 6 | persistence = 1.0 7 | lacunarity = 2.06 8 | 9 | [resource] 10 | flags = 6 11 | seamless = true 12 | noise = SubResource( 1 ) 13 | -------------------------------------------------------------------------------- /godot/Demos/Crystals/Crystal_Albedo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/Crystals/Crystal_Albedo.png -------------------------------------------------------------------------------- /godot/Demos/Crystals/Crystal_Albedo.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cu2p18bjrwh4f" 6 | path.s3tc="res://.godot/imported/Crystal_Albedo.png-40dba69040eb6c65c58806ba4a796cc4.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/Crystals/Crystal_Albedo.png" 15 | dest_files=["res://.godot/imported/Crystal_Albedo.png-40dba69040eb6c65c58806ba4a796cc4.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /godot/Demos/Crystals/Crystal_Emission.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/Crystals/Crystal_Emission.png -------------------------------------------------------------------------------- /godot/Demos/Crystals/Crystal_Emission.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cys1t6gtdcrvi" 6 | path.s3tc="res://.godot/imported/Crystal_Emission.png-05ffb8f603e21067f019693e2013a69d.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/Crystals/Crystal_Emission.png" 15 | dest_files=["res://.godot/imported/Crystal_Emission.png-05ffb8f603e21067f019693e2013a69d.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /godot/Demos/Crystals/Crystal_Normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/Crystals/Crystal_Normal.png -------------------------------------------------------------------------------- /godot/Demos/Crystals/Crystal_Normal.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://qiewxcg1l806" 6 | path.s3tc="res://.godot/imported/Crystal_Normal.png-78d01dee305ca9e02214b0bec2dff8b2.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/Crystals/Crystal_Normal.png" 15 | dest_files=["res://.godot/imported/Crystal_Normal.png-78d01dee305ca9e02214b0bec2dff8b2.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=1 24 | compress/channel_pack=1 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /godot/Demos/Crystals/LICENSE: -------------------------------------------------------------------------------- 1 | Crystal by PolyToots 2 | © PolyToots 3 | https://sketchfab.com/3d-models/crystals-0499073f160248adb451bf4135e5f50a 4 | 5 | Exported into GLTF from Blender for Godot. Textures flipped. 6 | 7 | Under CC-By 4.0: https://creativecommons.org/licenses/by/4.0/ 8 | -------------------------------------------------------------------------------- /godot/Demos/Crystals/crystals.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/Crystals/crystals.glb -------------------------------------------------------------------------------- /godot/Demos/Dissolve/Dissolve2D/Dissolve2DControls.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Node 3 | 4 | @export (float, 0, 1) var debug_dissolve_control := 0.0: set = _set_debug_control 5 | 6 | @onready var mask := owner.get_node("MaskView/SubViewport/RobiMask") 7 | @onready var robi := owner.get_node("Robi") 8 | 9 | 10 | func _unhandled_input(event: InputEvent) -> void: 11 | if event.is_action_pressed("ui_accept"): 12 | mask.dissolve() 13 | robi.dissolve() 14 | 15 | 16 | func _set_debug_control(value: float) -> void: 17 | debug_dissolve_control = value 18 | if not is_inside_tree(): 19 | await self.ready 20 | 21 | if Engine.is_editor_hint(): 22 | mask.debug_dissolve_control = value 23 | robi.debug_dissolve_control = value 24 | -------------------------------------------------------------------------------- /godot/Demos/Dissolve/Dissolve2D/DissolveMaskController.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Sprite2D 3 | 4 | var debug_dissolve_control := 0.0: set = _set_debug_control 5 | 6 | @onready var _animation_player: AnimationPlayer = $AnimationPlayer 7 | 8 | 9 | func dissolve() -> void: 10 | _animation_player.play("Dissolve") 11 | 12 | 13 | func _set_debug_control(value: float) -> void: 14 | debug_dissolve_control = value 15 | if Engine.is_editor_hint(): 16 | material.set_shader_parameter("dissolve_amount", value) 17 | -------------------------------------------------------------------------------- /godot/Demos/Dissolve/Dissolve2D/black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/Dissolve/Dissolve2D/black.png -------------------------------------------------------------------------------- /godot/Demos/Dissolve/Dissolve2D/black.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dgynwe5ry8cbv" 6 | path="res://.godot/imported/black.png-cf30e723a6e8f584fc40b074fe72de23.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Demos/Dissolve/Dissolve2D/black.png" 14 | dest_files=["res://.godot/imported/black.png-cf30e723a6e8f584fc40b074fe72de23.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Demos/Dissolve/Dissolve2D/color_ramp.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Gradient" format=2] 2 | 3 | [resource] 4 | colors = PackedColorArray( 2.73725, 0.0784314, 0.329412, 1, 2.50196, 2.54118, 0.0705882, 1 ) 5 | -------------------------------------------------------------------------------- /godot/Demos/Dissolve/Dissolve3D/DissolveMaterial.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="ShaderMaterial" load_steps=3 format=2] 2 | 3 | [ext_resource path="res://Demos/Dissolve/noise_tex.tres" type="Texture2D" id=1] 4 | [ext_resource path="res://Shaders/dissolve.gdshader" type="Shader" id=3] 5 | 6 | [resource] 7 | shader = ExtResource( 3 ) 8 | shader_param/albedo = Color( 0.972549, 0.654902, 0.0509804, 1 ) 9 | shader_param/emission_color = Color( 0.972549, 0.164706, 0.0588235, 1 ) 10 | shader_param/emission_amount = 3.064 11 | shader_param/burn_size = 0.1 12 | shader_param/dissolve_amount = 0.0 13 | shader_param/dissolve_texture = ExtResource( 1 ) 14 | -------------------------------------------------------------------------------- /godot/Demos/Dissolve/Dissolve3D/DissolvingSphere.gd: -------------------------------------------------------------------------------- 1 | extends MeshInstance3D 2 | 3 | @onready var _animation_player: AnimationPlayer = $AnimationPlayer 4 | 5 | 6 | func _unhandled_input(event: InputEvent) -> void: 7 | if event.is_action_pressed("ui_accept"): 8 | dissolve() 9 | 10 | 11 | func dissolve() -> void: 12 | _animation_player.play("Dissolve") 13 | -------------------------------------------------------------------------------- /godot/Demos/Dissolve/noise_tex.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="NoiseTexture" load_steps=2 format=2] 2 | 3 | [sub_resource type="FastNoiseLite" id=1] 4 | period = 34.0 5 | persistence = 0.141 6 | lacunarity = 2.84 7 | 8 | [resource] 9 | seamless = true 10 | noise = SubResource( 1 ) 11 | -------------------------------------------------------------------------------- /godot/Demos/Flag3DDemo.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=5 format=3 uid="uid://dkyf4721wih60"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://ccoj1forkve0h" path="res://Demos/Flag3D/Flag3DScene.tscn" id="1"] 4 | [ext_resource type="PackedScene" uid="uid://dquhei2qv5csj" path="res://Shared/Demo3DEnvironment.tscn" id="2"] 5 | [ext_resource type="PackedScene" uid="uid://diofpwcvq5elu" path="res://Shared/DemoInterface.tscn" id="3"] 6 | [ext_resource type="Script" path="res://addons/ShaderSecretsHelper/DemoScreen.gd" id="4"] 7 | 8 | [node name="Flag3DDemo" type="CanvasLayer"] 9 | script = ExtResource("4") 10 | 11 | [node name="Flag3DScene" parent="." instance=ExtResource("1")] 12 | 13 | [node name="Demo3DEnvironment" parent="." instance=ExtResource("2")] 14 | 15 | [node name="DemoInterface" parent="." instance=ExtResource("3")] 16 | anchors_preset = 10 17 | text_bbcode = "The shader samples FastNoiseLite to give the impression of a flag blowing in the wind." 18 | -------------------------------------------------------------------------------- /godot/Demos/ForceField/ForceFieldEmitter.gd: -------------------------------------------------------------------------------- 1 | extends RigidBody3D 2 | 3 | var _thrown := false 4 | @onready var _animation_player: AnimationPlayer = $ForceField/AnimationPlayer 5 | 6 | 7 | func _ready() -> void: 8 | connect("body_entered", Callable(self, "_on_RigidBody_body_entered").bind(), CONNECT_ONE_SHOT) 9 | 10 | 11 | func _unhandled_input(event: InputEvent) -> void: 12 | if not _thrown and event.is_action_pressed("ui_accept"): 13 | gravity_scale = 1 14 | apply_central_impulse(Vector3(0, 4, -6)) 15 | _thrown = true 16 | 17 | func _on_RigidBody_body_entered(body: Node) -> void: 18 | _animation_player.play("Expand") 19 | -------------------------------------------------------------------------------- /godot/Demos/ForceField/force_field_material.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="ShaderMaterial" load_steps=3 format=3 uid="uid://cp7fpmko6heid"] 2 | 3 | [ext_resource type="Shader" path="res://Shaders/force_field.gdshader" id="1_hm6s7"] 4 | [ext_resource type="Texture2D" uid="uid://b2skoftifgi55" path="res://Demos/ForceField/hexagon_grid.png" id="2_tm5w2"] 5 | 6 | [resource] 7 | render_priority = 0 8 | shader = ExtResource("1_hm6s7") 9 | shader_parameter/color = Color(0.607843, 0.219608, 1, 1) 10 | shader_parameter/pattern_scroll_speed = 0.025 11 | shader_parameter/pattern_uv_scale = Vector2(6, 3) 12 | shader_parameter/pattern_texture = ExtResource("2_tm5w2") 13 | shader_parameter/fresnel_power = 4.0 14 | shader_parameter/edge_intensity = 2.0 15 | shader_parameter/center_intensity = 0.1 16 | shader_parameter/pulsing_strength = 0.25 17 | shader_parameter/pulsing_speed = 1.0 18 | shader_parameter/scanline_frequency = 0.5 19 | shader_parameter/scanline_width = 0.1 20 | shader_parameter/scanline_intensity = 0.35 21 | -------------------------------------------------------------------------------- /godot/Demos/ForceField/hexagon_grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/ForceField/hexagon_grid.png -------------------------------------------------------------------------------- /godot/Demos/ForceField/hexagon_grid.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b2skoftifgi55" 6 | path.s3tc="res://.godot/imported/hexagon_grid.png-6db776025160063ebd890f0fd572b349.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/ForceField/hexagon_grid.png" 15 | dest_files=["res://.godot/imported/hexagon_grid.png-6db776025160063ebd890f0fd572b349.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /godot/Demos/ForceFieldDemo.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=5 format=3 uid="uid://ynusfw8t4kgp"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://haehxmhcirdj" path="res://Demos/ForceField/ForceFieldScene.tscn" id="1"] 4 | [ext_resource type="PackedScene" uid="uid://diofpwcvq5elu" path="res://Shared/DemoInterface.tscn" id="2"] 5 | [ext_resource type="PackedScene" uid="uid://dquhei2qv5csj" path="res://Shared/Demo3DEnvironment.tscn" id="3"] 6 | [ext_resource type="Script" path="res://addons/ShaderSecretsHelper/DemoScreen.gd" id="4"] 7 | 8 | [node name="ForceFieldDemo" type="CanvasLayer"] 9 | script = ExtResource("4") 10 | 11 | [node name="ForceFieldScene" parent="." instance=ExtResource("1")] 12 | 13 | [node name="Demo3DEnvironment" parent="." instance=ExtResource("3")] 14 | 15 | [node name="DemoInterface" parent="." instance=ExtResource("2")] 16 | anchors_preset = 10 17 | -------------------------------------------------------------------------------- /godot/Demos/Glow2D/BlurGlow/GlowSprite.gd: -------------------------------------------------------------------------------- 1 | extends Sprite2D 2 | 3 | @export var prepass_viewport_path := NodePath() 4 | @export var glow_color := Color.WHITE 5 | 6 | var prepass_shader: Shader = preload("../shaders/glow_prepass.gdshader") 7 | 8 | @onready var prepass_viewport: SubViewport = get_node(prepass_viewport_path) 9 | @onready var remote_transform := $RemoteTransform2D 10 | 11 | 12 | func _ready() -> void: 13 | var sprite := Sprite2D.new() 14 | sprite.texture = texture 15 | sprite.position = position 16 | sprite.scale = scale 17 | sprite.material = ShaderMaterial.new() 18 | sprite.material.gdshader = prepass_shader 19 | sprite.material.set_shader_parameter("glow_color", glow_color) 20 | prepass_viewport.add_child(sprite) 21 | #remote_transform.remote_path = sprite.get_path() 22 | -------------------------------------------------------------------------------- /godot/Demos/Glow2D/BlurGlow/Scene.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://dnei3uy5bhpha"] 2 | 3 | [ext_resource type="Texture2D" uid="uid://7giw201cbixu" path="res://Shared/sprites/robi_shaded.png" id="1_ocuod"] 4 | 5 | [node name="Scene" type="Node2D"] 6 | 7 | [node name="Sprite2D" type="Sprite2D" parent="."] 8 | position = Vector2(640, 360) 9 | scale = Vector2(0.75, 0.75) 10 | texture = ExtResource("1_ocuod") 11 | -------------------------------------------------------------------------------- /godot/Demos/Glow2D/glowy_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/Glow2D/glowy_arrow.png -------------------------------------------------------------------------------- /godot/Demos/Glow2D/glowy_arrow.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://d1q5d535gph8b" 6 | path="res://.godot/imported/glowy_arrow.png-de2c8751c478916236e715884dd4696e.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Demos/Glow2D/glowy_arrow.png" 14 | dest_files=["res://.godot/imported/glowy_arrow.png-de2c8751c478916236e715884dd4696e.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Demos/ImpossibleCube/Rotate.gd: -------------------------------------------------------------------------------- 1 | extends MeshInstance3D 2 | 3 | 4 | func _process(delta: float) -> void: 5 | rotate_y(deg_to_rad(45) * delta) 6 | rotate_z(deg_to_rad(-10) * delta) 7 | rotate_x(deg_to_rad(10) * delta) 8 | -------------------------------------------------------------------------------- /godot/Demos/ImpossibleCube/cube_full.obj.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="wavefront_obj" 4 | importer_version=1 5 | type="Mesh" 6 | uid="uid://bf02gogn681sv" 7 | path="res://.godot/imported/cube_full.obj-60db9d67724b6f7d6c6aac219701d74f.mesh" 8 | 9 | [deps] 10 | 11 | files=["res://.godot/imported/cube_full.obj-60db9d67724b6f7d6c6aac219701d74f.mesh"] 12 | 13 | source_file="res://Demos/ImpossibleCube/cube_full.obj" 14 | dest_files=["res://.godot/imported/cube_full.obj-60db9d67724b6f7d6c6aac219701d74f.mesh", "res://.godot/imported/cube_full.obj-60db9d67724b6f7d6c6aac219701d74f.mesh"] 15 | 16 | [params] 17 | 18 | generate_tangents=true 19 | scale_mesh=Vector3(1, 1, 1) 20 | offset_mesh=Vector3(0, 0, 0) 21 | optimize_mesh=true 22 | force_disable_mesh_compression=false 23 | -------------------------------------------------------------------------------- /godot/Demos/ImpossibleCube/cube_hollow.obj.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="wavefront_obj" 4 | importer_version=1 5 | type="Mesh" 6 | uid="uid://c135huw5eyy5e" 7 | path="res://.godot/imported/cube_hollow.obj-4de84183df9c67d0b0a6399a2b01b7f1.mesh" 8 | 9 | [deps] 10 | 11 | files=["res://.godot/imported/cube_hollow.obj-4de84183df9c67d0b0a6399a2b01b7f1.mesh"] 12 | 13 | source_file="res://Demos/ImpossibleCube/cube_hollow.obj" 14 | dest_files=["res://.godot/imported/cube_hollow.obj-4de84183df9c67d0b0a6399a2b01b7f1.mesh", "res://.godot/imported/cube_hollow.obj-4de84183df9c67d0b0a6399a2b01b7f1.mesh"] 15 | 16 | [params] 17 | 18 | generate_tangents=true 19 | scale_mesh=Vector3(1, 1, 1) 20 | offset_mesh=Vector3(0, 0, 0) 21 | optimize_mesh=true 22 | force_disable_mesh_compression=false 23 | -------------------------------------------------------------------------------- /godot/Demos/ImpossibleCube/cube_stencil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/ImpossibleCube/cube_stencil.png -------------------------------------------------------------------------------- /godot/Demos/ImpossibleCube/cube_stencil.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bqan81l7b1nec" 6 | path="res://.godot/imported/cube_stencil.png-cb80a63d89e01f57011bbd16de2e3342.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Demos/ImpossibleCube/cube_stencil.png" 14 | dest_files=["res://.godot/imported/cube_stencil.png-cb80a63d89e01f57011bbd16de2e3342.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Demos/InteractiveSnow/InteractiveSnowPlane.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/InteractiveSnow/InteractiveSnowPlane.glb -------------------------------------------------------------------------------- /godot/Demos/InteractiveSnow/InteractiveSnowball.gd: -------------------------------------------------------------------------------- 1 | extends MeshInstance3D 2 | 3 | @export var move_speed := 5.0 4 | @export var rotate_speed := PI 5 | 6 | @export var snow_size := Vector2(1.0, 1.0) 7 | 8 | func _process(delta: float) -> void: 9 | var move_dir = Vector2() 10 | move_dir.x = Input.get_action_strength("ui_left") - Input.get_action_strength("ui_right") 11 | move_dir.y = Input.get_action_strength("ui_up") - Input.get_action_strength("ui_down") 12 | rotate_y(move_dir.x * rotate_speed * delta) 13 | global_transform.origin += -global_transform.basis.z * move_speed * delta * move_dir.y 14 | global_transform.origin = Vector3( 15 | clamp(global_transform.origin.x, -snow_size.x, snow_size.x), 16 | global_transform.origin.y, 17 | clamp(global_transform.origin.z, -snow_size.y, snow_size.y)) 18 | -------------------------------------------------------------------------------- /godot/Demos/InteractiveSnow/Textures/BlendTexture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/InteractiveSnow/Textures/BlendTexture.jpg -------------------------------------------------------------------------------- /godot/Demos/InteractiveSnow/Textures/Ground039_1K_Color.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/InteractiveSnow/Textures/Ground039_1K_Color.jpg -------------------------------------------------------------------------------- /godot/Demos/InteractiveSnow/Textures/Ground039_1K_Normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/InteractiveSnow/Textures/Ground039_1K_Normal.jpg -------------------------------------------------------------------------------- /godot/Demos/InteractiveSnow/Textures/Ground039_1K_Roughness.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/InteractiveSnow/Textures/Ground039_1K_Roughness.jpg -------------------------------------------------------------------------------- /godot/Demos/InteractiveSnow/Textures/Snow004_1K_Color.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/InteractiveSnow/Textures/Snow004_1K_Color.jpg -------------------------------------------------------------------------------- /godot/Demos/InteractiveSnow/Textures/Snow004_1K_Normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/InteractiveSnow/Textures/Snow004_1K_Normal.jpg -------------------------------------------------------------------------------- /godot/Demos/InteractiveSnow/Textures/Snow004_1K_Roughness.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/InteractiveSnow/Textures/Snow004_1K_Roughness.jpg -------------------------------------------------------------------------------- /godot/Demos/InteractiveSnow/Textures/testmask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/InteractiveSnow/Textures/testmask.png -------------------------------------------------------------------------------- /godot/Demos/InteractiveSnow/Textures/testmask.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://4aoeixrksfs7" 6 | path.s3tc="res://.godot/imported/testmask.png-b48ba02c0ef58088f0f75f5f8bb89706.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/InteractiveSnow/Textures/testmask.png" 15 | dest_files=["res://.godot/imported/testmask.png-b48ba02c0ef58088f0f75f5f8bb89706.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /godot/Demos/InteractiveSnow/TrailTexture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/InteractiveSnow/TrailTexture.png -------------------------------------------------------------------------------- /godot/Demos/InteractiveSnow/TrailTexture.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://ce4p2rcuyfu33" 6 | path="res://.godot/imported/TrailTexture.png-970f538987d56eae2649e7be54c789be.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Demos/InteractiveSnow/TrailTexture.png" 14 | dest_files=["res://.godot/imported/TrailTexture.png-970f538987d56eae2649e7be54c789be.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Demos/InteractiveSnow/TrailTip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/InteractiveSnow/TrailTip.png -------------------------------------------------------------------------------- /godot/Demos/InteractiveSnow/TrailTip.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cjbg8w0bk26ow" 6 | path="res://.godot/imported/TrailTip.png-0d4809e5b8c0d809431286b0cd6fb687.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Demos/InteractiveSnow/TrailTip.png" 14 | dest_files=["res://.godot/imported/TrailTip.png-0d4809e5b8c0d809431286b0cd6fb687.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Demos/MatCap/Chrome_matcap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/MatCap/Chrome_matcap.png -------------------------------------------------------------------------------- /godot/Demos/MatCap/Chrome_matcap.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://ce0sdbdtuv747" 6 | path.s3tc="res://.godot/imported/Chrome_matcap.png-7aa6f37a56a1f917ed484c93a8e53254.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/MatCap/Chrome_matcap.png" 15 | dest_files=["res://.godot/imported/Chrome_matcap.png-7aa6f37a56a1f917ed484c93a8e53254.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | -------------------------------------------------------------------------------- /godot/Demos/MatCap/black_glass_matcap.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/MatCap/black_glass_matcap.jpeg -------------------------------------------------------------------------------- /godot/Demos/MatCap/copper_matcap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/MatCap/copper_matcap.png -------------------------------------------------------------------------------- /godot/Demos/MatCap/copper_matcap.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://hwdq7j2mpw1q" 6 | path.s3tc="res://.godot/imported/copper_matcap.png-5ae2579854008584d0550c4f955aa074.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/MatCap/copper_matcap.png" 15 | dest_files=["res://.godot/imported/copper_matcap.png-5ae2579854008584d0550c4f955aa074.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | -------------------------------------------------------------------------------- /godot/Demos/MatCap/flat_sketch_matcap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/MatCap/flat_sketch_matcap.png -------------------------------------------------------------------------------- /godot/Demos/MatCap/glowy_matcap.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/MatCap/glowy_matcap.jpeg -------------------------------------------------------------------------------- /godot/Demos/MatCap/glowy_matcap.jpeg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://br33hkyx2xa8s" 6 | path.s3tc="res://.godot/imported/glowy_matcap.jpeg-df0110fcb7eb1ec9335b8213165abe67.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/MatCap/glowy_matcap.jpeg" 15 | dest_files=["res://.godot/imported/glowy_matcap.jpeg-df0110fcb7eb1ec9335b8213165abe67.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | -------------------------------------------------------------------------------- /godot/Demos/MatCap/plastic_matcap.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/MatCap/plastic_matcap.jpg -------------------------------------------------------------------------------- /godot/Demos/MatCap/plastic_matcap.jpg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bv2ouefmicn1d" 6 | path.s3tc="res://.godot/imported/plastic_matcap.jpg-a77551a005db2450b0fdabac6c988e0e.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/MatCap/plastic_matcap.jpg" 15 | dest_files=["res://.godot/imported/plastic_matcap.jpg-a77551a005db2450b0fdabac6c988e0e.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | -------------------------------------------------------------------------------- /godot/Demos/MatCap/red_matcap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/MatCap/red_matcap.png -------------------------------------------------------------------------------- /godot/Demos/MatCap/red_matcap.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dsvtbbudbr12i" 6 | path.s3tc="res://.godot/imported/red_matcap.png-2a02e2803f53fa5011be80524ead9df8.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/MatCap/red_matcap.png" 15 | dest_files=["res://.godot/imported/red_matcap.png-2a02e2803f53fa5011be80524ead9df8.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | -------------------------------------------------------------------------------- /godot/Demos/MatCap/redjade_matcap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/MatCap/redjade_matcap.png -------------------------------------------------------------------------------- /godot/Demos/MatCap/redjade_matcap.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cxfth4tsvftem" 6 | path.s3tc="res://.godot/imported/redjade_matcap.png-34253a782f1e970017401d6865aec3f3.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/MatCap/redjade_matcap.png" 15 | dest_files=["res://.godot/imported/redjade_matcap.png-34253a782f1e970017401d6865aec3f3.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | -------------------------------------------------------------------------------- /godot/Demos/MatCap/skin_matcap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/MatCap/skin_matcap.png -------------------------------------------------------------------------------- /godot/Demos/MatCap/skin_matcap.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c3f2pxx1jwuwp" 6 | path.s3tc="res://.godot/imported/skin_matcap.png-3f1f5e91877ca78762874f7469b6aaeb.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/MatCap/skin_matcap.png" 15 | dest_files=["res://.godot/imported/skin_matcap.png-3f1f5e91877ca78762874f7469b6aaeb.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | -------------------------------------------------------------------------------- /godot/Demos/MatCapDemo.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=5 format=3 uid="uid://ctgrhpey5dygb"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://cardfqb2rrmre" path="res://Demos/MatCap/MatCapScene.tscn" id="1"] 4 | [ext_resource type="PackedScene" path="res://Shared/DemoInterface.tscn" id="2"] 5 | [ext_resource type="PackedScene" path="res://Shared/Demo3DEnvironment.tscn" id="3"] 6 | [ext_resource type="Script" path="res://addons/ShaderSecretsHelper/DemoScreen.gd" id="4"] 7 | 8 | [node name="MatCapDemo" type="CanvasLayer"] 9 | script = ExtResource("4") 10 | 11 | [node name="MatCapScene" parent="." instance=ExtResource("1")] 12 | 13 | [node name="Demo3DEnvironment" parent="." instance=ExtResource("3")] 14 | 15 | [node name="DemoInterface" parent="." instance=ExtResource("2")] 16 | -------------------------------------------------------------------------------- /godot/Demos/Outline/Outline2D/Cursor.gd: -------------------------------------------------------------------------------- 1 | extends Sprite2D 2 | 3 | @onready var anim_player: AnimationPlayer = $AnimationPlayer 4 | 5 | 6 | func _unhandled_input(event: InputEvent) -> void: 7 | if event.is_action_pressed("ui_accept") and not anim_player.is_playing(): 8 | anim_player.play("scroll") 9 | -------------------------------------------------------------------------------- /godot/Demos/Outline/Outline2D/Outline.gd: -------------------------------------------------------------------------------- 1 | extends Sprite2D 2 | 3 | @export var line_color := Color.WHITE 4 | 5 | @onready var _area: Area2D = $Area2D 6 | 7 | 8 | func _ready() -> void: 9 | _area.connect("mouse_entered", Callable(self, "_on_Area2D_mouse_entered")) 10 | _area.connect("mouse_exited", Callable(self, "_on_Area2D_mouse_exited")) 11 | line_color.a = 0 12 | 13 | 14 | func _on_Area2D_mouse_entered() -> void: 15 | var tween = create_tween() 16 | tween.tween_method(outline_alpha, line_color.a, 1.0, 0.25).set_trans(Tween.TRANS_LINEAR).set_ease(Tween.EASE_OUT) 17 | 18 | 19 | func _on_Area2D_mouse_exited() -> void: 20 | var tween = create_tween() 21 | tween.tween_method(outline_alpha, line_color.a, 0.0, 0.25).set_trans(Tween.TRANS_LINEAR).set_ease(Tween.EASE_IN) 22 | 23 | 24 | func outline_alpha(value: float) -> void: 25 | line_color.a = value 26 | material.set_shader_parameter("line_color", line_color) 27 | -------------------------------------------------------------------------------- /godot/Demos/Outline/Outline2D/mouse_cursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/Outline/Outline2D/mouse_cursor.png -------------------------------------------------------------------------------- /godot/Demos/Outline/Outline2D/mouse_cursor.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cmruopkdd22u2" 6 | path="res://.godot/imported/mouse_cursor.png-899fe6bf5a2e902989facb0b14a3f757.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Demos/Outline/Outline2D/mouse_cursor.png" 14 | dest_files=["res://.godot/imported/mouse_cursor.png-899fe6bf5a2e902989facb0b14a3f757.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Demos/Outline/Outline3D/CameraMouseHover.gd: -------------------------------------------------------------------------------- 1 | extends Camera3D 2 | 3 | const MOUSE_RANGE := 10000 4 | var last_target: Node3D 5 | 6 | @onready var _ray: RayCast3D = $RayCast3D 7 | @onready var view := get_tree().root 8 | 9 | func _physics_process(_delta: float) -> void: 10 | # Cast a ray straight out from the camera through the current mouse position 11 | var mouse_position := view.get_mouse_position() 12 | _ray.target_position = project_local_ray_normal(mouse_position) * MOUSE_RANGE 13 | _ray.force_raycast_update() 14 | 15 | if _ray.is_colliding(): 16 | var target: Area3D = _ray.get_collider() 17 | if last_target and last_target != target: 18 | last_target.pop_out() 19 | last_target = target 20 | target.pop_in() 21 | elif last_target: 22 | last_target.pop_out() 23 | last_target = null 24 | -------------------------------------------------------------------------------- /godot/Demos/Outline/Outline3D/OutlinePopArea.gd: -------------------------------------------------------------------------------- 1 | extends Area3D 2 | 3 | var animated_outline: AnimatedOutline 4 | 5 | 6 | func _ready() -> void: 7 | animated_outline = AnimatedOutline.new( 8 | get_parent().get_node("Tween"), get_parent().get_surface_override_material(0).next_pass, 0.5, 0.15 9 | ) 10 | 11 | 12 | func pop_in() -> void: 13 | animated_outline.pop_in() 14 | 15 | 16 | func pop_out() -> void: 17 | animated_outline.pop_out() 18 | -------------------------------------------------------------------------------- /godot/Demos/Outline3DDemo.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=5 format=3 uid="uid://b4sybyy0v0daf"] 2 | 3 | [ext_resource type="Script" path="res://addons/ShaderSecretsHelper/DemoScreen.gd" id="1"] 4 | [ext_resource type="PackedScene" uid="uid://buf5buk4m1noy" path="res://Demos/Outline/Outline3D/Outline3DScene.tscn" id="2"] 5 | [ext_resource type="PackedScene" path="res://Shared/DemoInterface.tscn" id="3"] 6 | [ext_resource type="PackedScene" path="res://Shared/Demo3DEnvironment.tscn" id="4"] 7 | 8 | [node name="Outline3DDemo" type="CanvasLayer"] 9 | script = ExtResource("1") 10 | 11 | [node name="Outline3D" parent="." instance=ExtResource("2")] 12 | 13 | [node name="Demo3DEnvironment" parent="." instance=ExtResource("4")] 14 | 15 | [node name="DemoInterface" parent="." instance=ExtResource("3")] 16 | -------------------------------------------------------------------------------- /godot/Demos/PaletteSwap2D/KingsAndPigs_color_sets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/PaletteSwap2D/KingsAndPigs_color_sets.png -------------------------------------------------------------------------------- /godot/Demos/PaletteSwap2D/KingsAndPigs_color_sets.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b4u1tg6328ein" 6 | path="res://.godot/imported/KingsAndPigs_color_sets.png-3358d9850b09d536c82fac90f6cb4ec9.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Demos/PaletteSwap2D/KingsAndPigs_color_sets.png" 14 | dest_files=["res://.godot/imported/KingsAndPigs_color_sets.png-3358d9850b09d536c82fac90f6cb4ec9.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Demos/PaletteSwap2D/KingsAndPigs_greyscale_sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/PaletteSwap2D/KingsAndPigs_greyscale_sprite.png -------------------------------------------------------------------------------- /godot/Demos/PaletteSwap2D/PaletteSwapSprite.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Sprite2D 3 | 4 | const PALLETE_COUNT := 4 5 | 6 | 7 | func _unhandled_input(event: InputEvent) -> void: 8 | if event.is_action_pressed("ui_accept"): 9 | var index = material.get_shader_parameter("palette_index") 10 | material.set_shader_parameter("palette_index", posmod(index + 1, PALLETE_COUNT)) 11 | -------------------------------------------------------------------------------- /godot/Demos/ParticleBridge/ParticleBridgeDemo.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | # ANCHOR: setup 3 | extends Particles 4 | 5 | @export var character_node := NodePath() 6 | # END: setup 7 | @onready var _animator: AnimationPlayer = $AnimationPlayer 8 | @onready var _area: Area3D = $Area3D 9 | 10 | func _ready() -> void: 11 | _area.connect("body_entered", Callable(self, "on_area_body_entered").bind(true)) 12 | _area.connect("body_exited", Callable(self, "on_area_body_entered").bind(false)) 13 | 14 | func on_area_body_entered(body: Node, is_entering: bool) -> void: 15 | if body is RigidBody3D: 16 | _animator.play("show") if is_entering else _animator.play_backwards("show") 17 | # ANCHOR: process 18 | func _process(_delta: float) -> void: 19 | process_material.set_shader_parameter("character_position", get_node(character_node).global_transform.origin) 20 | # END: process 21 | -------------------------------------------------------------------------------- /godot/Demos/ParticleBridge/RigidPlayer.gd: -------------------------------------------------------------------------------- 1 | # ANCHOR: all 2 | extends RigidBody3D 3 | 4 | func _integrate_forces(state: PhysicsDirectBodyState3D) -> void: 5 | var input = Input.get_vector("ui_left", "ui_right", "ui_down", "ui_up") 6 | state.apply_central_impulse(Vector3(input.y, 0, input.x)) 7 | # END: all 8 | -------------------------------------------------------------------------------- /godot/Demos/Reflection2D/Reflection2D.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | # Forwards the Y zoom and Y scale values to the mirror shader 3 | extends Sprite2D 4 | 5 | func _ready() -> void: 6 | connect("item_rect_changed", Callable(self, "_on_item_rect_changed")) 7 | 8 | 9 | func _process(_delta: float) -> void: 10 | update_zoom(get_viewport_transform().y.y) 11 | 12 | 13 | func update_zoom(value: float) -> void: 14 | material.set_shader_parameter("zoom_y", value) 15 | 16 | 17 | func _on_item_rect_changed() -> void: 18 | material.set_shader_parameter("scale_y", scale.y) 19 | -------------------------------------------------------------------------------- /godot/Demos/Reflection2D/Reflection2DTextureRect.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | # Forwards the Y zoom and Y scale values to the mirror shader 3 | extends TextureRect 4 | 5 | 6 | func _ready() -> void: 7 | connect("item_rect_changed", Callable(self, "_on_item_rect_changed")) 8 | 9 | 10 | func _process(_delta: float) -> void: 11 | update_zoom(get_viewport_transform().y.y) 12 | 13 | 14 | func update_zoom(value: float) -> void: 15 | material.set_shader_parameter("zoom_y", value) 16 | 17 | 18 | func _on_item_rect_changed() -> void: 19 | var scale_y = size.y / texture.get_size().y 20 | scale_y *= scale.y 21 | 22 | material.set_shader_parameter("scale_y", scale_y) 23 | -------------------------------------------------------------------------------- /godot/Demos/Reflection2D/mirror_y.gdshader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | uniform float scale_y = 1.0f; 4 | uniform float zoom_y = 1.0f; 5 | 6 | void fragment() { 7 | float px_size_ratio = SCREEN_PIXEL_SIZE.y / TEXTURE_PIXEL_SIZE.y; 8 | vec2 uv_reflected = vec2(SCREEN_UV.x, SCREEN_UV.y + px_size_ratio * UV.y * 2.0 * scale_y * zoom_y); 9 | 10 | COLOR = texture(SCREEN_TEXTURE, uv_reflected); 11 | } -------------------------------------------------------------------------------- /godot/Demos/Shockwave/Shockwave.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends SubViewportContainer 3 | 4 | @export var shockwave_duration := 2.0 5 | @export var mask_path := NodePath() 6 | 7 | var torus_radius := -0.25: set = _set_torus_radius 8 | 9 | @onready var _tween: Tween = $Tween 10 | @onready var _mask: ColorRect = get_node(mask_path) 11 | 12 | 13 | func _unhandled_input(event: InputEvent) -> void: 14 | if event.is_action_pressed("ui_accept"): 15 | blast() 16 | 17 | 18 | func blast() -> void: 19 | _tween.interpolate_property( 20 | self, "torus_radius", -0.25, 2.0, shockwave_duration, Tween.TRANS_LINEAR, Tween.EASE_OUT 21 | ) 22 | _tween.start() 23 | 24 | 25 | func _set_torus_radius(value: float) -> void: 26 | torus_radius = value 27 | if not is_inside_tree(): 28 | await self.ready 29 | _mask.get_material().set_shader_parameter("torus_radius", torus_radius) 30 | -------------------------------------------------------------------------------- /godot/Demos/Shockwave/ShockwaveMaterial.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="ShaderMaterial" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://Shaders/shockwave.gdshader" type="Shader" id=1] 4 | 5 | [resource] 6 | shader = ExtResource( 1 ) 7 | shader_param/torus_thickness = 0.286 8 | shader_param/torus_hardness = 0.19 9 | shader_param/torus_radius = -0.25 10 | shader_param/torus_invert = -1.0 11 | shader_param/torus_center = Vector2( 0.5, 0.25 ) 12 | shader_param/torus_size = Vector2( 1.78, 1 ) 13 | shader_param/displacement_amount = 0.5 14 | -------------------------------------------------------------------------------- /godot/Demos/Shockwave/basic_blue.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StandardMaterial3D" format=2] 2 | 3 | [resource] 4 | albedo_color = Color( 0.0392157, 0.670588, 0.866667, 1 ) 5 | metallic_specular = 0.37 6 | -------------------------------------------------------------------------------- /godot/Demos/Shockwave3D/Scene.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/Shockwave3D/Scene.blend -------------------------------------------------------------------------------- /godot/Demos/Shockwave3D/Shockwave.gd: -------------------------------------------------------------------------------- 1 | extends Node3D 2 | 3 | @export var shockwave_material: ShaderMaterial 4 | @onready var _animation_player: AnimationPlayer = $AnimationPlayer 5 | 6 | 7 | func _ready() -> void: 8 | for child in get_children(): 9 | if child is MeshInstance3D: 10 | child.set_surface_override_material(0, shockwave_material) 11 | 12 | 13 | func _unhandled_input(event: InputEvent) -> void: 14 | if event.is_action_pressed("ui_accept"): 15 | _animation_player.stop(true) 16 | _animation_player.play("Shockwave") 17 | -------------------------------------------------------------------------------- /godot/Demos/Shockwave3D/Shockwave3DMaterial.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="ShaderMaterial" load_steps=3 format=3 uid="uid://cg217bygmqp72"] 2 | 3 | [ext_resource type="Shader" path="res://Shaders/shockwave_3d.gdshader" id="1_twfkb"] 4 | [ext_resource type="Texture2D" uid="uid://dklympjuioh10" path="res://Shared/models/3D-environment/SceneColorAtlas.tres" id="2_a4p71"] 5 | 6 | [resource] 7 | render_priority = 0 8 | shader = ExtResource("1_twfkb") 9 | shader_parameter/shockwave_origin = Vector3(0, 0.5, 0) 10 | shader_parameter/shockwave_radius = 16.0 11 | shader_parameter/shockwave_percentage = 0.0 12 | shader_parameter/shockwave_width = 1.0 13 | shader_parameter/shockwave_strength = 0.5 14 | shader_parameter/albedo_texture = ExtResource("2_a4p71") 15 | -------------------------------------------------------------------------------- /godot/Demos/SphereMask/.LanternAlbedo.png-autosave.kra: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/SphereMask/.LanternAlbedo.png-autosave.kra -------------------------------------------------------------------------------- /godot/Demos/SphereMask/BridgeBody.mesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/SphereMask/BridgeBody.mesh -------------------------------------------------------------------------------- /godot/Demos/SphereMask/BridgeMaterial.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="ShaderMaterial" load_steps=4 format=2] 2 | 3 | [ext_resource path="res://Shaders/sphere_mask.gdshader" type="Shader" id=1] 4 | 5 | [sub_resource type="FastNoiseLite" id=1] 6 | period = 26.7 7 | persistence = 0.151 8 | lacunarity = 2.08 9 | 10 | [sub_resource type="NoiseTexture" id=2] 11 | seamless = true 12 | noise = SubResource( 1 ) 13 | 14 | [resource] 15 | shader = ExtResource( 1 ) 16 | shader_param/mask_center = Vector3( -3.42114, 4.25289, -4.76837e-07 ) 17 | shader_param/mask_radius = 0.0 18 | shader_param/mask_border_radius = 4.0 19 | shader_param/emission_energy = 4.317 20 | shader_param/object_color = Color( 0.443137, 0.286275, 0.0470588, 1 ) 21 | shader_param/mask_color = Color( 1, 0.980392, 0.505882, 1 ) 22 | shader_param/ghost_noise = SubResource( 2 ) 23 | -------------------------------------------------------------------------------- /godot/Demos/SphereMask/Lantern.mesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/SphereMask/Lantern.mesh -------------------------------------------------------------------------------- /godot/Demos/SphereMask/LanternAlbedo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/SphereMask/LanternAlbedo.png -------------------------------------------------------------------------------- /godot/Demos/SphereMask/LanternAlbedo.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bbtbok264a38" 6 | path.s3tc="res://.godot/imported/LanternAlbedo.png-28f70293ab6d6fda6ea986e136398499.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/SphereMask/LanternAlbedo.png" 15 | dest_files=["res://.godot/imported/LanternAlbedo.png-28f70293ab6d6fda6ea986e136398499.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /godot/Demos/SphereMask/LanternMaterial.material: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/SphereMask/LanternMaterial.material -------------------------------------------------------------------------------- /godot/Demos/SphereMask/LanternMaterialEmissive.material: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/SphereMask/LanternMaterialEmissive.material -------------------------------------------------------------------------------- /godot/Demos/SphereMask/LanternPositionToMaterial.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | # ANCHOR: all 3 | extends Node 4 | 5 | @onready var _bridge_body: MeshInstance3D = $BridgeBody 6 | @onready var _lantern: MeshInstance3D = $Lantern 7 | 8 | 9 | func _process(_delta: float) -> void: 10 | _bridge_body.material_override.set_shader_parameter("mask_center", _lantern.global_transform.origin) 11 | 12 | # END: all 13 | -------------------------------------------------------------------------------- /godot/Demos/SphereMask/PaperTransmission.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/SphereMask/PaperTransmission.jpg -------------------------------------------------------------------------------- /godot/Demos/SphereMask/Poles.mesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/SphereMask/Poles.mesh -------------------------------------------------------------------------------- /godot/Demos/SphereMask/PolesMaterial.material: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/SphereMask/PolesMaterial.material -------------------------------------------------------------------------------- /godot/Demos/SphereMask/PolesTexture.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/SphereMask/PolesTexture.jpeg -------------------------------------------------------------------------------- /godot/Demos/SphereMask/PolesTexture.jpeg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dnpqsu1b5m502" 6 | path.s3tc="res://.godot/imported/PolesTexture.jpeg-1c872967a02fc28a745392922a974bbe.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/SphereMask/PolesTexture.jpeg" 15 | dest_files=["res://.godot/imported/PolesTexture.jpeg-1c872967a02fc28a745392922a974bbe.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /godot/Demos/SphereMask/SphereMaskMaterial.material: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/SphereMask/SphereMaskMaterial.material -------------------------------------------------------------------------------- /godot/Demos/SphereMask/bridge-lantern.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/SphereMask/bridge-lantern.blend -------------------------------------------------------------------------------- /godot/Demos/SphereMask/bridge-lantern.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/SphereMask/bridge-lantern.glb -------------------------------------------------------------------------------- /godot/Demos/StylizedFire/BlueFireGradient.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="GradientTexture2D" load_steps=2 format=3 uid="uid://xl22pmkk0nsk"] 2 | 3 | [sub_resource type="Gradient" id="1"] 4 | colors = PackedColorArray(0, 0.976562, 1, 1, 0.335327, 0, 0.640625, 0) 5 | 6 | [resource] 7 | gradient = SubResource("1") 8 | width = 128 9 | -------------------------------------------------------------------------------- /godot/Demos/StylizedFire/CloudNoise.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="NoiseTexture2D" load_steps=2 format=3 uid="uid://dnre508h7bl23"] 2 | 3 | [sub_resource type="FastNoiseLite" id="1"] 4 | 5 | [resource] 6 | seamless = true 7 | noise = SubResource("1") 8 | -------------------------------------------------------------------------------- /godot/Demos/StylizedFire/FireGradient.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="GradientTexture2D" load_steps=2 format=2] 2 | 3 | [sub_resource type="Gradient" id=1] 4 | colors = PackedColorArray( 1, 0.890625, 0, 1, 1, 0, 0.447059, 0 ) 5 | 6 | [resource] 7 | gradient = SubResource( 1 ) 8 | width = 128 9 | -------------------------------------------------------------------------------- /godot/Demos/StylizedFire/FireMask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/StylizedFire/FireMask.png -------------------------------------------------------------------------------- /godot/Demos/StylizedFire/FireMask.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bko6oayqcslrd" 6 | path.s3tc="res://.godot/imported/FireMask.png-449a5975d3ec46a30137f9c77f5aac15.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/StylizedFire/FireMask.png" 15 | dest_files=["res://.godot/imported/FireMask.png-449a5975d3ec46a30137f9c77f5aac15.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /godot/Demos/StylizedFire/GreenFireGradient.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="GradientTexture2D" load_steps=2 format=3 uid="uid://b8wh1wkibxdsi"] 2 | 3 | [sub_resource type="Gradient" id="1"] 4 | colors = PackedColorArray(0.21875, 1, 0, 1, 0, 0.640625, 0.145142, 0) 5 | 6 | [resource] 7 | gradient = SubResource("1") 8 | width = 128 9 | -------------------------------------------------------------------------------- /godot/Demos/StylizedFire/HoleNoise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/StylizedFire/HoleNoise.png -------------------------------------------------------------------------------- /godot/Demos/StylizedFire/HoleNoise.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://flldwuhtdvhp" 6 | path.s3tc="res://.godot/imported/HoleNoise.png-4463c65817ac6974adf95590921ef8c1.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/StylizedFire/HoleNoise.png" 15 | dest_files=["res://.godot/imported/HoleNoise.png-4463c65817ac6974adf95590921ef8c1.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /godot/Demos/StylizedFire/WispyNoise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/StylizedFire/WispyNoise.png -------------------------------------------------------------------------------- /godot/Demos/StylizedFire/WispyNoise.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dbrvgwdbjk1jg" 6 | path.s3tc="res://.godot/imported/WispyNoise.png-51c0c348937110df7c2bdbd4e9b46669.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/StylizedFire/WispyNoise.png" 15 | dest_files=["res://.godot/imported/WispyNoise.png-51c0c348937110df7c2bdbd4e9b46669.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /godot/Demos/StylizedLiquid/Models/Beige.material: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/StylizedLiquid/Models/Beige.material -------------------------------------------------------------------------------- /godot/Demos/StylizedLiquid/Models/Glass.material: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/StylizedLiquid/Models/Glass.material -------------------------------------------------------------------------------- /godot/Demos/StylizedLiquid/Models/Red.material: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/StylizedLiquid/Models/Red.material -------------------------------------------------------------------------------- /godot/Demos/StylizedLiquid/Models/potionLarge_red.gltf.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/StylizedLiquid/Models/potionLarge_red.gltf.glb -------------------------------------------------------------------------------- /godot/Demos/StylizedWaterfall/RocksMaterial.material: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/StylizedWaterfall/RocksMaterial.material -------------------------------------------------------------------------------- /godot/Demos/StylizedWaterfall/RocksMaterial.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StandardMaterial3D" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://Demos/StylizedWaterfall/rock-color.jpg" type="Texture2D" id=1] 4 | 5 | [resource] 6 | resource_name = "RocksMaterial" 7 | params_cull_mode = 2 8 | albedo_color = Color( 0.906332, 0.906332, 0.906332, 1 ) 9 | albedo_texture = ExtResource( 1 ) 10 | roughness = 0.98 11 | uv1_scale = Vector3( 0.2, 0.2, 0.2 ) 12 | uv1_triplanar = true 13 | -------------------------------------------------------------------------------- /godot/Demos/StylizedWaterfall/RocksMaterial_001.material: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/StylizedWaterfall/RocksMaterial_001.material -------------------------------------------------------------------------------- /godot/Demos/StylizedWaterfall/Sand_001.material: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/StylizedWaterfall/Sand_001.material -------------------------------------------------------------------------------- /godot/Demos/StylizedWaterfall/WaterfallMaterial_001.material: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/StylizedWaterfall/WaterfallMaterial_001.material -------------------------------------------------------------------------------- /godot/Demos/StylizedWaterfall/WaterfallMesh.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/StylizedWaterfall/WaterfallMesh.blend -------------------------------------------------------------------------------- /godot/Demos/StylizedWaterfall/WaterfallMesh.blend.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/StylizedWaterfall/WaterfallMesh.blend.zip -------------------------------------------------------------------------------- /godot/Demos/StylizedWaterfall/WaterfallMesh.blend1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/StylizedWaterfall/WaterfallMesh.blend1 -------------------------------------------------------------------------------- /godot/Demos/StylizedWaterfall/color-uv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/StylizedWaterfall/color-uv.png -------------------------------------------------------------------------------- /godot/Demos/StylizedWaterfall/color-uv.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://7odxh76ikyoc" 6 | path.s3tc="res://.godot/imported/color-uv.png-496367f6ad09710c855d6a003addcc01.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/StylizedWaterfall/color-uv.png" 15 | dest_files=["res://.godot/imported/color-uv.png-496367f6ad09710c855d6a003addcc01.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | -------------------------------------------------------------------------------- /godot/Demos/StylizedWaterfall/rock-color.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/StylizedWaterfall/rock-color.jpg -------------------------------------------------------------------------------- /godot/Demos/StylizedWaterfall/rock-color.jpg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b0igw80sapwjy" 6 | path.s3tc="res://.godot/imported/rock-color.jpg-28d9e9b39649ad9d57e7411a78b117a5.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/StylizedWaterfall/rock-color.jpg" 15 | dest_files=["res://.godot/imported/rock-color.jpg-28d9e9b39649ad9d57e7411a78b117a5.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /godot/Demos/TextureMix/TextureMixDemo.gd: -------------------------------------------------------------------------------- 1 | extends AnimationPlayer 2 | 3 | func _unhandled_input(event: InputEvent) -> void: 4 | if event.is_action_pressed("ui_accept"): 5 | play("show-mix") 6 | -------------------------------------------------------------------------------- /godot/Demos/TextureMix/lambert2.material: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/TextureMix/lambert2.material -------------------------------------------------------------------------------- /godot/Demos/TextureMix/scene.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/TextureMix/scene.glb -------------------------------------------------------------------------------- /godot/Demos/TextureMix/textures/Moss003_1K_Color.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/TextureMix/textures/Moss003_1K_Color.jpg -------------------------------------------------------------------------------- /godot/Demos/TextureMix/textures/Moss003_1K_Normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/TextureMix/textures/Moss003_1K_Normal.jpg -------------------------------------------------------------------------------- /godot/Demos/TextureMix/textures/lambert2_ao.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/TextureMix/textures/lambert2_ao.jpg -------------------------------------------------------------------------------- /godot/Demos/TextureMix/textures/lambert2_ao.jpg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://euw4gltajib2" 6 | path.s3tc="res://.godot/imported/lambert2_ao.jpg-56c774f52c4707998d527f1349d3a01a.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/TextureMix/textures/lambert2_ao.jpg" 15 | dest_files=["res://.godot/imported/lambert2_ao.jpg-56c774f52c4707998d527f1349d3a01a.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /godot/Demos/TextureMix/textures/lambert2_baseColor.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/TextureMix/textures/lambert2_baseColor.jpeg -------------------------------------------------------------------------------- /godot/Demos/TextureMix/textures/lambert2_normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/TextureMix/textures/lambert2_normal.jpg -------------------------------------------------------------------------------- /godot/Demos/UnlitDirectionalTint/UnlitDirectionalTint.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="ShaderMaterial" load_steps=3 format=3 uid="uid://b728wkr1lafxb"] 2 | 3 | [ext_resource type="Shader" path="res://Shaders/unlit_directional_tint.gdshader" id="1"] 4 | [ext_resource type="Texture2D" uid="uid://dklympjuioh10" path="res://Shared/models/3D-environment/SceneColorAtlas.tres" id="2"] 5 | 6 | [resource] 7 | render_priority = 0 8 | shader = ExtResource("1") 9 | shader_parameter/tint_x = Color(0.4, 0.6, 0.8, 1) 10 | shader_parameter/tint_y = Color(0.9, 0.9, 0.9, 1) 11 | shader_parameter/tint_z = Color(0.6, 0.8, 0.7, 1) 12 | shader_parameter/overall_tint = Color(1, 1, 1, 1) 13 | shader_parameter/albedo_texture = ExtResource("2") 14 | -------------------------------------------------------------------------------- /godot/Demos/Water2D/Water2D.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Sprite2D 3 | 4 | 5 | func _ready() -> void: 6 | connect("item_rect_changed", Callable(self, "_on_item_rect_changed")) 7 | get_viewport().transparent_bg = true 8 | _on_item_rect_changed() 9 | 10 | 11 | func _on_item_rect_changed() -> void: 12 | material.set_shader_parameter("aspect_ratio", scale.y / scale.x) 13 | -------------------------------------------------------------------------------- /godot/Demos/Water2D/disk_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/Water2D/disk_mask.png -------------------------------------------------------------------------------- /godot/Demos/Water2D/disk_mask.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://drxbsginfxx7k" 6 | path.s3tc="res://.godot/imported/disk_mask.png-c135557b7a633daddd6b673d501bf067.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/Water2D/disk_mask.png" 15 | dest_files=["res://.godot/imported/disk_mask.png-c135557b7a633daddd6b673d501bf067.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | -------------------------------------------------------------------------------- /godot/Demos/Water2D/water_2D_material.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="ShaderMaterial" load_steps=3 format=2] 2 | 3 | [ext_resource path="res://Shaders/water_2D.gdshader" type="Shader" id=1] 4 | [ext_resource path="res://Demos/Water2D/water_uv_offset.png" type="Texture2D" id=2] 5 | 6 | [resource] 7 | shader = ExtResource( 1 ) 8 | shader_param/shadow_color = Color( 0.0352941, 0.243137, 0.568627, 1 ) 9 | shader_param/tile_factor = 8.0 10 | shader_param/aspect_ratio = 0.5625 11 | shader_param/texture_offset_scale = Vector2( 1, 0.5 ) 12 | shader_param/texture_offset_height = 0.04 13 | shader_param/texture_offset_time_scale = 0.03 14 | shader_param/sine_time_scale = 3.0 15 | shader_param/sine_offset_scale = Vector2( 0.4, 1.4 ) 16 | shader_param/sine_wave_size = 0.06 17 | shader_param/texture_offset_uv = ExtResource( 2 ) 18 | -------------------------------------------------------------------------------- /godot/Demos/Water2D/water_diffuse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/Water2D/water_diffuse.png -------------------------------------------------------------------------------- /godot/Demos/Water2D/water_diffuse.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cpypwjmxudcob" 6 | path="res://.godot/imported/water_diffuse.png-14571dc9f01ed2f9cf5d9cdd018173b8.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Demos/Water2D/water_diffuse.png" 14 | dest_files=["res://.godot/imported/water_diffuse.png-14571dc9f01ed2f9cf5d9cdd018173b8.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=1 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Demos/Water2D/water_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/Water2D/water_normal.png -------------------------------------------------------------------------------- /godot/Demos/Water2D/water_normal.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://lbwgnv1jw2ei" 6 | path="res://.godot/imported/water_normal.png-3846af6d8537d306313dd5207456869e.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Demos/Water2D/water_normal.png" 14 | dest_files=["res://.godot/imported/water_normal.png-3846af6d8537d306313dd5207456869e.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=1 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Demos/Water2D/water_uv_offset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/Water2D/water_uv_offset.png -------------------------------------------------------------------------------- /godot/Demos/Water2D/water_uv_offset.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b30vsrt1e6x4y" 6 | path="res://.godot/imported/water_uv_offset.png-65395cd4b38719072685a3d9276512a2.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Demos/Water2D/water_uv_offset.png" 14 | dest_files=["res://.godot/imported/water_uv_offset.png-65395cd4b38719072685a3d9276512a2.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=1 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Demos/Water3D/diffuse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/Water3D/diffuse.png -------------------------------------------------------------------------------- /godot/Demos/Water3D/diffuse.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://ddv3mmgjndlhs" 6 | path.s3tc="res://.godot/imported/diffuse.png-201dcb2e727cda91e26b2d0d4928f41d.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/Water3D/diffuse.png" 15 | dest_files=["res://.godot/imported/diffuse.png-201dcb2e727cda91e26b2d0d4928f41d.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | -------------------------------------------------------------------------------- /godot/Demos/Water3D/normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/Water3D/normal.png -------------------------------------------------------------------------------- /godot/Demos/Water3D/normal.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://drdcg4crc6qjc" 6 | path.s3tc="res://.godot/imported/normal.png-776bd7cec2b58aa5f80c7015b4427e03.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/Water3D/normal.png" 15 | dest_files=["res://.godot/imported/normal.png-776bd7cec2b58aa5f80c7015b4427e03.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=1 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | -------------------------------------------------------------------------------- /godot/Demos/Water3D/rocks.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/Water3D/rocks.glb -------------------------------------------------------------------------------- /godot/Demos/Water3D/specular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/Water3D/specular.png -------------------------------------------------------------------------------- /godot/Demos/Water3D/specular.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://ceesylgw5s4f3" 6 | path.s3tc="res://.godot/imported/specular.png-d66e15c40480db596fc399013b1281d2.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/Water3D/specular.png" 15 | dest_files=["res://.godot/imported/specular.png-d66e15c40480db596fc399013b1281d2.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | -------------------------------------------------------------------------------- /godot/Demos/WaterSidescroll2D/WaterSidescroll2D.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | # Sets water shader parameters 3 | extends Sprite2D 4 | 5 | 6 | func _ready() -> void: 7 | connect("item_rect_changed", Callable(self, "update_scale")) 8 | connect("texture_changed", Callable(self, "update_aspect_ratio")) 9 | 10 | update_aspect_ratio() 11 | update_zoom() 12 | update_scale() 13 | 14 | 15 | func _process(_delta: float) -> void: 16 | update_zoom() 17 | 18 | 19 | func update_scale() -> void: 20 | material.set_shader_parameter("scale", scale) 21 | 22 | 23 | # Sets the canvas zoom level 24 | func update_zoom() -> void: 25 | material.set_shader_parameter("zoom_y", get_viewport_transform().y.y) 26 | 27 | 28 | # Sets the aspect ratio of the texture 29 | func update_aspect_ratio() -> void: 30 | material.set_shader_parameter("aspect_ratio", texture.get_size().aspect()) 31 | -------------------------------------------------------------------------------- /godot/Demos/WindGrass/grass_triangle.obj: -------------------------------------------------------------------------------- 1 | # Blender v2.83.0 OBJ File: '' 2 | # www.blender.org 3 | v -0.255078 0.000000 0.000000 4 | v 0.255078 0.000000 0.000000 5 | v 0.000000 2.013708 0.000000 6 | v -0.127539 1.006854 0.000000 7 | v 0.127539 1.006854 0.000000 8 | v -0.191308 0.503427 0.000000 9 | v 0.063769 1.510281 0.000000 10 | v -0.063769 1.510281 0.000000 11 | v 0.191308 0.503427 0.000000 12 | vt 0.621057 0.520384 13 | vt 0.497980 0.979655 14 | vt 0.376628 0.520384 15 | vt 0.744133 0.238847 16 | vt 0.133923 0.098911 17 | vt 0.867209 0.098911 18 | vt 0.012570 0.013663 19 | vt 0.990286 0.013663 20 | vt 0.255275 0.238847 21 | vn 0.0000 0.0000 1.0000 22 | s 1 23 | f 7/1/1 3/2/1 8/3/1 24 | f 5/4/1 6/5/1 9/6/1 25 | f 9/6/1 1/7/1 2/8/1 26 | f 7/1/1 4/9/1 5/4/1 27 | f 5/4/1 4/9/1 6/5/1 28 | f 9/6/1 6/5/1 1/7/1 29 | f 7/1/1 8/3/1 4/9/1 30 | -------------------------------------------------------------------------------- /godot/Demos/WindGrass/grass_triangle.obj.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="wavefront_obj" 4 | importer_version=1 5 | type="Mesh" 6 | uid="uid://dkmbbutsksngn" 7 | path="res://.godot/imported/grass_triangle.obj-69ff51371c7a175889742fbd794836f2.mesh" 8 | 9 | [deps] 10 | 11 | files=["res://.godot/imported/grass_triangle.obj-69ff51371c7a175889742fbd794836f2.mesh"] 12 | 13 | source_file="res://Demos/WindGrass/grass_triangle.obj" 14 | dest_files=["res://.godot/imported/grass_triangle.obj-69ff51371c7a175889742fbd794836f2.mesh", "res://.godot/imported/grass_triangle.obj-69ff51371c7a175889742fbd794836f2.mesh"] 15 | 16 | [params] 17 | 18 | generate_tangents=true 19 | scale_mesh=Vector3(1, 1, 1) 20 | offset_mesh=Vector3(0, 0, 0) 21 | optimize_mesh=true 22 | force_disable_mesh_compression=false 23 | -------------------------------------------------------------------------------- /godot/Demos/WindGrass/unshaded.gdshader: -------------------------------------------------------------------------------- 1 | shader_type spatial; 2 | render_mode unshaded; 3 | 4 | uniform vec4 albedo : source_color; 5 | 6 | void fragment() { 7 | ALBEDO = albedo.rgb; 8 | } 9 | -------------------------------------------------------------------------------- /godot/Demos/WindGrassDemo.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=5 format=3 uid="uid://cslaml3dy0asm"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://03bjah3n70ep" path="res://Demos/WindGrass/WindGrassScene.tscn" id="1"] 4 | [ext_resource type="PackedScene" uid="uid://diofpwcvq5elu" path="res://Shared/DemoInterface.tscn" id="2"] 5 | [ext_resource type="PackedScene" uid="uid://dquhei2qv5csj" path="res://Shared/Demo3DEnvironment.tscn" id="3"] 6 | [ext_resource type="Script" path="res://addons/ShaderSecretsHelper/DemoScreen.gd" id="4"] 7 | 8 | [node name="WindGrassDemo" type="CanvasLayer"] 9 | script = ExtResource("4") 10 | 11 | [node name="WindGrass" parent="." instance=ExtResource("1")] 12 | 13 | [node name="Demo3DEnvironment" parent="." instance=ExtResource("3")] 14 | 15 | [node name="DemoInterface" parent="." instance=ExtResource("2")] 16 | anchors_preset = 10 17 | text_bbcode = "A wind shader that uses MultiMesh to create the blades of grass and a noise texture for the wind. This shader also supports one character interacting with the grass." 18 | -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Models/Tree.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/WindTrees/Models/Tree.glb -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Models/grass_clump.mesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/WindTrees/Models/grass_clump.mesh -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Models/terrain.obj.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="wavefront_obj" 4 | importer_version=1 5 | type="Mesh" 6 | uid="uid://bylmuengfvc88" 7 | path="res://.godot/imported/terrain.obj-7a44bc559aa398ea45be1c74f8d87a1a.mesh" 8 | 9 | [deps] 10 | 11 | files=["res://.godot/imported/terrain.obj-7a44bc559aa398ea45be1c74f8d87a1a.mesh"] 12 | 13 | source_file="res://Demos/WindTrees/Models/terrain.obj" 14 | dest_files=["res://.godot/imported/terrain.obj-7a44bc559aa398ea45be1c74f8d87a1a.mesh", "res://.godot/imported/terrain.obj-7a44bc559aa398ea45be1c74f8d87a1a.mesh"] 15 | 16 | [params] 17 | 18 | generate_tangents=true 19 | scale_mesh=Vector3(1, 1, 1) 20 | offset_mesh=Vector3(0, 0, 0) 21 | optimize_mesh=true 22 | force_disable_mesh_compression=false 23 | -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Textures/3d_noise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/WindTrees/Textures/3d_noise.png -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Textures/3d_noise.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://buqm33ggdn3nx" 6 | path.s3tc="res://.godot/imported/3d_noise.png-23677fd01461567a3962a4aceaf45b46.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/WindTrees/Textures/3d_noise.png" 15 | dest_files=["res://.godot/imported/3d_noise.png-23677fd01461567a3962a4aceaf45b46.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Textures/bark_albedo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/WindTrees/Textures/bark_albedo.png -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Textures/bark_albedo.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c1vt8rp6prxc1" 6 | path.s3tc="res://.godot/imported/bark_albedo.png-824c1254517a4a280d76c9da002a31f9.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/WindTrees/Textures/bark_albedo.png" 15 | dest_files=["res://.godot/imported/bark_albedo.png-824c1254517a4a280d76c9da002a31f9.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Textures/bark_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/WindTrees/Textures/bark_normal.png -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Textures/bark_normal.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bo6bgmt3vg8v" 6 | path.s3tc="res://.godot/imported/bark_normal.png-924cfaf79650e49e1ac4679b81d821c7.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/WindTrees/Textures/bark_normal.png" 15 | dest_files=["res://.godot/imported/bark_normal.png-924cfaf79650e49e1ac4679b81d821c7.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=1 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Textures/elm leaf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/WindTrees/Textures/elm leaf.png -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Textures/elm leaf.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://2g6hf4xcqigc" 6 | path.s3tc="res://.godot/imported/elm leaf.png-ec76b1c73de3a91e6ad95088c2d3c717.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/WindTrees/Textures/elm leaf.png" 15 | dest_files=["res://.godot/imported/elm leaf.png-ec76b1c73de3a91e6ad95088c2d3c717.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Textures/elm_leaf_albedo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/WindTrees/Textures/elm_leaf_albedo.png -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Textures/elm_leaf_albedo.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c1uph7066yy0v" 6 | path="res://.godot/imported/elm_leaf_albedo.png-6f95af9073784b418fd138c018c41ef8.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Demos/WindTrees/Textures/elm_leaf_albedo.png" 14 | dest_files=["res://.godot/imported/elm_leaf_albedo.png-6f95af9073784b418fd138c018c41ef8.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Textures/elm_leaf_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/WindTrees/Textures/elm_leaf_normal.png -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Textures/elm_leaf_transmission.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/WindTrees/Textures/elm_leaf_transmission.png -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Textures/grass_albedo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/WindTrees/Textures/grass_albedo.png -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Textures/grass_albedo.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cas8g4fr7rp3x" 6 | path.s3tc="res://.godot/imported/grass_albedo.png-ef2c14982bd1c67b78de311b737491fa.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/WindTrees/Textures/grass_albedo.png" 15 | dest_files=["res://.godot/imported/grass_albedo.png-ef2c14982bd1c67b78de311b737491fa.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Textures/grass_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/WindTrees/Textures/grass_normal.png -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Textures/grass_normal.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cn2xfijmvf5m4" 6 | path.s3tc="res://.godot/imported/grass_normal.png-f8c8fa4def4f46c143a43383fa45ab6c.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/WindTrees/Textures/grass_normal.png" 15 | dest_files=["res://.godot/imported/grass_normal.png-f8c8fa4def4f46c143a43383fa45ab6c.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=1 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Textures/ground_ORM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/WindTrees/Textures/ground_ORM.png -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Textures/ground_ORM.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bah7byvr8ft6h" 6 | path.s3tc="res://.godot/imported/ground_ORM.png-e9399263f54f3a736f5ea159720347f7.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Demos/WindTrees/Textures/ground_ORM.png" 15 | dest_files=["res://.godot/imported/ground_ORM.png-e9399263f54f3a736f5ea159720347f7.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Textures/ground_albedo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/WindTrees/Textures/ground_albedo.png -------------------------------------------------------------------------------- /godot/Demos/WindTrees/Textures/ground_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/WindTrees/Textures/ground_normal.png -------------------------------------------------------------------------------- /godot/Demos/WindTreesDemo.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://syydvbuwb374"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://d1dkqm4e2auq" path="res://Demos/WindTrees/WindTreeScene.tscn" id="1"] 4 | [ext_resource type="PackedScene" path="res://Shared/DemoInterface.tscn" id="2"] 5 | [ext_resource type="Script" path="res://addons/ShaderSecretsHelper/DemoScreen.gd" id="4"] 6 | 7 | [node name="WindTreesDemo" type="CanvasLayer"] 8 | script = ExtResource("4") 9 | 10 | [node name="WindTreeScene" parent="." instance=ExtResource("1")] 11 | 12 | [node name="DemoInterface" parent="." instance=ExtResource("2")] 13 | -------------------------------------------------------------------------------- /godot/Demos/Xray2d/Watcher.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Node2D 3 | 4 | 5 | func _draw() -> void: 6 | draw_circle(Vector2.ZERO, 15, Color.SKY_BLUE) 7 | draw_line(Vector2.ZERO, Vector2.RIGHT * 30, Color.CRIMSON, 5) 8 | -------------------------------------------------------------------------------- /godot/Demos/Xray2d/gear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/Xray2d/gear.png -------------------------------------------------------------------------------- /godot/Demos/Xray2d/gear.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cyvclfdqih073" 6 | path="res://.godot/imported/gear.png-3cf852d20d6db4936be05a4be42b552c.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Demos/Xray2d/gear.png" 14 | dest_files=["res://.godot/imported/gear.png-3cf852d20d6db4936be05a4be42b552c.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Demos/labels/demo_labels.csv.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="csv_translation" 4 | type="Translation" 5 | uid="uid://c5kn1j2wood1d" 6 | 7 | [deps] 8 | 9 | files=["res://Demos/labels/demo_labels.en.translation"] 10 | 11 | source_file="res://Demos/labels/demo_labels.csv" 12 | dest_files=["res://Demos/labels/demo_labels.en.translation"] 13 | 14 | [params] 15 | 16 | compress=true 17 | delimiter=0 18 | -------------------------------------------------------------------------------- /godot/Demos/labels/demo_labels.en.translation: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Demos/labels/demo_labels.en.translation -------------------------------------------------------------------------------- /godot/Intro/Elements/EnableWireframe.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | 4 | func _init() -> void: 5 | RenderingServer.set_debug_generate_wireframes(true) 6 | -------------------------------------------------------------------------------- /godot/Intro/Elements/LineDrawer.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://cepenetstu8pb"] 2 | 3 | [ext_resource type="Script" path="res://Intro/Elements/LineDrawer.gd" id="1"] 4 | 5 | [node name="LineDrawer" type="Node2D"] 6 | script = ExtResource("1") 7 | -------------------------------------------------------------------------------- /godot/Intro/Elements/Pixel.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Node2D 3 | 4 | var size := Vector2.ONE 5 | var color := Color.WHITE 6 | 7 | @onready var _tween: Tween = $Tween 8 | 9 | 10 | func _draw() -> void: 11 | draw_rect(Rect2(-size / 2, size), color, true) 12 | 13 | 14 | func do_scale_down(delay: float) -> void: 15 | _tween.interpolate_method( 16 | self, "_do_scale_down_update", size, Vector2(size.x, 0), 0.15, 0, 2, delay 17 | ) 18 | _tween.start() 19 | await _tween.tween_all_completed 20 | queue_free() 21 | 22 | 23 | func _do_scale_down_update(value: Vector2) -> void: 24 | size = value 25 | update() 26 | -------------------------------------------------------------------------------- /godot/Intro/Elements/Pixel.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://cjviglpqq1vre"] 2 | 3 | [ext_resource type="Script" path="res://Intro/Elements/Pixel.gd" id="1"] 4 | 5 | [node name="Pixel" type="Node2D"] 6 | script = ExtResource("1") 7 | 8 | [node name="Tween" type="Tween" parent="."] 9 | -------------------------------------------------------------------------------- /godot/Intro/Elements/ShaderPipelineIntro.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | @onready var _cube_scene: Node3D = $SubViewport/Node3D 4 | @onready var _raw_vertices: Node2D = $RawVertexData 5 | @onready var _title: Label = $Title 6 | @onready var _line_drawers: Node2D = $LineDrawers 7 | @onready var _pixels: Node2D = $Pixels 8 | @onready var _animation_player: AnimationPlayer = $AnimationPlayer 9 | @onready var _main_cube: MeshInstance3D = $SubViewport/Node3D/MainCube 10 | @onready var _camera: Camera3D = $SubViewport/Node3D/Camera3D 11 | 12 | func _ready() -> void: 13 | _pixels.modulate = Color.TRANSPARENT 14 | _cube_scene.setup() 15 | _raw_vertices.setup(_main_cube, _camera) 16 | _line_drawers.setup( 17 | _raw_vertices.vertex_end_positions, 18 | _cube_scene.get_node("MainCube").mesh.surface_get_arrays(0)[ArrayMesh.ARRAY_INDEX], 19 | _raw_vertices.culled_indices 20 | ) 21 | -------------------------------------------------------------------------------- /godot/Intro/Elements/Title.gd: -------------------------------------------------------------------------------- 1 | extends Label 2 | 3 | @onready var _tween: Tween = $Tween 4 | 5 | func change_title(title: String) -> void: 6 | _tween.interpolate_property(self, "modulate", Color.WHITE, Color.TRANSPARENT, 0.15) 7 | _tween.start() 8 | await _tween.tween_all_completed 9 | text = title 10 | _tween.interpolate_property(self, "modulate", Color.TRANSPARENT, Color.WHITE, 0.15) 11 | _tween.start() 12 | -------------------------------------------------------------------------------- /godot/Intro/Elements/VertexRaw.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | 4 | func _draw() -> void: 5 | draw_circle(Vector2.ZERO, 6, Color.SKY_BLUE) 6 | draw_circle(Vector2.ZERO, 4, Color.BLUE) 7 | -------------------------------------------------------------------------------- /godot/Intro/Elements/VertexRaw.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://cqvt7s5neg40c"] 2 | 3 | [ext_resource type="Script" path="res://Intro/Elements/VertexRaw.gd" id="1"] 4 | 5 | [node name="Vertex" type="Node2D"] 6 | script = ExtResource("1") 7 | -------------------------------------------------------------------------------- /godot/Intro/textured_square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Intro/textured_square.png -------------------------------------------------------------------------------- /godot/Intro/textured_square.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c4dnl4cljlbum" 6 | path="res://.godot/imported/textured_square.png-fd55edbc823ec00115663fadd8c2f0dc.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Intro/textured_square.png" 14 | dest_files=["res://.godot/imported/textured_square.png-fd55edbc823ec00115663fadd8c2f0dc.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Main/Constants.gd: -------------------------------------------------------------------------------- 1 | class_name Constants 2 | 3 | enum MovementSchemes {NONE, TOPDOWN_2D, PLATFORMER_2D, PLATFORMER_3D, WALKING_SIMULATOR} 4 | 5 | const MOVEMENT_KEY_MAPPINGS:= { 6 | MovementSchemes.NONE: [], 7 | MovementSchemes.TOPDOWN_2D: ["move_left", "move_right", "move_up", "move_down"], 8 | MovementSchemes.PLATFORMER_2D: ["move_left", "move_right", "jump"], 9 | MovementSchemes.PLATFORMER_3D: ["move_left", "move_right", "move_up", "move_down", "jump_3d"], 10 | MovementSchemes.WALKING_SIMULATOR: ["move_left", "move_right", "move_up", "move_down"], 11 | } 12 | -------------------------------------------------------------------------------- /godot/Main/DemoItem.gd: -------------------------------------------------------------------------------- 1 | extends Button 2 | 3 | signal demo_requested 4 | 5 | @export var demo_name := "": set = set_demo_name 6 | @export var demo_icon: Texture2D: set = set_demo_icon 7 | 8 | 9 | @onready var _label :Label= $HBoxContainer/Label 10 | @onready var _icon : TextureRect= $HBoxContainer/Icon 11 | 12 | 13 | func _gui_input(event: InputEvent) -> void: 14 | if event.is_action_pressed("click") and event.double_click and get_viewport().gui_get_focus_owner() == self: 15 | emit_signal("demo_requested") 16 | elif event.is_action_pressed("ui_accept") and get_viewport().gui_get_focus_owner() == self: 17 | emit_signal("demo_requested") 18 | 19 | 20 | func set_demo_name(value: String) -> void: 21 | demo_name = value 22 | if not is_inside_tree(): 23 | await self.ready 24 | _label.text = demo_name 25 | 26 | 27 | func set_demo_icon(value: Texture2D) -> void: 28 | demo_icon = value 29 | if not is_inside_tree(): 30 | await self.ready 31 | _icon.texture = value 32 | _icon.visible = value != null 33 | -------------------------------------------------------------------------------- /godot/Main/DemoList.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://b176ml0gceo5m"] 2 | 3 | [ext_resource type="Script" path="res://Main/DemoList.gd" id="1"] 4 | 5 | [node name="DemoList" type="ScrollContainer"] 6 | offset_left = 16.0 7 | offset_top = 24.0 8 | offset_right = 666.0 9 | offset_bottom = 361.0 10 | scroll_horizontal_enabled = false 11 | script = ExtResource("1") 12 | __meta__ = { 13 | "_edit_use_anchors_": false 14 | } 15 | 16 | [node name="VBoxContainer" type="VBoxContainer" parent="."] 17 | offset_right = 650.0 18 | size_flags_horizontal = 3 19 | theme_override_constants/separation = 4 20 | 21 | [node name="NoResultsLabel" type="Label" parent="."] 22 | offset_right = 66.0 23 | offset_bottom = 14.0 24 | theme_override_colors/font_color = Color(0.439216, 0.482353, 0.662745, 1) 25 | text = "No results" 26 | __meta__ = { 27 | "_edit_use_anchors_": false 28 | } 29 | -------------------------------------------------------------------------------- /godot/Main/DemoPlayer.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | 4 | func load_demo(scene_path: String) -> void: 5 | if not scene_path: 6 | return 7 | 8 | var demo := load(scene_path) 9 | if demo: 10 | add_child(demo.instantiate()) 11 | 12 | 13 | func unload() -> void: 14 | for node in get_children(): 15 | call_deferred("remove_child", node) 16 | node.queue_free() 17 | 18 | 19 | func is_loaded() -> bool: 20 | return get_child_count() > 0 21 | -------------------------------------------------------------------------------- /godot/Main/GDQuestLogo.gd: -------------------------------------------------------------------------------- 1 | extends TextureButton 2 | 3 | const COLOR_PRESSED := Color(0.84611, 0.784345, 0.902344) 4 | 5 | func _ready() -> void: 6 | connect("pressed", Callable(self, "open_gdquest_website")) 7 | connect("button_down", Callable(self, "_toggle_shade").bind(true)) 8 | connect("button_up", Callable(self, "_toggle_shade").bind(false)) 9 | 10 | 11 | func open_gdquest_website() -> void: 12 | OS.shell_open("http://gdquest.com/") 13 | 14 | 15 | func _toggle_shade(is_down: bool) -> void: 16 | modulate = COLOR_PRESSED if is_down else Color.WHITE 17 | -------------------------------------------------------------------------------- /godot/Main/GDQuestLogo.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://cmg7vob2jhnek"] 2 | 3 | [ext_resource type="Texture2D" uid="uid://dieoxafgevoay" path="res://Main/gdquest_logo_white.svg" id="1_wf1i5"] 4 | [ext_resource type="Script" path="res://Main/GDQuestLogo.gd" id="2"] 5 | 6 | [node name="GDQuestLogo" type="TextureButton"] 7 | anchors_preset = 3 8 | anchor_left = 1.0 9 | anchor_top = 1.0 10 | anchor_right = 1.0 11 | anchor_bottom = 1.0 12 | offset_left = -1920.0 13 | offset_top = -1080.0 14 | offset_right = -1666.0 15 | offset_bottom = -1001.0 16 | mouse_default_cursor_shape = 2 17 | texture_normal = ExtResource("1_wf1i5") 18 | script = ExtResource("2") 19 | -------------------------------------------------------------------------------- /godot/Main/UI/9patch_mainmenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Main/UI/9patch_mainmenu.png -------------------------------------------------------------------------------- /godot/Main/UI/9patch_mainmenu.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://u0wgaiag7ifs" 6 | path="res://.godot/imported/9patch_mainmenu.png-71adb05dfe77c50f829d7d75a59d363d.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Main/UI/9patch_mainmenu.png" 14 | dest_files=["res://.godot/imported/9patch_mainmenu.png-71adb05dfe77c50f829d7d75a59d363d.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Main/UI/9patch_searchbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Main/UI/9patch_searchbar.png -------------------------------------------------------------------------------- /godot/Main/UI/9patch_searchbar.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b1ucwbfl05g86" 6 | path="res://.godot/imported/9patch_searchbar.png-ddd6f643ae8a21ccc012a9d3b524cfcd.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Main/UI/9patch_searchbar.png" 14 | dest_files=["res://.godot/imported/9patch_searchbar.png-ddd6f643ae8a21ccc012a9d3b524cfcd.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Main/UI/Slider.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://bwtk52g0ufvjp"] 2 | 3 | [ext_resource type="Theme" path="res://Main/UI/ui_theme.tres" id="4"] 4 | 5 | [node name="Slider" type="HSlider"] 6 | anchor_left = 0.5 7 | anchor_top = 0.5 8 | anchor_right = 0.5 9 | anchor_bottom = 0.5 10 | offset_left = -960.0 11 | offset_top = -540.0 12 | offset_right = -448.0 13 | offset_bottom = -444.0 14 | pivot_offset = Vector2(480, 50) 15 | size_flags_horizontal = 6 16 | theme = ExtResource("4") 17 | min_value = 0.1 18 | max_value = 4.1 19 | step = 0.1 20 | value = 3.0 21 | ticks_on_borders = true 22 | __meta__ = { 23 | "_edit_use_anchors_": false 24 | } 25 | -------------------------------------------------------------------------------- /godot/Main/UI/TextButton.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene format=3 uid="uid://cgul554bs676i"] 2 | 3 | [node name="TextButton" type="Button"] 4 | offset_right = 318.0 5 | offset_bottom = 152.0 6 | shortcut_in_tooltip = false 7 | action_mode = 0 8 | text = "Button" 9 | __meta__ = { 10 | "_edit_use_anchors_": false 11 | } 12 | -------------------------------------------------------------------------------- /godot/Main/UI/arrowLeft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Main/UI/arrowLeft.png -------------------------------------------------------------------------------- /godot/Main/UI/arrowLeft.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://coaycm6yuvlyh" 6 | path="res://.godot/imported/arrowLeft.png-723cc0769890f8683e44bd3ace5fb47d.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Main/UI/arrowLeft.png" 14 | dest_files=["res://.godot/imported/arrowLeft.png-723cc0769890f8683e44bd3ace5fb47d.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Main/UI/arrowLeftPressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Main/UI/arrowLeftPressed.png -------------------------------------------------------------------------------- /godot/Main/UI/arrowLeftPressed.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bfsxcdp5gtywt" 6 | path="res://.godot/imported/arrowLeftPressed.png-ea82c769ae0a1290ba1692a23c26b110.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Main/UI/arrowLeftPressed.png" 14 | dest_files=["res://.godot/imported/arrowLeftPressed.png-ea82c769ae0a1290ba1692a23c26b110.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Main/UI/arrowRight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Main/UI/arrowRight.png -------------------------------------------------------------------------------- /godot/Main/UI/arrowRight.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bsghcrj1q66mw" 6 | path="res://.godot/imported/arrowRight.png-db20eaf5bb8fb811e3e538af8bcdede8.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Main/UI/arrowRight.png" 14 | dest_files=["res://.godot/imported/arrowRight.png-db20eaf5bb8fb811e3e538af8bcdede8.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Main/UI/arrowRightPressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Main/UI/arrowRightPressed.png -------------------------------------------------------------------------------- /godot/Main/UI/arrowRightPressed.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://u034kti80p7h" 6 | path="res://.godot/imported/arrowRightPressed.png-7ec74f2fe0bd3ee1c04de0bb2d99c850.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Main/UI/arrowRightPressed.png" 14 | dest_files=["res://.godot/imported/arrowRightPressed.png-7ec74f2fe0bd3ee1c04de0bb2d99c850.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Main/UI/button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Main/UI/button.png -------------------------------------------------------------------------------- /godot/Main/UI/button.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://ds41hh63rgy7n" 6 | path="res://.godot/imported/button.png-eb4a38e5404b5c4f94765c1b0434c75c.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Main/UI/button.png" 14 | dest_files=["res://.godot/imported/button.png-eb4a38e5404b5c4f94765c1b0434c75c.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Main/UI/buttonLong.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Main/UI/buttonLong.png -------------------------------------------------------------------------------- /godot/Main/UI/buttonLong.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://pohflathcak6" 6 | path="res://.godot/imported/buttonLong.png-8a015dc8129eb6fb16472e19e0399ffb.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Main/UI/buttonLong.png" 14 | dest_files=["res://.godot/imported/buttonLong.png-8a015dc8129eb6fb16472e19e0399ffb.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Main/UI/buttonLongPressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Main/UI/buttonLongPressed.png -------------------------------------------------------------------------------- /godot/Main/UI/buttonLongPressed.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://ca5lmwfoe5usu" 6 | path="res://.godot/imported/buttonLongPressed.png-0e4508e57c203e78aa55ec76fb7d7177.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Main/UI/buttonLongPressed.png" 14 | dest_files=["res://.godot/imported/buttonLongPressed.png-0e4508e57c203e78aa55ec76fb7d7177.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Main/UI/buttonPressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Main/UI/buttonPressed.png -------------------------------------------------------------------------------- /godot/Main/UI/buttonPressed.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dytx7564maip5" 6 | path="res://.godot/imported/buttonPressed.png-10f90d2fa500ba71d7d1060ed1bdd5f8.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Main/UI/buttonPressed.png" 14 | dest_files=["res://.godot/imported/buttonPressed.png-10f90d2fa500ba71d7d1060ed1bdd5f8.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Main/UI/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Main/UI/close.png -------------------------------------------------------------------------------- /godot/Main/UI/close.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://3uu8kxplel5p" 6 | path="res://.godot/imported/close.png-6b92c8aaa12ecea10ab5cc2dd917e592.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Main/UI/close.png" 14 | dest_files=["res://.godot/imported/close.png-6b92c8aaa12ecea10ab5cc2dd917e592.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Main/UI/fonts/ExtraLargeFont.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="FontFile" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://Main/UI/fonts/Montserrat-Bold.ttf" type="FontFile" id=1] 4 | 5 | [resource] 6 | size = 66 7 | use_mipmaps = true 8 | use_filter = true 9 | font_data = ExtResource( 1 ) 10 | -------------------------------------------------------------------------------- /godot/Main/UI/fonts/KeyboardKeyFont.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="FontFile" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://Main/UI/fonts/SourceCodePro-Bold.otf" type="FontFile" id=1] 4 | 5 | [resource] 6 | size = 18 7 | use_mipmaps = true 8 | use_filter = true 9 | font_data = ExtResource( 1 ) 10 | -------------------------------------------------------------------------------- /godot/Main/UI/fonts/Montserrat-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Main/UI/fonts/Montserrat-Bold.ttf -------------------------------------------------------------------------------- /godot/Main/UI/fonts/Montserrat-Bold.ttf.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="font_data_dynamic" 4 | type="FontFile" 5 | uid="uid://brjq0qv76p7fr" 6 | path="res://.godot/imported/Montserrat-Bold.ttf-b38d3a0a405807cfa15b591ce56d626e.fontdata" 7 | 8 | [deps] 9 | 10 | source_file="res://Main/UI/fonts/Montserrat-Bold.ttf" 11 | dest_files=["res://.godot/imported/Montserrat-Bold.ttf-b38d3a0a405807cfa15b591ce56d626e.fontdata"] 12 | 13 | [params] 14 | 15 | Rendering=null 16 | antialiasing=1 17 | generate_mipmaps=false 18 | disable_embedded_bitmaps=true 19 | multichannel_signed_distance_field=false 20 | msdf_pixel_range=8 21 | msdf_size=48 22 | allow_system_fallback=true 23 | force_autohinter=false 24 | hinting=1 25 | subpixel_positioning=1 26 | oversampling=0.0 27 | Fallbacks=null 28 | fallbacks=[] 29 | Compress=null 30 | compress=true 31 | preload=[] 32 | language_support={} 33 | script_support={} 34 | opentype_features={} 35 | -------------------------------------------------------------------------------- /godot/Main/UI/fonts/SmallFont.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="FontFile" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://Main/UI/fonts/Montserrat-Bold.ttf" type="FontFile" id=1] 4 | 5 | [resource] 6 | size = 18 7 | use_mipmaps = true 8 | use_filter = true 9 | font_data = ExtResource( 1 ) 10 | -------------------------------------------------------------------------------- /godot/Main/UI/fonts/SourceCodePro-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Main/UI/fonts/SourceCodePro-Bold.otf -------------------------------------------------------------------------------- /godot/Main/UI/fonts/SourceCodePro-Bold.otf.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="font_data_dynamic" 4 | type="FontFile" 5 | uid="uid://crdslqpoukef2" 6 | path="res://.godot/imported/SourceCodePro-Bold.otf-b4ab25a58d6d371db355fc94fc7bd437.fontdata" 7 | 8 | [deps] 9 | 10 | source_file="res://Main/UI/fonts/SourceCodePro-Bold.otf" 11 | dest_files=["res://.godot/imported/SourceCodePro-Bold.otf-b4ab25a58d6d371db355fc94fc7bd437.fontdata"] 12 | 13 | [params] 14 | 15 | Rendering=null 16 | antialiasing=1 17 | generate_mipmaps=false 18 | disable_embedded_bitmaps=true 19 | multichannel_signed_distance_field=false 20 | msdf_pixel_range=8 21 | msdf_size=48 22 | allow_system_fallback=true 23 | force_autohinter=false 24 | hinting=1 25 | subpixel_positioning=1 26 | oversampling=0.0 27 | Fallbacks=null 28 | fallbacks=[] 29 | Compress=null 30 | compress=true 31 | preload=[] 32 | language_support={} 33 | script_support={} 34 | opentype_features={} 35 | -------------------------------------------------------------------------------- /godot/Main/UI/fonts/SubtitleFont.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="FontFile" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://Main/UI/fonts/Montserrat-Bold.ttf" type="FontFile" id=1] 4 | 5 | [resource] 6 | size = 36 7 | use_mipmaps = true 8 | use_filter = true 9 | font_data = ExtResource( 1 ) 10 | -------------------------------------------------------------------------------- /godot/Main/UI/fonts/TitleFont.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="FontFile" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://Main/UI/fonts/Montserrat-Bold.ttf" type="FontFile" id=1] 4 | 5 | [resource] 6 | size = 36 7 | use_mipmaps = true 8 | use_filter = true 9 | font_data = ExtResource( 1 ) 10 | -------------------------------------------------------------------------------- /godot/Main/UI/lineedit_stylebox_error.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | content_margin_left = 20.0 5 | bg_color = Color( 0.196078, 0.160784, 0.278431, 1 ) 6 | border_width_left = 3 7 | border_width_top = 3 8 | border_width_right = 3 9 | border_width_bottom = 3 10 | border_color = Color( 0.921569, 0.337255, 0.294118, 1 ) 11 | corner_radius_top_left = 8 12 | corner_radius_top_right = 8 13 | corner_radius_bottom_right = 8 14 | corner_radius_bottom_left = 8 15 | -------------------------------------------------------------------------------- /godot/Main/UI/lineedit_stylebox_focus.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | content_margin_left = 20.0 5 | bg_color = Color( 0.196078, 0.160784, 0.278431, 1 ) 6 | border_width_left = 3 7 | border_width_top = 3 8 | border_width_right = 3 9 | border_width_bottom = 3 10 | border_color = Color( 0.301961, 0.65098, 1, 1 ) 11 | corner_radius_top_left = 8 12 | corner_radius_top_right = 8 13 | corner_radius_bottom_right = 8 14 | corner_radius_bottom_left = 8 15 | -------------------------------------------------------------------------------- /godot/Main/UI/lineedit_stylebox_normal.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | content_margin_left = 20.0 5 | bg_color = Color( 0.196078, 0.160784, 0.278431, 1 ) 6 | border_width_left = 3 7 | border_width_top = 3 8 | border_width_right = 3 9 | border_width_bottom = 3 10 | border_color = Color( 0.294118, 0.356863, 0.670588, 1 ) 11 | corner_radius_top_left = 8 12 | corner_radius_top_right = 8 13 | corner_radius_bottom_right = 8 14 | corner_radius_bottom_left = 8 15 | -------------------------------------------------------------------------------- /godot/Main/UI/node-icons/Control.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /godot/Main/UI/node-icons/GuiVisibilityVisible.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /godot/Main/UI/node-icons/Node.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /godot/Main/UI/node-icons/Node2D.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /godot/Main/UI/node-icons/Node3D.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /godot/Main/UI/scrollbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Main/UI/scrollbar.png -------------------------------------------------------------------------------- /godot/Main/UI/scrollbar.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cy28ixckf1i1k" 6 | path="res://.godot/imported/scrollbar.png-824f0e22fb815a50d66f1f747acfbb32.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Main/UI/scrollbar.png" 14 | dest_files=["res://.godot/imported/scrollbar.png-824f0e22fb815a50d66f1f747acfbb32.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Main/UI/scrollbar_grabber_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Main/UI/scrollbar_grabber_active.png -------------------------------------------------------------------------------- /godot/Main/UI/scrollbar_grabber_active.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cc7qhdx0xge4t" 6 | path="res://.godot/imported/scrollbar_grabber_active.png-ad03badda3986fe00c75e63fa1e912d0.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Main/UI/scrollbar_grabber_active.png" 14 | dest_files=["res://.godot/imported/scrollbar_grabber_active.png-ad03badda3986fe00c75e63fa1e912d0.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Main/UI/scrollbar_grabber_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Main/UI/scrollbar_grabber_inactive.png -------------------------------------------------------------------------------- /godot/Main/UI/scrollbar_grabber_inactive.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bxghw7ls08x1j" 6 | path="res://.godot/imported/scrollbar_grabber_inactive.png-b9b85fd1ccf2ab5f12b0b72924140d9e.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Main/UI/scrollbar_grabber_inactive.png" 14 | dest_files=["res://.godot/imported/scrollbar_grabber_inactive.png-b9b85fd1ccf2ab5f12b0b72924140d9e.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Main/UI/textFrame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Main/UI/textFrame.png -------------------------------------------------------------------------------- /godot/Main/UI/textFrame.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c4v4it31autse" 6 | path="res://.godot/imported/textFrame.png-757848f836384ec02d35ce6c38f6d814.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Main/UI/textFrame.png" 14 | dest_files=["res://.godot/imported/textFrame.png-757848f836384ec02d35ce6c38f6d814.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Main/UIKeyMapping.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://f21qa7uxrxu1"] 2 | 3 | [ext_resource type="FontFile" path="res://Main/UI/fonts/SmallFont.tres" id="1"] 4 | [ext_resource type="Script" path="res://Main/UIKeyMapping.gd" id="2"] 5 | 6 | [node name="UIKeyMapping" type="HBoxContainer"] 7 | offset_right = 162.0 8 | offset_bottom = 31.0 9 | size_flags_horizontal = 3 10 | script = ExtResource("2") 11 | __meta__ = { 12 | "_edit_use_anchors_": false 13 | } 14 | 15 | [node name="Label" type="Label" parent="."] 16 | offset_top = 4.0 17 | offset_right = 87.0 18 | offset_bottom = 27.0 19 | size_flags_horizontal = 3 20 | theme_override_fonts/font = ExtResource("1") 21 | text = "Move left" 22 | 23 | [node name="Keys" type="HBoxContainer" parent="."] 24 | offset_left = 162.0 25 | offset_right = 162.0 26 | offset_bottom = 31.0 27 | size_flags_horizontal = 10 28 | -------------------------------------------------------------------------------- /godot/Main/UIKeyboardKey.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://g82ioqud1tka"] 2 | 3 | [ext_resource type="FontFile" path="res://Main/UI/fonts/KeyboardKeyFont.tres" id="1"] 4 | [ext_resource type="StyleBox" path="res://Main/keyboard_key_panel.tres" id="2"] 5 | 6 | [node name="UIKeyboardKey" type="Label"] 7 | offset_right = 27.0 8 | offset_bottom = 31.0 9 | size_flags_vertical = 1 10 | theme_override_styles/normal = ExtResource("2") 11 | theme_override_fonts/font = ExtResource("1") 12 | __meta__ = { 13 | "_edit_use_anchors_": false 14 | } 15 | -------------------------------------------------------------------------------- /godot/Main/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Main/background.png -------------------------------------------------------------------------------- /godot/Main/background.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://djonil8al43ey" 6 | path="res://.godot/imported/background.png-3da94da572173cda766a02337aadd16c.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Main/background.png" 14 | dest_files=["res://.godot/imported/background.png-3da94da572173cda766a02337aadd16c.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Main/filter_button_group.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="ButtonGroup" format=2] 2 | 3 | [resource] 4 | -------------------------------------------------------------------------------- /godot/Main/keyboard_key_panel.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | content_margin_left = 8.0 5 | content_margin_right = 8.0 6 | content_margin_top = 4.0 7 | content_margin_bottom = 4.0 8 | bg_color = Color( 0.294118, 0.356863, 0.670588, 1 ) 9 | border_width_left = 2 10 | border_width_top = 2 11 | border_width_right = 2 12 | border_width_bottom = 2 13 | border_color = Color( 0.301961, 0.65098, 1, 1 ) 14 | corner_radius_top_left = 4 15 | corner_radius_top_right = 4 16 | corner_radius_bottom_right = 4 17 | corner_radius_bottom_left = 4 18 | expand_margin_left = 2.0 19 | expand_margin_right = 2.0 20 | expand_margin_top = 2.0 21 | expand_margin_bottom = 2.0 22 | shadow_color = Color( 0.152941, 0.152941, 0.211765, 0.615686 ) 23 | shadow_size = 2 24 | shadow_offset = Vector2( 0, 2 ) 25 | -------------------------------------------------------------------------------- /godot/Main/planet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Main/planet.png -------------------------------------------------------------------------------- /godot/Main/planet.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://tp7uln81cgxx" 6 | path="res://.godot/imported/planet.png-05d346fd0ceeb3dad68ddc8e29bf4658.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Main/planet.png" 14 | dest_files=["res://.godot/imported/planet.png-05d346fd0ceeb3dad68ddc8e29bf4658.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Main/planet_large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Main/planet_large.png -------------------------------------------------------------------------------- /godot/Main/planet_large.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://blop6sfkvwbs4" 6 | path="res://.godot/imported/planet_large.png-14bf62a4fb573039c9af88d82354076f.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Main/planet_large.png" 14 | dest_files=["res://.godot/imported/planet_large.png-14bf62a4fb573039c9af88d82354076f.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Main/title.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bq0oa0hlk08r0" 6 | path="res://.godot/imported/title.svg-98b5c75af5b501cde34606d37216fd13.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Main/title.svg" 14 | dest_files=["res://.godot/imported/title.svg-98b5c75af5b501cde34606d37216fd13.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.4 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /godot/Shaders/PalettSwap2D.gdshader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | render_mode unshaded, blend_disabled; 3 | 4 | uniform sampler2D palette; 5 | uniform float palette_count = 1.0; 6 | uniform float palette_index = 0.0; 7 | 8 | const float STEP_UNIT = 0.00392; 9 | 10 | void fragment() { 11 | 12 | float increment = 1.0 / palette_count; 13 | float y = increment * palette_index + increment * 0.5; 14 | vec4 color = texture(TEXTURE, UV); 15 | vec4 new_color = texture(palette, vec2(color.r, y)); 16 | new_color.a *= step(STEP_UNIT, color.a); 17 | 18 | COLOR = new_color; 19 | } -------------------------------------------------------------------------------- /godot/Shaders/SpecularControl.gdshader: -------------------------------------------------------------------------------- 1 | shader_type spatial; 2 | render_mode specular_schlick_ggx, ambient_light_disabled; 3 | 4 | uniform float normal_offset_x = 0.0; 5 | uniform float normal_offset_y = 0.0; 6 | 7 | void vertex() { 8 | NORMAL = normalize(NORMAL + vec3(0.0, normal_offset_y, normal_offset_x)); 9 | } 10 | 11 | void fragment() { 12 | ALBEDO = vec3(0.0); 13 | ROUGHNESS = 0.4; 14 | SPECULAR = 0.5; 15 | } -------------------------------------------------------------------------------- /godot/Shaders/compose.gdshader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | uniform sampler2D prepass_texture; 4 | uniform sampler2D blur_texture; 5 | uniform float glow_intensity; 6 | 7 | void fragment() { 8 | vec4 color = texture(TEXTURE, UV); 9 | vec4 prepass = texture(prepass_texture, UV); 10 | vec4 blurred = texture(blur_texture, UV); 11 | vec3 glow = max(vec3(0.0), blurred.rgb - prepass.rgb); 12 | 13 | vec3 out_color = color.rgb + glow.rgb * glow_intensity; 14 | 15 | COLOR = vec4(out_color, clamp(out_color.r + out_color.g + out_color.b, 0, 1)); 16 | } -------------------------------------------------------------------------------- /godot/Shaders/dissolve.gdshader: -------------------------------------------------------------------------------- 1 | shader_type spatial; 2 | render_mode depth_prepass_alpha, cull_disabled; 3 | 4 | uniform vec4 albedo : source_color; 5 | uniform sampler2D texture_albedo : source_color; 6 | 7 | uniform vec4 emission_color : source_color = vec4(1); 8 | uniform float emission_amount; 9 | 10 | uniform sampler2D dissolve_texture; 11 | uniform float burn_size : hint_range(0, 2); 12 | uniform float dissolve_amount : hint_range(0, 1); 13 | 14 | void fragment() { 15 | vec4 albedo_tex = texture(texture_albedo, UV); 16 | ALBEDO = albedo.rgb * albedo_tex.rgb; 17 | 18 | float sample = texture(dissolve_texture, UV).r; 19 | float emission_value = 1.0 - smoothstep(dissolve_amount, dissolve_amount + burn_size, sample); 20 | EMISSION = vec3(emission_value * emission_amount * emission_color.rgb); 21 | ALPHA = smoothstep(dissolve_amount - burn_size, dissolve_amount, sample); 22 | } 23 | -------------------------------------------------------------------------------- /godot/Shaders/dissolve2D.gdshader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | uniform sampler2D dissolve_texture; 4 | uniform vec4 burn_color : source_color = vec4(1); 5 | uniform float burn_size : hint_range(0, 2); 6 | uniform float dissolve_amount : hint_range(0, 1); 7 | uniform float emission_amount; 8 | 9 | void fragment() { 10 | vec4 out_color = texture(TEXTURE, UV); 11 | 12 | float sample = texture(dissolve_texture, UV).r; 13 | float emission_value = 1.0 - smoothstep(dissolve_amount, dissolve_amount + burn_size, sample); 14 | vec3 emission = burn_color.rgb * emission_value * emission_amount; 15 | 16 | COLOR = vec4( 17 | max(out_color.rgb, emission), 18 | smoothstep(dissolve_amount - burn_size, dissolve_amount, sample) * out_color.a); 19 | } -------------------------------------------------------------------------------- /godot/Shaders/dissolve2D_mask.gdshader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | uniform sampler2D dissolve_texture; 4 | uniform float burn_size : hint_range(0, 2); 5 | uniform float dissolve_amount : hint_range(0, 1); 6 | 7 | void fragment() { 8 | vec4 out_color = texture(TEXTURE, UV); 9 | float sample = texture(dissolve_texture, UV).r; 10 | float emission_value = 1.0 - smoothstep(dissolve_amount, dissolve_amount + burn_size, sample); 11 | 12 | COLOR = vec4( 13 | max(vec3(0.0), vec3(emission_value)), 14 | smoothstep(dissolve_amount - burn_size, dissolve_amount, sample) * out_color.a); 15 | } -------------------------------------------------------------------------------- /godot/Shaders/gaussian_blur.gdshader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | uniform vec2 blur_scale = vec2(1, 0); 4 | 5 | const float SAMPLES = 71.0; 6 | 7 | float gaussian(float x) { 8 | float x_squared = x * x; 9 | float width = 1.0 / sqrt(TAU * SAMPLES); 10 | 11 | return width * exp((x_squared / (2.0 * SAMPLES)) * -1.0); 12 | } 13 | 14 | void fragment() { 15 | vec2 scale = TEXTURE_PIXEL_SIZE * blur_scale; 16 | 17 | float total_weight = 0.0; 18 | vec4 color = vec4(0.0); 19 | 20 | for (int i = -int(SAMPLES) / 2; i < int(SAMPLES) / 2; ++i) { 21 | float weight = gaussian(float(i)); 22 | color += texture(TEXTURE, UV + scale * vec2(float(i))) * weight; 23 | total_weight += weight; 24 | } 25 | 26 | COLOR = color / total_weight; 27 | } -------------------------------------------------------------------------------- /godot/Shaders/glow_prepass.gdshader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | uniform vec4 glow_color : source_color = vec4(1.0); 4 | 5 | void fragment() { 6 | vec4 color = texture(TEXTURE, UV); 7 | COLOR = vec4(glow_color.rgb, color.a); 8 | } -------------------------------------------------------------------------------- /godot/Shaders/invert.gdshader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | void fragment() { 4 | COLOR = vec4(vec3(1.0) - texture(TEXTURE, UV).rgb, 1.0); 5 | } -------------------------------------------------------------------------------- /godot/Shaders/matcap.gdshader: -------------------------------------------------------------------------------- 1 | shader_type spatial; 2 | render_mode unshaded, world_vertex_coords; 3 | 4 | uniform sampler2D matcap_texture : hint_default_black; 5 | uniform bool use_world_normals = false; 6 | 7 | varying vec3 world_normal; 8 | 9 | void vertex() { 10 | world_normal = NORMAL; 11 | } 12 | 13 | void fragment() { 14 | vec2 matcap_uv = ((use_world_normals ? world_normal.xy : NORMAL.xy) 15 | * vec2(0.5, -0.5) + vec2(0.5)); 16 | vec3 matcap_value = texture(matcap_texture, matcap_uv).rgb; 17 | 18 | ALBEDO = matcap_value; 19 | } -------------------------------------------------------------------------------- /godot/Shaders/outline2D_inner.gdshader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | uniform vec4 line_color : source_color = vec4(1.0); 4 | uniform float line_thickness : hint_range(0, 10) = 1.0; 5 | 6 | const vec2 OFFSETS[8] = { 7 | vec2(-1, -1), vec2(-1, 0), vec2(-1, 1), vec2(0, -1), vec2(0, 1), 8 | vec2(1, -1), vec2(1, 0), vec2(1, 1) 9 | }; 10 | 11 | void fragment() { 12 | vec2 size = TEXTURE_PIXEL_SIZE * line_thickness; 13 | float outline = 1.0; 14 | 15 | for (int i = 0; i < OFFSETS.length(); i++) { 16 | outline *= texture(TEXTURE, UV + size * OFFSETS[i]).a; 17 | } 18 | outline = 1.0 - outline; 19 | 20 | vec4 color = texture(TEXTURE, UV); 21 | vec4 outlined_result = mix(color, line_color, outline * color.a); 22 | COLOR = mix(color, outlined_result, outlined_result.a); 23 | } 24 | -------------------------------------------------------------------------------- /godot/Shaders/outline2D_inner_outer.gdshader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | uniform vec4 line_color : source_color = vec4(1); 4 | uniform float line_thickness : hint_range(0, 10) = 1.0; 5 | 6 | const vec2 OFFSETS[8] = { 7 | vec2(-1, -1), vec2(-1, 0), vec2(-1, 1), vec2(0, -1), vec2(0, 1), 8 | vec2(1, -1), vec2(1, 0), vec2(1, 1) 9 | }; 10 | 11 | void fragment() { 12 | vec2 size = TEXTURE_PIXEL_SIZE * line_thickness / 2.0; 13 | vec4 color = texture(TEXTURE, UV); 14 | 15 | float inline = 1.0; 16 | float outline = 0.0; 17 | for (int i = 0; i < OFFSETS.length(); i++) { 18 | float sample = texture(TEXTURE, UV + size * OFFSETS[i]).a; 19 | outline += sample; 20 | inline *= sample; 21 | } 22 | outline = min(1.0, outline) - color.a; 23 | inline = (1.0 - inline) * color.a; 24 | 25 | vec4 outlined_result = mix(color, line_color, outline + inline); 26 | COLOR = mix(color, outlined_result, outlined_result.a); 27 | } 28 | -------------------------------------------------------------------------------- /godot/Shaders/outline2D_outer.gdshader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | uniform vec4 line_color : source_color = vec4(1.0); 4 | uniform float line_thickness : hint_range(0, 10) = 1.0; 5 | 6 | const vec2 OFFSETS[8] = { 7 | vec2(-1, -1), vec2(-1, 0), vec2(-1, 1), vec2(0, -1), vec2(0, 1), 8 | vec2(1, -1), vec2(1, 0), vec2(1, 1) 9 | }; 10 | 11 | void fragment() { 12 | vec2 size = TEXTURE_PIXEL_SIZE * line_thickness; 13 | float outline = 0.0; 14 | 15 | for (int i = 0; i < OFFSETS.length(); i++) { 16 | outline += texture(TEXTURE, UV + size * OFFSETS[i]).a; 17 | } 18 | outline = min(outline, 1.0); 19 | 20 | vec4 color = texture(TEXTURE, UV); 21 | COLOR = mix(color, line_color, outline - color.a); 22 | } 23 | -------------------------------------------------------------------------------- /godot/Shaders/outline3D.gdshader: -------------------------------------------------------------------------------- 1 | shader_type spatial; 2 | render_mode unshaded, cull_front, depth_draw_always; 3 | 4 | uniform float thickness = 0.1; 5 | uniform vec4 outline_color : source_color = vec4(1.0); 6 | 7 | void vertex() { 8 | VERTEX += NORMAL * thickness; 9 | } 10 | 11 | void fragment() { 12 | ALBEDO = outline_color.rgb; 13 | if (outline_color.a < 1.0) { 14 | ALPHA = outline_color.a; 15 | } 16 | } -------------------------------------------------------------------------------- /godot/Shaders/outline3D_smooth_normals_color.gdshader: -------------------------------------------------------------------------------- 1 | shader_type spatial; 2 | render_mode unshaded, cull_front, depth_draw_always; 3 | 4 | uniform float thickness = 0.1; 5 | uniform vec4 outline_color : source_color = vec4(1.0); 6 | 7 | void vertex() { 8 | vec3 normal = (COLOR.xyz - vec3(0.5)) * 2.0; 9 | VERTEX += (normal * thickness); 10 | } 11 | 12 | void fragment() { 13 | ALBEDO = outline_color.rgb; 14 | ALPHA = outline_color.a; 15 | } -------------------------------------------------------------------------------- /godot/Shaders/pixel_perfect_outline3D.gdshader: -------------------------------------------------------------------------------- 1 | shader_type spatial; 2 | render_mode cull_front, unshaded; 3 | 4 | uniform vec4 outline_color : source_color; 5 | uniform float outline_width = 1.0; 6 | 7 | void vertex() { 8 | vec4 clip_position = PROJECTION_MATRIX * (MODELVIEW_MATRIX * vec4(VERTEX, 1.0)); 9 | vec3 clip_normal = mat3(PROJECTION_MATRIX) * (mat3(MODELVIEW_MATRIX) * NORMAL); 10 | 11 | vec2 offset = normalize(clip_normal.xy) / VIEWPORT_SIZE * clip_position.w * outline_width * 2.0; 12 | 13 | clip_position.xy += offset; 14 | 15 | POSITION = clip_position; 16 | } 17 | 18 | void fragment() { 19 | ALBEDO = outline_color.rgb; 20 | if (outline_color.a < 1.0) { 21 | ALPHA = outline_color.a; 22 | } 23 | } -------------------------------------------------------------------------------- /godot/Shaders/random_noise.gdshader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | uniform vec2 scale = vec2(10.0); 4 | 5 | float rand(vec2 coord) { 6 | return fract(sin(dot(coord, vec2(12.9898, 78.233))) * 43758.5453); 7 | } 8 | 9 | void fragment() { 10 | vec2 coord = UV * scale; 11 | 12 | float value = rand(coord); 13 | 14 | COLOR = vec4(vec3(value), 1.0); 15 | } -------------------------------------------------------------------------------- /godot/Shaders/rim_control.gdshader: -------------------------------------------------------------------------------- 1 | shader_type spatial; 2 | render_mode specular_disabled, ambient_light_disabled; 3 | 4 | uniform float rim_size : hint_range(0,1); 5 | uniform float normal_offset_x = 0.0; 6 | uniform float normal_offset_y = 0.0; 7 | 8 | void vertex() { 9 | NORMAL += vec3(normal_offset_x, normal_offset_y, 0); 10 | } 11 | 12 | void fragment() { 13 | ALBEDO = vec3(0.0); 14 | ROUGHNESS = 0.8; 15 | RIM = 1.0; 16 | RIM_TINT = 1.0 - rim_size; 17 | } 18 | -------------------------------------------------------------------------------- /godot/Shaders/shockwave.gdshader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | uniform sampler2D mask_texture; 4 | uniform float displacement_amount; 5 | 6 | void fragment() { 7 | float mask = texture(mask_texture, UV).r; 8 | 9 | // Displace by the torus mask 10 | vec2 displacement_uv = UV + mask * displacement_amount; 11 | 12 | COLOR = texture(TEXTURE, displacement_uv); 13 | } -------------------------------------------------------------------------------- /godot/Shaders/stencil_mask.gdshader: -------------------------------------------------------------------------------- 1 | shader_type spatial; 2 | render_mode depth_prepass_alpha; 3 | 4 | uniform vec4 albedo : source_color; 5 | uniform sampler2D stencil; 6 | uniform vec4 stencil_color : source_color; 7 | 8 | void fragment() { 9 | vec4 stencil_test = texture(stencil, SCREEN_UV); 10 | vec4 color_test = stencil_color; 11 | 12 | float stencil_id = stencil_test.r * 10.0 + stencil_test.g + 100.0 * stencil_test.b + 1000.0; 13 | float mask_id = stencil_color.r * 10.0 + stencil_color.g + 100.0 * stencil_color.b + 1000.0; 14 | 15 | float mask_result = abs(stencil_id - mask_id); 16 | 17 | ALBEDO = albedo.rgb; 18 | ALPHA = step(mask_result, 0.0) * albedo.a; 19 | } -------------------------------------------------------------------------------- /godot/Shaders/voronoi_noise.gdshader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | uniform vec2 scale = vec2(10.0); 4 | uniform bool seamless = false; 5 | 6 | vec2 rand2(vec2 coord) { 7 | return fract(sin(vec2(dot(coord, vec2(127.1, 311.7)), dot(coord, vec2(269.5, 183.3)))) 8 | * 43758.5453); 9 | } 10 | 11 | float voronoi_noise(vec2 coord) { 12 | vec2 i = floor(coord); 13 | vec2 f = fract(coord); 14 | 15 | float min_dist = 999999.0; 16 | for (float x = -1.0; x <= 1.0; ++x) { 17 | for (float y = -1.0; y <= 1.0; ++y) { 18 | vec2 node = rand2(i + vec2(x, y)) + vec2(x, y); 19 | 20 | float dist = sqrt(pow((f - node).x, 2) + pow((f - node).y, 2)); 21 | min_dist = min(min_dist, dist); 22 | } 23 | } 24 | 25 | return min_dist; 26 | } 27 | 28 | void fragment() { 29 | vec2 coord = UV * scale; 30 | 31 | float value = voronoi_noise(coord); 32 | 33 | COLOR = vec4(vec3(value), 1.0); 34 | } -------------------------------------------------------------------------------- /godot/Shaders/wind_texture.gdshader: -------------------------------------------------------------------------------- 1 | shader_type spatial; 2 | 3 | uniform sampler2D wind_mask; 4 | 5 | void vertex() { 6 | float sample = textureLod(wind_mask, UV, 0.0).r; 7 | } -------------------------------------------------------------------------------- /godot/Shaders/wind_uv.gdshader: -------------------------------------------------------------------------------- 1 | shader_type spatial; 2 | render_mode world_vertex_coords, unshaded, cull_disabled; 3 | 4 | uniform float wind_speed = 0.3; 5 | uniform float wind_strength = 0.3; 6 | 7 | uniform sampler2D gradient : hint_default_black; 8 | 9 | 10 | void vertex() { 11 | float wind_offset = sin(wind_speed * TIME) * wind_strength; 12 | VERTEX = VERTEX + vec3(wind_offset, 0.0, 0.0) * UV.y; 13 | } 14 | 15 | void fragment() { 16 | vec4 color = texture(gradient, vec2(UV.y, 0)); 17 | 18 | ALBEDO = color.rgb; 19 | } -------------------------------------------------------------------------------- /godot/Shaders/xray_2d_mask.gdshader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | uniform sampler2D alternate_viewport; 4 | uniform sampler2D mask_viewport; 5 | uniform float dimness : hint_range(0, 1) = 0.2; 6 | 7 | void fragment() { 8 | vec4 main_color = texture(TEXTURE, UV); 9 | float mask_color = texture(mask_viewport, UV).r; 10 | vec4 alternate_color = texture(alternate_viewport, UV); 11 | 12 | float brightness = 1.0 - dimness; 13 | // Dim the main viewport wherever the mask is black 14 | main_color.rgb *= max(brightness, mask_color); 15 | // Use mix blending to reveal the X-ray view where the mask, and X-ray view overlap 16 | COLOR = mix(main_color, alternate_color, alternate_color.a * mask_color); 17 | } -------------------------------------------------------------------------------- /godot/Shaders/xray_3d_mask.gdshader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | render_mode blend_add; 3 | 4 | uniform sampler2D stencil_view : hint_default_black; 5 | 6 | void fragment() { 7 | float mask = texture(stencil_view, SCREEN_UV).r; 8 | 9 | COLOR.rgb = texture(TEXTURE, UV).rgb; 10 | COLOR.a = 1.0 - mask; 11 | } -------------------------------------------------------------------------------- /godot/Shaders/xray_glow.gdshader: -------------------------------------------------------------------------------- 1 | shader_type spatial; 2 | render_mode blend_add, depth_draw_never, depth_test_disable; 3 | 4 | uniform vec4 outline_color : source_color; 5 | uniform float color_intensity = 1.0; 6 | uniform float outline_sharpness = 2.0; 7 | 8 | uniform vec4 stencil_color : source_color; 9 | uniform sampler2D stencil : hint_default_black; 10 | 11 | void fragment() { 12 | vec4 stencil_test = textureLod(stencil, SCREEN_UV, 0.0); 13 | vec4 color_test = stencil_color; 14 | 15 | float stencil_id = stencil_test.r * 10.0 + stencil_test.g + 100.0 * stencil_test.b + 1000.0; 16 | float mask_id = stencil_color.r * 10.0 + stencil_color.g + 100.0 * stencil_color.b + 1000.0; 17 | 18 | float mask_result = abs(stencil_id - mask_id); 19 | 20 | 21 | float fresnel_dot = 1.0 - dot(NORMAL, VIEW) * outline_sharpness; 22 | ALBEDO = vec3(0.0); 23 | EMISSION = smoothstep(0.0, 1.0, fresnel_dot) * outline_color.rgb * color_intensity; 24 | ALPHA = max(1.0 - step(mask_result, 0.0), 0.0); 25 | } -------------------------------------------------------------------------------- /godot/Shared/Background2D/sparkle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/Background2D/sparkle.png -------------------------------------------------------------------------------- /godot/Shared/Background2D/sparkle.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://disb32c7d7o4b" 6 | path="res://.godot/imported/sparkle.png-e41acd1cdb95a5ef2e5ae2e2c608ea77.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Shared/Background2D/sparkle.png" 14 | dest_files=["res://.godot/imported/sparkle.png-e41acd1cdb95a5ef2e5ae2e2c608ea77.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Shared/Camera/MouseCamera2D.gd: -------------------------------------------------------------------------------- 1 | # Camera offset by the mouse cursor 2 | extends Camera2D 3 | 4 | var factor := 0.4 5 | 6 | 7 | func _process(_delta: float) -> void: 8 | offset = get_local_mouse_position() * factor 9 | -------------------------------------------------------------------------------- /godot/Shared/Camera/MouseCamera2D.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://Shared/Camera3D/MouseCamera2D.gd" type="Script" id=1] 4 | 5 | 6 | 7 | 8 | [node name="MouseCamera2D" type="Camera2D"] 9 | current = true 10 | script = ExtResource( 1 ) 11 | -------------------------------------------------------------------------------- /godot/Shared/Demo3DEnvironmentDark.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://n87x06o26w4p"] 2 | 3 | [ext_resource type="Environment" path="res://Shared/environments/level_environment_dark.tres" id="1"] 4 | [ext_resource type="PackedScene" uid="uid://dquhei2qv5csj" path="res://Shared/Demo3DEnvironment.tscn" id="2"] 5 | 6 | [sub_resource type="StandardMaterial3D" id="1"] 7 | albedo_color = Color(0.168627, 0.156863, 0.184314, 1) 8 | 9 | [node name="Demo3DEnvironmentDark" instance=ExtResource("2")] 10 | 11 | [node name="BaseWorldEnvironment" parent="." index="0"] 12 | environment = ExtResource("1") 13 | 14 | [node name="Sun" parent="." index="1"] 15 | light_color = Color(0.960784, 0.941176, 0.901961, 1) 16 | 17 | [node name="Ground" parent="." index="2"] 18 | material_override = SubResource("1") 19 | -------------------------------------------------------------------------------- /godot/Shared/DemoInterface.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Control 3 | 4 | @export_multiline var text_bbcode := "": set = set_text_bbcode 5 | 6 | @onready var _rich_text_label: RichTextLabel = $MarginContainer/RichTextLabel 7 | 8 | 9 | func set_text_bbcode(value: String) -> void: 10 | text_bbcode = value 11 | if not _rich_text_label: 12 | await self.ready 13 | _rich_text_label.text = value 14 | -------------------------------------------------------------------------------- /godot/Shared/environments/2d_level_environment.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Environment" format=2] 2 | 3 | [resource] 4 | background_mode = 4 5 | glow_enabled = true 6 | glow_blend_mode = 0 7 | glow_bicubic_upscale = true 8 | -------------------------------------------------------------------------------- /godot/Shared/environments/level_environment.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Environment" load_steps=3 format=3 uid="uid://fn1pja2kkulh"] 2 | 3 | [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_ijj6m"] 4 | 5 | [sub_resource type="Sky" id="1"] 6 | sky_material = SubResource("ProceduralSkyMaterial_ijj6m") 7 | radiance_size = 1 8 | 9 | [resource] 10 | background_mode = 2 11 | sky = SubResource("1") 12 | ambient_light_color = Color(1, 1, 1, 1) 13 | tonemap_mode = 3 14 | tonemap_white = 2.0 15 | ssao_enabled = true 16 | ssao_light_affect = 0.31 17 | glow_enabled = true 18 | glow_levels/2 = 1.0 19 | glow_levels/4 = 1.0 20 | glow_strength = 0.78 21 | glow_blend_mode = 0 22 | -------------------------------------------------------------------------------- /godot/Shared/environments/level_environment_dark.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Environment" load_steps=2 format=3 uid="uid://ctef6o8gbkc7x"] 2 | 3 | [sub_resource type="Sky" id="1"] 4 | radiance_size = 1 5 | 6 | [resource] 7 | background_mode = 2 8 | sky = SubResource("1") 9 | ambient_light_color = Color(1, 1, 1, 1) 10 | tonemap_mode = 3 11 | tonemap_white = 2.0 12 | ssao_enabled = true 13 | ssao_light_affect = 0.31 14 | glow_enabled = true 15 | glow_levels/2 = 1.0 16 | glow_levels/4 = 1.0 17 | glow_strength = 0.78 18 | glow_blend_mode = 0 19 | -------------------------------------------------------------------------------- /godot/Shared/materials/basic_grey.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StandardMaterial3D" format=2] 2 | 3 | [resource] 4 | albedo_color = Color( 0.658824, 0.65098, 0.654902, 1 ) 5 | metallic = 0.05 6 | metallic_specular = 1.0 7 | -------------------------------------------------------------------------------- /godot/Shared/models/3D-environment/AtlasMaterial.material: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/models/3D-environment/AtlasMaterial.material -------------------------------------------------------------------------------- /godot/Shared/models/3D-environment/ShockwaveScene.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/models/3D-environment/ShockwaveScene.glb -------------------------------------------------------------------------------- /godot/Shared/models/3D-environment/ShockwaveScene_palette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/models/3D-environment/ShockwaveScene_palette.png -------------------------------------------------------------------------------- /godot/Shared/models/rat_model/rat.dae.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="scene" 4 | importer_version=1 5 | type="PackedScene" 6 | uid="uid://dpp7narpdag6n" 7 | path="res://.godot/imported/rat.dae-353f61c45cb6e28e42b5b058900a43c6.scn" 8 | 9 | [deps] 10 | 11 | source_file="res://Shared/models/rat_model/rat.dae" 12 | dest_files=["res://.godot/imported/rat.dae-353f61c45cb6e28e42b5b058900a43c6.scn"] 13 | 14 | [params] 15 | 16 | nodes/root_type="Node3D" 17 | nodes/root_name="Scene Root" 18 | nodes/apply_root_scale=true 19 | nodes/root_scale=1.0 20 | nodes/import_as_skeleton_bones=false 21 | meshes/ensure_tangents=true 22 | meshes/generate_lods=true 23 | meshes/create_shadow_meshes=true 24 | meshes/light_baking=0 25 | meshes/lightmap_texel_size=0.1 26 | meshes/force_disable_compression=false 27 | skins/use_named_skins=true 28 | animation/import=true 29 | animation/fps=15 30 | animation/trimming=false 31 | animation/remove_immutable_tracks=true 32 | animation/import_rest_as_RESET=false 33 | import_script/path="" 34 | _subresources={} 35 | -------------------------------------------------------------------------------- /godot/Shared/models/rat_model/rat.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://bvkjw7s6ugwb"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://dpp7narpdag6n" path="res://Shared/models/rat_model/rat.dae" id="3"] 4 | 5 | [node name="rat" instance=ExtResource("3")] 6 | -------------------------------------------------------------------------------- /godot/Shared/models/rat_model/rat_albedo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/models/rat_model/rat_albedo.png -------------------------------------------------------------------------------- /godot/Shared/models/rat_model/rat_albedo.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://e20amkpbkih2" 6 | path.s3tc="res://.godot/imported/rat_albedo.png-bab8ab64835b51d710ac5d571b7ce660.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Shared/models/rat_model/rat_albedo.png" 15 | dest_files=["res://.godot/imported/rat_albedo.png-bab8ab64835b51d710ac5d571b7ce660.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | -------------------------------------------------------------------------------- /godot/Shared/models/rat_model/rat_body_ao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/models/rat_model/rat_body_ao.png -------------------------------------------------------------------------------- /godot/Shared/models/rat_model/rat_body_ao.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://npuonjm21ppl" 6 | path.s3tc="res://.godot/imported/rat_body_ao.png-f4727edcb0d3c78887b143f6cad2a270.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Shared/models/rat_model/rat_body_ao.png" 15 | dest_files=["res://.godot/imported/rat_body_ao.png-f4727edcb0d3c78887b143f6cad2a270.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | -------------------------------------------------------------------------------- /godot/Shared/models/rat_model/rat_body_claws_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/models/rat_model/rat_body_claws_mask.png -------------------------------------------------------------------------------- /godot/Shared/models/rat_model/rat_body_flesh_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/models/rat_model/rat_body_flesh_mask.png -------------------------------------------------------------------------------- /godot/Shared/models/rat_model/rat_head_albedo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/models/rat_model/rat_head_albedo.png -------------------------------------------------------------------------------- /godot/Shared/models/rat_model/rat_head_ao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/models/rat_model/rat_head_ao.png -------------------------------------------------------------------------------- /godot/Shared/models/rat_model/rat_head_ao.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bi721oueilsle" 6 | path.s3tc="res://.godot/imported/rat_head_ao.png-4368048bc153eb33b85ad436fec39f28.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://Shared/models/rat_model/rat_head_ao.png" 15 | dest_files=["res://.godot/imported/rat_head_ao.png-4368048bc153eb33b85ad436fec39f28.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | -------------------------------------------------------------------------------- /godot/Shared/models/rat_model/rat_head_eyes_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/models/rat_model/rat_head_eyes_mask.png -------------------------------------------------------------------------------- /godot/Shared/models/rat_model/rat_head_flesh_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/models/rat_model/rat_head_flesh_mask.png -------------------------------------------------------------------------------- /godot/Shared/models/rat_model/rat_head_teeth_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/models/rat_model/rat_head_teeth_mask.png -------------------------------------------------------------------------------- /godot/Shared/models/rat_model/rat_shadow_paint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/models/rat_model/rat_shadow_paint.png -------------------------------------------------------------------------------- /godot/Shared/sprites/cloud1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/sprites/cloud1.png -------------------------------------------------------------------------------- /godot/Shared/sprites/cloud1.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://byxidix2c22v3" 6 | path="res://.godot/imported/cloud1.png-02d6dd9062106d06dd185e31e5eca97a.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Shared/sprites/cloud1.png" 14 | dest_files=["res://.godot/imported/cloud1.png-02d6dd9062106d06dd185e31e5eca97a.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Shared/sprites/robi_shaded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/sprites/robi_shaded.png -------------------------------------------------------------------------------- /godot/Shared/sprites/robi_shaded.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://7giw201cbixu" 6 | path="res://.godot/imported/robi_shaded.png-4d6caa48c396fb29e0bdcd5cc8a83474.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Shared/sprites/robi_shaded.png" 14 | dest_files=["res://.godot/imported/robi_shaded.png-4d6caa48c396fb29e0bdcd5cc8a83474.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /godot/Shared/theme/empty.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxEmpty" format=2] 2 | 3 | [resource] 4 | -------------------------------------------------------------------------------- /godot/Shared/theme/fonts/default_font_bold.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="FontFile" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://Shared/theme/fonts/montserrat/Montserrat-Bold.ttf" type="FontFile" id=1] 4 | 5 | 6 | 7 | [resource] 8 | size = 24 9 | use_filter = true 10 | font_data = ExtResource( 1 ) 11 | -------------------------------------------------------------------------------- /godot/Shared/theme/fonts/default_font_code.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="FontFile" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://Shared/theme/fonts/source_code_pro/SourceCodePro-Medium.otf" type="FontFile" id=1] 4 | 5 | 6 | 7 | [resource] 8 | size = 24 9 | use_filter = true 10 | font_data = ExtResource( 1 ) 11 | -------------------------------------------------------------------------------- /godot/Shared/theme/fonts/default_font_italics.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="FontFile" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://assets/theme/fonts/montserrat/Montserrat-Bold.ttf" type="FontFile" id=1] 4 | 5 | [resource] 6 | size = 24 7 | use_filter = true 8 | font_data = ExtResource( 1 ) 9 | -------------------------------------------------------------------------------- /godot/Shared/theme/fonts/font_default.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="FontFile" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://Shared/theme/fonts/montserrat/Montserrat-Medium.ttf" type="FontFile" id=1] 4 | 5 | 6 | 7 | [resource] 8 | size = 18 9 | use_filter = true 10 | font_data = ExtResource( 1 ) 11 | -------------------------------------------------------------------------------- /godot/Shared/theme/fonts/font_info.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="FontFile" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://assets/theme/fonts/montserrat/Montserrat-MediumItalic.ttf" type="FontFile" id=1] 4 | 5 | [resource] 6 | size = 20 7 | use_filter = true 8 | font_data = ExtResource( 1 ) 9 | -------------------------------------------------------------------------------- /godot/Shared/theme/fonts/font_title.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="FontFile" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://Shared/theme/fonts/montserrat/Montserrat-Black.ttf" type="FontFile" id=1] 4 | 5 | 6 | 7 | [resource] 8 | size = 32 9 | use_filter = true 10 | font_data = ExtResource( 1 ) 11 | -------------------------------------------------------------------------------- /godot/Shared/theme/fonts/montserrat/Montserrat-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/theme/fonts/montserrat/Montserrat-Black.ttf -------------------------------------------------------------------------------- /godot/Shared/theme/fonts/montserrat/Montserrat-Black.ttf.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="font_data_dynamic" 4 | type="FontFile" 5 | uid="uid://68gpe2n77gla" 6 | path="res://.godot/imported/Montserrat-Black.ttf-f2401f06a9961c31abe3cbd1288ac4a4.fontdata" 7 | 8 | [deps] 9 | 10 | source_file="res://Shared/theme/fonts/montserrat/Montserrat-Black.ttf" 11 | dest_files=["res://.godot/imported/Montserrat-Black.ttf-f2401f06a9961c31abe3cbd1288ac4a4.fontdata"] 12 | 13 | [params] 14 | 15 | Rendering=null 16 | antialiasing=1 17 | generate_mipmaps=false 18 | disable_embedded_bitmaps=true 19 | multichannel_signed_distance_field=false 20 | msdf_pixel_range=8 21 | msdf_size=48 22 | allow_system_fallback=true 23 | force_autohinter=false 24 | hinting=1 25 | subpixel_positioning=1 26 | oversampling=0.0 27 | Fallbacks=null 28 | fallbacks=[] 29 | Compress=null 30 | compress=true 31 | preload=[] 32 | language_support={} 33 | script_support={} 34 | opentype_features={} 35 | -------------------------------------------------------------------------------- /godot/Shared/theme/fonts/montserrat/Montserrat-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/theme/fonts/montserrat/Montserrat-Bold.ttf -------------------------------------------------------------------------------- /godot/Shared/theme/fonts/montserrat/Montserrat-Bold.ttf.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="font_data_dynamic" 4 | type="FontFile" 5 | uid="uid://dju6h8fxban4" 6 | path="res://.godot/imported/Montserrat-Bold.ttf-83efeefd47b2c8f889633be042646a31.fontdata" 7 | 8 | [deps] 9 | 10 | source_file="res://Shared/theme/fonts/montserrat/Montserrat-Bold.ttf" 11 | dest_files=["res://.godot/imported/Montserrat-Bold.ttf-83efeefd47b2c8f889633be042646a31.fontdata"] 12 | 13 | [params] 14 | 15 | Rendering=null 16 | antialiasing=1 17 | generate_mipmaps=false 18 | disable_embedded_bitmaps=true 19 | multichannel_signed_distance_field=false 20 | msdf_pixel_range=8 21 | msdf_size=48 22 | allow_system_fallback=true 23 | force_autohinter=false 24 | hinting=1 25 | subpixel_positioning=1 26 | oversampling=0.0 27 | Fallbacks=null 28 | fallbacks=[] 29 | Compress=null 30 | compress=true 31 | preload=[] 32 | language_support={} 33 | script_support={} 34 | opentype_features={} 35 | -------------------------------------------------------------------------------- /godot/Shared/theme/fonts/montserrat/Montserrat-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/theme/fonts/montserrat/Montserrat-Medium.ttf -------------------------------------------------------------------------------- /godot/Shared/theme/fonts/montserrat/Montserrat-Medium.ttf.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="font_data_dynamic" 4 | type="FontFile" 5 | uid="uid://bcm2g6jnubxyp" 6 | path="res://.godot/imported/Montserrat-Medium.ttf-6b9b71ae1c9079819f647097aa3b536a.fontdata" 7 | 8 | [deps] 9 | 10 | source_file="res://Shared/theme/fonts/montserrat/Montserrat-Medium.ttf" 11 | dest_files=["res://.godot/imported/Montserrat-Medium.ttf-6b9b71ae1c9079819f647097aa3b536a.fontdata"] 12 | 13 | [params] 14 | 15 | Rendering=null 16 | antialiasing=1 17 | generate_mipmaps=false 18 | disable_embedded_bitmaps=true 19 | multichannel_signed_distance_field=false 20 | msdf_pixel_range=8 21 | msdf_size=48 22 | allow_system_fallback=true 23 | force_autohinter=false 24 | hinting=1 25 | subpixel_positioning=1 26 | oversampling=0.0 27 | Fallbacks=null 28 | fallbacks=[] 29 | Compress=null 30 | compress=true 31 | preload=[] 32 | language_support={} 33 | script_support={} 34 | opentype_features={} 35 | -------------------------------------------------------------------------------- /godot/Shared/theme/fonts/montserrat/Montserrat-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/theme/fonts/montserrat/Montserrat-MediumItalic.ttf -------------------------------------------------------------------------------- /godot/Shared/theme/fonts/montserrat/Montserrat-MediumItalic.ttf.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="font_data_dynamic" 4 | type="FontFile" 5 | uid="uid://5sf5k1dx330o" 6 | path="res://.godot/imported/Montserrat-MediumItalic.ttf-52d07f86726856e1b74b10f09e1928c6.fontdata" 7 | 8 | [deps] 9 | 10 | source_file="res://Shared/theme/fonts/montserrat/Montserrat-MediumItalic.ttf" 11 | dest_files=["res://.godot/imported/Montserrat-MediumItalic.ttf-52d07f86726856e1b74b10f09e1928c6.fontdata"] 12 | 13 | [params] 14 | 15 | Rendering=null 16 | antialiasing=1 17 | generate_mipmaps=false 18 | disable_embedded_bitmaps=true 19 | multichannel_signed_distance_field=false 20 | msdf_pixel_range=8 21 | msdf_size=48 22 | allow_system_fallback=true 23 | force_autohinter=false 24 | hinting=1 25 | subpixel_positioning=1 26 | oversampling=0.0 27 | Fallbacks=null 28 | fallbacks=[] 29 | Compress=null 30 | compress=true 31 | preload=[] 32 | language_support={} 33 | script_support={} 34 | opentype_features={} 35 | -------------------------------------------------------------------------------- /godot/Shared/theme/fonts/source_code_pro/SourceCodePro-Medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/theme/fonts/source_code_pro/SourceCodePro-Medium.otf -------------------------------------------------------------------------------- /godot/Shared/theme/fonts/source_code_pro/SourceCodePro-Medium.otf.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="font_data_dynamic" 4 | type="FontFile" 5 | uid="uid://cimug6nc7y0eb" 6 | path="res://.godot/imported/SourceCodePro-Medium.otf-ed4bc31740f13128dcf16220bbc58fe3.fontdata" 7 | 8 | [deps] 9 | 10 | source_file="res://Shared/theme/fonts/source_code_pro/SourceCodePro-Medium.otf" 11 | dest_files=["res://.godot/imported/SourceCodePro-Medium.otf-ed4bc31740f13128dcf16220bbc58fe3.fontdata"] 12 | 13 | [params] 14 | 15 | Rendering=null 16 | antialiasing=1 17 | generate_mipmaps=false 18 | disable_embedded_bitmaps=true 19 | multichannel_signed_distance_field=false 20 | msdf_pixel_range=8 21 | msdf_size=48 22 | allow_system_fallback=true 23 | force_autohinter=false 24 | hinting=1 25 | subpixel_positioning=1 26 | oversampling=0.0 27 | Fallbacks=null 28 | fallbacks=[] 29 | Compress=null 30 | compress=true 31 | preload=[] 32 | language_support={} 33 | script_support={} 34 | opentype_features={} 35 | -------------------------------------------------------------------------------- /godot/Shared/theme/gdquest.theme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/theme/gdquest.theme -------------------------------------------------------------------------------- /godot/Shared/theme/icons/chevron-right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /godot/Shared/theme/icons/chevron-up.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /godot/Shared/theme/slider/grabber_area.stylebox: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/theme/slider/grabber_area.stylebox -------------------------------------------------------------------------------- /godot/Shared/theme/slider/slider.stylebox: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/Shared/theme/slider/slider.stylebox -------------------------------------------------------------------------------- /godot/Shared/theme/stylebox/button_disabled.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | bg_color = Color( 0.0313726, 0.65098, 0.788235, 0.392157 ) 5 | draw_center = false 6 | border_color = Color( 0.28125, 0.28125, 0.28125, 1 ) 7 | corner_radius_top_left = 8 8 | corner_radius_top_right = 8 9 | corner_radius_bottom_right = 8 10 | corner_radius_bottom_left = 8 11 | expand_margin_left = 5.0 12 | expand_margin_right = 5.0 13 | expand_margin_top = 5.0 14 | expand_margin_bottom = 5.0 15 | -------------------------------------------------------------------------------- /godot/Shared/theme/stylebox/button_focused.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | bg_color = Color( 0, 0, 0, 1 ) 5 | draw_center = false 6 | border_width_left = 2 7 | border_width_top = 2 8 | border_width_right = 2 9 | border_width_bottom = 2 10 | border_color = Color( 0.407843, 0.866667, 1, 1 ) 11 | corner_radius_top_left = 8 12 | corner_radius_top_right = 8 13 | corner_radius_bottom_right = 8 14 | corner_radius_bottom_left = 8 15 | -------------------------------------------------------------------------------- /godot/Shared/theme/stylebox/button_focused_error.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | bg_color = Color( 0, 0, 0, 1 ) 5 | draw_center = false 6 | border_width_left = 2 7 | border_width_top = 2 8 | border_width_right = 2 9 | border_width_bottom = 2 10 | border_color = Color( 1, 0, 0.305882, 1 ) 11 | corner_radius_top_left = 8 12 | corner_radius_top_right = 8 13 | corner_radius_bottom_right = 8 14 | corner_radius_bottom_left = 8 15 | -------------------------------------------------------------------------------- /godot/Shared/theme/stylebox/button_focused_margin.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | bg_color = Color( 0, 0, 0, 1 ) 5 | draw_center = false 6 | border_width_left = 2 7 | border_width_top = 2 8 | border_width_right = 2 9 | border_width_bottom = 2 10 | border_color = Color( 0.407843, 0.866667, 1, 1 ) 11 | corner_radius_top_left = 8 12 | corner_radius_top_right = 8 13 | corner_radius_bottom_right = 8 14 | corner_radius_bottom_left = 8 15 | expand_margin_left = 4.0 16 | expand_margin_right = 4.0 17 | expand_margin_top = 4.0 18 | expand_margin_bottom = 4.0 19 | -------------------------------------------------------------------------------- /godot/Shared/theme/stylebox/button_hover.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | bg_color = Color( 0.0509804, 0.603922, 0.819608, 1 ) 5 | border_color = Color( 0.597656, 0.597656, 0.597656, 1 ) 6 | corner_radius_top_left = 8 7 | corner_radius_top_right = 8 8 | corner_radius_bottom_right = 8 9 | corner_radius_bottom_left = 8 10 | -------------------------------------------------------------------------------- /godot/Shared/theme/stylebox/button_normal.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | bg_color = Color( 0.0352941, 0.65098, 0.792157, 1 ) 5 | corner_radius_top_left = 8 6 | corner_radius_top_right = 8 7 | corner_radius_bottom_right = 8 8 | corner_radius_bottom_left = 8 9 | -------------------------------------------------------------------------------- /godot/Shared/theme/stylebox/button_pressed.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | bg_color = Color( 0.0980392, 0.45098, 0.862745, 1 ) 5 | border_color = Color( 0.269531, 0.269531, 0.269531, 1 ) 6 | corner_radius_top_left = 8 7 | corner_radius_top_right = 8 8 | corner_radius_bottom_right = 8 9 | corner_radius_bottom_left = 8 10 | -------------------------------------------------------------------------------- /godot/Shared/theme/stylebox/line.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxLine" format=2] 2 | 3 | [resource] 4 | color = Color( 1, 1, 1, 0.196078 ) 5 | thickness = 2 6 | -------------------------------------------------------------------------------- /godot/Shared/theme/stylebox/line_edit.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | content_margin_left = 12.0 5 | content_margin_right = 12.0 6 | content_margin_top = 8.0 7 | content_margin_bottom = 8.0 8 | bg_color = Color( 0.1539, 0.170145, 0.19, 0.588235 ) 9 | corner_radius_top_left = 8 10 | corner_radius_top_right = 8 11 | corner_radius_bottom_right = 8 12 | corner_radius_bottom_left = 8 13 | shadow_color = Color( 0, 0, 0, 0.0705882 ) 14 | -------------------------------------------------------------------------------- /godot/Shared/theme/stylebox/panel.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | bg_color = Color( 0.1539, 0.170145, 0.19, 0.588235 ) 5 | shadow_color = Color( 0, 0, 0, 0.0705882 ) 6 | -------------------------------------------------------------------------------- /godot/Shared/theme/stylebox/panel_popup.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | bg_color = Color( 0.152941, 0.168627, 0.188235, 1 ) 5 | corner_radius_top_left = 8 6 | corner_radius_top_right = 8 7 | corner_radius_bottom_right = 8 8 | corner_radius_bottom_left = 8 9 | shadow_color = Color( 0, 0, 0, 0.101961 ) 10 | shadow_size = 8 11 | shadow_offset = Vector2( 0, 4 ) 12 | -------------------------------------------------------------------------------- /godot/Utils/PostProcessStep.gd: -------------------------------------------------------------------------------- 1 | class_name PostProcessStep 2 | extends Resource 3 | 4 | @export var post_proces_shader: ShaderMaterial 5 | -------------------------------------------------------------------------------- /godot/addons/ShaderSecretsHelper/DemoScreen.gd: -------------------------------------------------------------------------------- 1 | extends CanvasLayer 2 | class_name DemoScreen 3 | 4 | @onready var _demo_interface: Control = $DemoInterface 5 | 6 | func _ready() -> void: 7 | var translation_key: String = name.to_lower() 8 | _demo_interface.set_text_bbcode(tr(translation_key)) 9 | if _demo_interface.text_bbcode == translation_key: 10 | print_debug( 11 | "Missing position key {} for demo {}".format( 12 | [translation_key, name], "{}" 13 | ) 14 | ) 15 | -------------------------------------------------------------------------------- /godot/default_env.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Environment" load_steps=2 format=3 uid="uid://1q3rvnt3kn66"] 2 | 3 | [sub_resource type="Sky" id="1"] 4 | 5 | [resource] 6 | background_mode = 3 7 | background_color = Color(0.215686, 0.215686, 0.215686, 1) 8 | sky = SubResource("1") 9 | ambient_light_color = Color(0.976471, 0.941176, 0.941176, 1) 10 | ambient_light_sky_contribution = 0.72 11 | tonemap_mode = 3 12 | tonemap_white = 2.0 13 | glow_intensity = 1.24 14 | glow_strength = 0.93 15 | adjustment_contrast = 1.1 16 | -------------------------------------------------------------------------------- /godot/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/godot/icon.png -------------------------------------------------------------------------------- /godot/icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cki1f2shnxao8" 6 | path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://icon.png" 14 | dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /img/banner-shader-secrets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/img/banner-shader-secrets.png -------------------------------------------------------------------------------- /img/robi-in-flames.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/img/robi-in-flames.png -------------------------------------------------------------------------------- /img/stylized-fire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/img/stylized-fire.png -------------------------------------------------------------------------------- /img/water2d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdquest-demos/godot-shaders/76e66c9aea6c3cee08c257223d7ad2639c130997/img/water2d.png --------------------------------------------------------------------------------