feat: image loader
This commit is contained in:
45
helpers.py
45
helpers.py
@ -142,22 +142,28 @@ def load_client(client=None, data=None):
|
|||||||
def load_image(target=None, data=None):
|
def load_image(target=None, data=None):
|
||||||
try:
|
try:
|
||||||
if not target:
|
if not target:
|
||||||
image = bpy.data.image.new(
|
image = bpy.data.images.new(
|
||||||
name=data['name'],
|
name=data['name'],
|
||||||
width=data['width'],
|
width=data['size'][0],
|
||||||
height=data['height'],
|
height=data['size'][1]
|
||||||
alpha=data['alpha'],
|
|
||||||
float_buffer=data['float_buffer']
|
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
image = target
|
image = target
|
||||||
|
|
||||||
|
img_name = "{}.png".format(image.name)
|
||||||
|
|
||||||
|
logger.info("updating {} cache file".format(image.name))
|
||||||
|
img_path = os.path.join(environment.CACHE_DIR,img_name)
|
||||||
|
|
||||||
|
file = open(img_path,'wb')
|
||||||
|
file.write(data["pixels"])
|
||||||
|
file.close()
|
||||||
|
|
||||||
image.source = 'FILE'
|
image.source = 'FILE'
|
||||||
image.filepath = data['filepath']
|
image.filepath = img_path
|
||||||
|
|
||||||
# dump_anything.load(target, data)
|
# dump_anything.load(target, data)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.error(e)
|
logger.error(e)
|
||||||
|
|
||||||
|
|
||||||
def load_armature(target=None, data=None, create=False):
|
def load_armature(target=None, data=None, create=False):
|
||||||
@ -214,26 +220,25 @@ def load_mesh(target=None, data=None, create=False):
|
|||||||
# 1 - LOAD GEOMETRY
|
# 1 - LOAD GEOMETRY
|
||||||
mesh_buffer = bmesh.new()
|
mesh_buffer = bmesh.new()
|
||||||
|
|
||||||
for i in data["vertices"]:
|
for i in data["verts"]:
|
||||||
v = mesh_buffer.verts.new(data["vertices"][i]["co"])
|
v = mesh_buffer.verts.new(data["verts"][i]["co"])
|
||||||
v.normal = data["vertices"][i]["normal"]
|
|
||||||
|
|
||||||
mesh_buffer.verts.ensure_lookup_table()
|
mesh_buffer.verts.ensure_lookup_table()
|
||||||
|
|
||||||
for i in data["edges"]:
|
for i in data["edges"]:
|
||||||
verts = mesh_buffer.verts
|
verts = mesh_buffer.verts
|
||||||
v1 = data["edges"][i]["vertices"][0]
|
v1 = data["edges"][i]["verts"][0]
|
||||||
v2 = data["edges"][i]["vertices"][1]
|
v2 = data["edges"][i]["verts"][1]
|
||||||
mesh_buffer.edges.new([verts[v1], verts[v2]])
|
mesh_buffer.edges.new([verts[v1], verts[v2]])
|
||||||
|
|
||||||
for p in data["polygons"]:
|
for p in data["faces"]:
|
||||||
verts = []
|
verts = []
|
||||||
for v in data["polygons"][p]["vertices"]:
|
for v in data["faces"][p]["verts"]:
|
||||||
verts.append(mesh_buffer.verts[v])
|
verts.append(mesh_buffer.verts[v])
|
||||||
|
|
||||||
if len(verts) > 0:
|
if len(verts) > 0:
|
||||||
f = mesh_buffer.faces.new(verts)
|
f = mesh_buffer.faces.new(verts)
|
||||||
f.material_index = data["polygons"][p]['material_index']
|
f.material_index = data["faces"][p]['material_index']
|
||||||
|
|
||||||
for l in data["uv_layers"]:
|
for l in data["uv_layers"]:
|
||||||
pass
|
pass
|
||||||
@ -566,9 +571,10 @@ def dump(key):
|
|||||||
data = None
|
data = None
|
||||||
|
|
||||||
if target_type == 'Image':
|
if target_type == 'Image':
|
||||||
data = dump_datablock(target, 2)
|
data = {}
|
||||||
data['pixels'] = dump_image(target)
|
data['pixels'] = dump_image(target)
|
||||||
data = dump_datablock_attibute(target,['filepath','source'], 2, data)
|
dump_datablock_attibute(target,[], 2,data)
|
||||||
|
data = dump_datablock_attibute(target,["name",'size','height','alpha','float_buffer','filepath','source'], 2, data)
|
||||||
elif target_type == 'Material':
|
elif target_type == 'Material':
|
||||||
data = dump_datablock(target, 2)
|
data = dump_datablock(target, 2)
|
||||||
dump_datablock_attibute(target.node_tree, ["nodes","links"] , 3, data['node_tree'])
|
dump_datablock_attibute(target.node_tree, ["nodes","links"] , 3, data['node_tree'])
|
||||||
@ -661,7 +667,7 @@ def dump_image(image):
|
|||||||
image.save()
|
image.save()
|
||||||
|
|
||||||
if image.source == "FILE":
|
if image.source == "FILE":
|
||||||
|
image.save()
|
||||||
file = open(image.filepath_raw, "rb")
|
file = open(image.filepath_raw, "rb")
|
||||||
pixels = file.read()
|
pixels = file.read()
|
||||||
logger.debug("Reading image file {}".format(image.name))
|
logger.debug("Reading image file {}".format(image.name))
|
||||||
@ -713,6 +719,7 @@ def dump_mesh(mesh, data={}):
|
|||||||
fverts.append(vert.index)
|
fverts.append(vert.index)
|
||||||
|
|
||||||
f["verts"] = fverts
|
f["verts"] = fverts
|
||||||
|
f["material_index"] = face.material_index
|
||||||
|
|
||||||
# Face metadata
|
# Face metadata
|
||||||
for loop in face.loops:
|
for loop in face.loops:
|
||||||
|
Reference in New Issue
Block a user