Native Post-Processing Shaders, Advanced Lighting & Physics3D Joints#8343
Closed
Carrotstudio0 wants to merge 96 commits into4ian:masterfrom
Closed
Native Post-Processing Shaders, Advanced Lighting & Physics3D Joints#8343Carrotstudio0 wants to merge 96 commits into4ian:masterfrom
Carrotstudio0 wants to merge 96 commits into4ian:masterfrom
Conversation
added 27 commits
March 1, 2026 01:56
…ulation, gravity, forces, and collisions.
…o the IDE, including source types for autocompletion.
… types, shapes, and properties.
…n and shared data management.
…runtime components.
…izable object cancelable editor, and a 3D physics behavior extension.
…axis properties and X/Y rotation, along with new PointLight and SpotLight components.
…odel object, and 3D lights.
…se3DBehavior, 3D Model object, SpotLight, and Physics3DBehavior.
…, and screen space reflections.
… and physics bounce.
… Ambient Occlusion and Screen Space Reflections.
…Screen Space Reflections, Volumetric Fog, and Bloom.
- Implemented Chromatic Aberration effect with customizable intensity and radial scale. - Added Color Grading effect allowing adjustments for temperature, tint, saturation, contrast, and brightness. - Introduced Flickering Light behavior for dynamic light effects with configurable parameters such as base intensity, flicker speed, strength, fail chance, and off duration. - Enhanced Physics3DEditor with joint editor and ragdoll properties for better 3D object manipulation.
Removed the 'Star History' section from the README.
… fetching and project examples data.
…d local IDEs. ( fix)" This reverts commit 8885f06.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds several new native systems to GDevelop's 3D engine. The core additions are fully integrated and production-ready. The Physics3D joints/ragdoll system is also included but can be dropped from this PR if the team prefers to keep the scope focused — the lighting and shader systems are the more complete and tested part of this work.
What Was Added
New Effects Overview
Shader Architecture (SSAO, SSR, DOF, Volumetric Fog and more )
All four screen-space effects share the same consistent pattern:
Structure of each shader:
ShaderPassper effect — no coupling between passes.tDiffuse— current rendered scene colortDepth— scene depth bufferresolution+ camera matrices (primarilyprojectionMatrixInverse)How they are registered in the engine:
gdjs.PixiFiltersTools.registerFilterCreator('Scene3D::...').JsExtensionas official effects with user-configurable properties.addPostProcessingPass(shaderPass).removePostProcessingPass(shaderPass).updatePreRenderupdates all uniforms.Why There Are No Conflicts Between Effects
The pipeline is designed so all effects can be active simultaneously without interference:
PostProcessingSharedResourcesprovides a single unified color + depth capture per layer, rather than each effect rendering independently. This is the key reason stacking multiple effects is safe.WeakMapkeyed by renderer, so each layer's state is fully isolated.SSAO -> RIM -> DOF -> SSR -> FOG -> BLOOM— no ordering conflicts and no unexpected compositing results.Why There Are No Conflicts With Existing Engine Systems
EmptyFilteris returned instead of throwing.radius,samples,intensity, etc.) are clamped to valid ranges to prevent unstable or undefined shader behavior.Lighting Changes
DirectionalLight — CSM + Stabilization
The existing
Scene3D::DirectionalLightwas upgraded with:cascadeSplitLambdacontrolling split distribution.shadowFollowCameratrue/false.4096on high-end GPUs.New parameters:
maxShadowDistance,cascadeSplitLambda,shadowMapSize,shadowFollowLead,shadowFollowCamera.SpotLight & PointLight
Flickering Light Behavior
New behavior attachable to PointLight or SpotLight. Parameters:
baseIntensity,flickerSpeed,flickerStrength,failChance,offDuration. Uses a sine + noise signal, writing intensity viaupdateDoubleParameter.Rim Light
New
Scene3D::RimLighteffect for cinematic character separation. Controllable color, intensity, and falloff.Physics3D (Jolt) — Optional / Droppable
As noted above, this can be excluded if not ready to review. Included:
Physics3D::PulleyJoint— rope-over-pulley constraint withratioandtotalLength.SetJointBreakThresholds/ClearJointBreakThresholds), Reaction force/torque monitoring.Active,Limp,Stiff,Frozen), group controls, humanoid templates (BuildHumanoidRagdoll,BuildHumanoidRagdollFromTag), and a built-in GUI.Files Modified / Added
Extensions/3D/ChromaticAberrationEffect.tsExtensions/3D/ColorGradingEffect.tsExtensions/3D/ToneMappingEffect.tsExtensions/3D/ScreenSpaceReflectionsEffect.tsExtensions/3D/DepthOfFieldEffect.tsExtensions/3D/VolumetricFogEffect.tsExtensions/3D/SSAOEffect.tsExtensions/3D/RimLightEffect.tsExtensions/3D/FlickeringLightBehavior.tsExtensions/3D/DirectionalLight.ts(modified — CSM upgrade)Extensions/3D/JsExtension.js(modified — effect registrations)Extensions/Physics3DBehavior/Physics3DRuntimeBehavior.ts(modified)Extensions/Physics3DBehavior/JsExtension.js(modified)