Texturing used to happen in the 3D application or in Photoshop against a UV layout. Dedicated tools changed that, and the reasons are worth understanding even if you use something else.
Painting on the model
The core shift is painting in 3D, on the surface, across UV seams, with the result visible under real-time PBR lighting. Painting on a flat UV layout and checking the result is a slow loop; painting on the object is not.
Smart materials and masks
The larger shift is procedural. Rather than painting wear by hand, you define rules — wear on convex edges, dirt in concavities, rust where water would collect — driven by baked maps (curvature, ambient occlusion, position). Change the base material and the wear updates.
This is why baking comes before texturing: the procedural masks read those baked maps.
Channels together
A dedicated texturing tool authors all the PBR channels at once, so a "worn metal" material writes base colour, roughness, metallic and normal simultaneously and consistently. Authoring them separately in an image editor is where most channel mismatches come from.
Exporting
Export presets target specific engines and pack channels appropriately — a Unity preset packs differently from an Unreal one. Getting this right at export is easier than fixing channel packing in engine.
Alternatives
Blender's texture paint mode, other dedicated painters, and procedural material tools all cover parts of this. The workflow ideas — paint in 3D, drive detail from baked maps, author all channels together — matter more than the specific product.
With generated textures
A generated model arrives with a base colour texture and often little else. A texturing tool is where the remaining channels get authored, and where a flat-looking generated texture becomes a material that reads under lighting.