What is PAINTicle
PAINTicle was my approach to be able to texture paint dirt and grime within Blender’s own texture painting system. It started as a Blender 2.9 add-on. In the meantime due to lack of interest I stopped development and switched myself to Substance Painter.
PAINTicle needed to perform quite some workarounds to achieve its goals. Manipulating large textures up to 4k is not really something one should perform in Python directly. I ended up with 2 different acceleration strategies based on their nature. Simulating the particles was utilizing Numpy. However some steps, especially collision detection with the mesh, happened in a native C++ python module. There I could use Embree to perform fast ray intersections w the geometry. Updating the texture itself and performing things like overbaking the result, so texture filtering will not show bleeding colors, was performed with OpenGL Vertex-, Pixel- and Compute shaders.