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.
Description
Hi everyone,
I’ve been working on a new extension for GDevelop 3D that provides a complete set of tools to achieve a stylized, anime/cartoon look. Since GDevelop is expanding its 3D capabilities, I thought this would be a great addition for users who want to move away from the default realistic shading.
What does it do? This extension isn't just a simple shader; it's a collection of actions that handle several "Toon" effects:
Cel-Shading: Replaces smooth lighting with sharp steps. It supports custom gradient maps so users can define exactly how shadows look.
Dynamic Outlines: A robust outline system that uses vertex extrusion. The thickness stays consistent regardless of camera distance, and it works perfectly with skinned/animated meshes.
Rim Lighting: Adds that "edge glow" effect often seen in high-end anime games to make characters pop from the background.
Cartoon Specular: Clean, sharp highlights for materials like metal or eyes, with full control over light direction and sharpness.
Manga/Halftone Effects: Includes options for hatching and halftone dots inside shadows for a comic book aesthetic.
Emission Control: Easy way to make specific parts of a 3D model glow.
How to use the extension
Cartoon Outline
Overview
The Outline effect adds a solid colored line around the silhouette of your 3D models. This separates the character from the background, essential for the anime/manga aesthetic.
Action: Add/Change Outline
Command:
Add/Change outline for OBJECT (...)Parameters
2.0to5.0are standard.10.0+for a thick marker style.Trueif the object is a Skinned Mesh (has bones/animations).Falsefor static props (crates, walls).Action: Remove Outline
Command:
Remove outline from OBJECTDeletes the outline meshes to free up performance.
Rim Lighting (Fresnel)
Overview
Rim Lighting enhances the silhouette of an object by adding a glow to the edges that are glancing away from the camera. This simulates backlighting or atmospheric scattering and is a staple of high-quality anime rendering
Action: Apply Rim Lighting
Command:
Apply rim lighting to OBJECT (Color: COLOR, Intensity: NUM, Spread: NUM, Sharpness: NUM, Opacity: NUM)Parameters
0.0: Soft, realistic glow.1.0: Hard-edged band (Use this for Toon style).Visual Style
Emission / Glow Effect
Overview
The Emission effect allows your 3D objects to emit light, creating a glowing appearance. This is calculated using the object's material emissive properties. It interacts with the scene by making the object appear bright regardless of lighting conditions, simulating a light source.
This effect is perfect for:
Action: Apply Emission (Glow)
Command:
Apply Emission to OBJECT (Color: COLOR, Intensity: NUMBER, Texture: IMAGE)Parameters
Action: Remove Emission
Command:
Remove Emission from OBJECTremoves all glow effects, resetting the emissive color to black.
There are other effects that cannot be fully discussed here, but through experience, you will learn how to use them.


Checklist
Example file
MyExample.zip
Extension file
ToonShader.zip
Extension by @Carrotstudio0
You can update the extension on this "Pull Request" by commenting the update command: in the comment field, type
!update, then drag and drop a zip file with your extension file in the commenting field, like how you initially submitted the extension. It should look like this:It can take a few seconds for the file to fully upload and show as the above. Once it is like shown above, click "Comment" and let the bot do the rest!