BlenderKit: add several autotags

megapixels checks number of total pixels in textures.
procedural, node count and texture count will help in heuristics and advanced searches.
This commit is contained in:
Vilém Duha 2020-01-21 16:57:54 +01:00
parent 11491c5be0
commit 7c3d8127da
2 changed files with 9 additions and 1 deletions

View File

@ -87,7 +87,9 @@ def check_render_engine(props, obs):
shaders = []
textures = []
props.uv = False
props.texture_count = 0
props.total_megapixels = 0
props.node_count = 0
for ob in obs: # TODO , this is duplicated here for other engines, otherwise this should be more clever.
for ms in ob.material_slots:
if ms.material is not None:
@ -109,6 +111,7 @@ def check_render_engine(props, obs):
checknodes = m.node_tree.nodes[:]
while len(checknodes) > 0:
n = checknodes.pop()
props.node_count +=1
if n.type == 'GROUP': # dive deeper here.
checknodes.extend(n.node_tree.nodes)
if len(n.outputs) == 1 and n.outputs[0].type == 'SHADER' and n.type != 'GROUP':

View File

@ -232,6 +232,10 @@ def get_upload_data(self, context, asset_type):
"manifold": props.manifold,
"objectCount": props.object_count,
"procedural": props.is_procedural,
"nodeCount": props.node_count,
"textureCount": props.texture_count,
"megapixels": round(props.total_megapixels/ 1000000),
# "scene": props.is_scene,
}
if props.use_design_year:
@ -359,6 +363,7 @@ def get_upload_data(self, context, asset_type):
"procedural": props.is_procedural,
"nodeCount": props.node_count,
"textureCount": props.texture_count,
"megapixels": round(props.total_megapixels/ 1000000),
}