I am doing a lot of object copy/pasting, but I want the new copies to just use the same material/texture as the original. Is there a way to prevent Blender from automatically duplicating the material for the new copy?
-
$\begingroup$ OK. Good tips, when using <kbd>Alt</kbd> + <kbd> D</kbd> I keep the same materials without 30 different copies, but I cannot seem to apply any, or certain modifiers like Decimate . How to 'Make Unique' for modifiers while maintaining the existing material assignments? $\endgroup$– dtm0Commented Feb 13, 2022 at 20:54
3 Answers
Copy-pasting is a operating system level tool provided as a convenience for quickly transferring data between different software or environments, not something you would regularly use inside an application as part of its native workflow.
It should be used sparingly and exclusively when required between different files, rarely within the same file.
It can lead to all sorts of issues, some of which you already encountered, like material duplication, losing datablock sharing, breaking child/parent relationships, among others.
In recent versions of Blender, copying objects to clipboard also copies all hierarchically related or interdependent objects long with them, like parents, armatures, bevel objects, among others.
If you are duplicating objects within a scene the correct workflow is to use Blender builtin operators, like object duplication with ⇧ Shift + D (independent copy of the original), object cloning with Alt + D (clone sharing object data) and linking with Ctrl + L.
Between different files, the recommended workflow is to either use linking or appending or asset libraries .
On a technical note, copy-pasting from a 3D Scene in Blender using the system clipboard actually creates a new temporary file on disk, with the copied content written to it. Pasting then appends from that file, thus effectively bringing objects in from a new file, breaking any relationships to the current one it may have had.
It also incurs in some significant overhead associated with reading all data copied to clipboard, writing that data to a new file on local disk (which may be slow if the amount of data is large or the disk is busy), then reading all that data it back into memory, which is largely inefficient compared to just duplicating in scene.
Copy/pasting acts more or less like a File > Append, resulting in added materials. If you Duplicate the object using Shift + D instead, materials won't be duplicated.
Use the ALT + D hotkey instead. This will instance the meshes, but still keep the same mesh/materials/textures as the original.