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 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.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

Supported Engine Version
4.4
Version String
1.3.0
License Version
MIT
Support Level
community
Modified Date
11 days 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.

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

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.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

Supported Engine Version
4.4
Version String
1.3.0
License Version
MIT
Support Level
community
Modified Date
11 days 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