When you add a new material, it defaults to Principled.
Is this configurable (i.e. can I change it back to the old method whereby it adds a diffuse node by default?)
When you add a new material, it defaults to Principled.
Is this configurable (i.e. can I change it back to the old method whereby it adds a diffuse node by default?)
I don’t think you can change the default behavior, but without using the nodes you can quickly switch to diffuse from the Surface field in the Material Properties.
Not sure,but if its using python,like add new cube ect commands,then you could make your own
" add new material " python script addon,and add maybe a toggle for it in the menu.
Based on the Videotutorial,i tryed to make a script.Here the simplified version of the new diffuse material.
diffues_mat.py (517 Bytes)
Here’s the basic script that I have…
(my default adds some other stuff, but is easy to create new default materials)
bl_info = {
"name": "Custom New Material",
"author": "Secrop",
"version": (1, 0),
"blender": (2, 91, 0),
"location": "New Material",
"description": "Replaces the default material",
"warning": "",
"doc_url": "",
"category": "Material",
}
import bpy
from bpy.types import Operator
from bpy import utils
# Default Materials
def material_output_default(nodetree):
n = nodetree.nodes
n.remove(n['Principled BSDF'])
# Material creation and assignment
def new_material(context, nodefunction):
m = context.blend_data.materials.new("Material")
m.use_nodes = True
nodefunction(m.node_tree)
o = context.active_object
if len(o.material_slots)==0:
bpy.ops.object.material_slot_add()
s = o.material_slots[o.active_material_index]
s.material = m
# Operator
class CustomNewMaterialOperator(bpy.types.Operator):
"""Tooltip"""
bl_idname = "material.new"
bl_label = "Custom New Material"
@classmethod
def poll(cls, context):
res = False
obj = context.active_object
if (obj is not None):
if (obj.type == 'MESH'):
res = True
return res
def execute(self, context):
# using 'material_output_default' as the default material
new_material(context, material_output_default)
return {'FINISHED'}
# System
def register():
bpy.utils.register_class(CustomNewMaterialOperator)
def unregister():
bpy.utils.unregister_class(CustomNewMaterialOperator)
if __name__ == "__main__":
register()
cheers - i’ll try that