Check out our latest project ✨ OpenChapter.io: free ebooks the way its meant to be 📖

GPU Texture Painter

An asset by maantho
The page banner background of a mountain and forest
GPU Texture Painter thumbnail image
GPU Texture Painter thumbnail image
GPU Texture Painter hero image

Quick Information

0 ratings
GPU Texture Painter icon image
maantho
GPU Texture Painter

This asset can be utilized to create game mechanics like spray painting, drawing or splatoon ink.It supports high precision / realistic painting, multiple meshes, and the ability to choose the brush shape and color freely. Since it runs fully on the GPU it is blazing fast.Features:- Brush / spray viewpoint rendered by camera -> resembles **individual particles**- Achieves realistic and fine painting across multiple meshes- No PhysicsServer or CollisionShapes needed. (Relies fully on 3D rendering techniques)- Works at runtime & in editor- Up to 8 overlay texture atlases per scene- Arbitrary amount of meshes per atlas- Arbitrary brush shapes provided by an image- Resolution and other performance settings

Supported Engine Version
4.4
Version String
1.0.0
License Version
MIT
Support Level
community
Modified Date
8 hours ago
Git URL
Issue URL

Godot GPU Texture Painter

GPU Texture Painter is a plugin for the Godot-Engine, that can be utilized to create game mechanics like spray painting, drawing or splatoon ink.

It supports high precision / realistic painting, multiple meshes, and the ability to choose the brush shape and color freely. Since it runs fully on the GPU it is blazing fast.

Godot 4.5+ supported.

Feel free to use this addon in any project or use it as inspiration to create your own texture painter running on the GPU :)

For bug reports, feature requests and questions please open an issue.

Features

  • Brush / spray viewpoint rendered by camera -> resembles individual particles
  • Achieves realistic and fine painting across multiple meshes
  • No PhysicsServer or CollisionShapes needed. (Relies fully on 3D rendering techniques)
  • Works at runtime & in editor
  • Up to 8 overlay texture atlases per scene
  • Arbitrary amount of meshes per atlas
  • Arbitrary brush shapes provided by an image
  • Resolution and other performance settings

Usage

Overlay Atlas Creation

  • Add OverlayAtlasManager Node as sibling of parent to MeshInstance3D nodes.
    • Use hierarchy for compartmentalization of atlases.
    • All meshes need to have the UV2 unwrapped.
  • Set the wanted texture size.
  • Set the shader file used for the overlay material. See Appearance of the Overlay.
  • Press "Generate atlas and apply shader" to generate the atlas packing and apply the overlay shader material to all materials.
  • Alternatively, call the apply() method in a script.

Camera Brush

  • Add a CameraBrush Node to the scene. Make it a child of the camera for example, to make it moved by the player.
  • The Projection mode controls the type of the brush:
    • Perspective: Paint spreads, e.g. spray cans
    • Orthogonal: Brush size stays constant, e.g. pencils
  • FOV/Size: The size of the brush
  • Max Distance: The range of the brush. (Affects performance)
  • Start Distance Fade: At which distance the brush should start to fade to full transparency.
  • Bleed: How many texels should be drawn in the atlas around the texels rendered by the CameraBrush. Increase to reduce artifacts. (Affects performance)
  • Brush Shape: Image of the brush shape. The R Channel dictates, how much paint is applied.
  • Resolution: Resolution of the CameraBrush render target. Increase or decrease until holes in the painting disappear. (Affects performance)
  • Color: Color of the brush. Opacity can be set.
  • Drawing: If enabled the brush renders and paint is applied. Can also be set from script.

Appearance of the overlay

  • Duplicate the overlay_template.gdshader file.
  • Insert your custom shader code at the placeholder.

This asset can be utilized to create game mechanics like spray painting, drawing or splatoon ink.

It supports high precision / realistic painting, multiple meshes, and the ability to choose the brush shape and color freely. Since it runs fully on the GPU it is blazing fast.

Features:
- Brush / spray viewpoint rendered by camera -> resembles **individual particles**
- Achieves realistic and fine painting across multiple meshes
- No PhysicsServer or CollisionShapes needed. (Relies fully on 3D rendering techniques)
- Works at runtime & in editor
- Up to 8 overlay texture atlases per scene
- Arbitrary amount of meshes per atlas
- Arbitrary brush shapes provided by an image
- Resolution and other performance settings

Reviews

0 ratings

Your Rating

Headline must be at least 3 characters but not more than 50
Review must be at least 5 characters but not more than 500
Please sign in to add a review

Quick Information

0 ratings
GPU Texture Painter icon image
maantho
GPU Texture Painter

This asset can be utilized to create game mechanics like spray painting, drawing or splatoon ink.It supports high precision / realistic painting, multiple meshes, and the ability to choose the brush shape and color freely. Since it runs fully on the GPU it is blazing fast.Features:- Brush / spray viewpoint rendered by camera -> resembles **individual particles**- Achieves realistic and fine painting across multiple meshes- No PhysicsServer or CollisionShapes needed. (Relies fully on 3D rendering techniques)- Works at runtime & in editor- Up to 8 overlay texture atlases per scene- Arbitrary amount of meshes per atlas- Arbitrary brush shapes provided by an image- Resolution and other performance settings

Supported Engine Version
4.4
Version String
1.0.0
License Version
MIT
Support Level
community
Modified Date
8 hours ago
Git URL
Issue URL

Open Source

Released under the AGPLv3 license

Plug and Play

Browse assets directly from Godot

Community Driven

Created by developers for developers