2017-12-02 05:36:11 +01:00
|
|
|
import os
|
|
|
|
import shutil
|
|
|
|
import subprocess
|
|
|
|
|
2017-12-02 17:50:07 +01:00
|
|
|
from .arm import assets
|
|
|
|
from .arm.utils import get_sdk_path, krom_paths
|
|
|
|
|
2017-12-03 11:33:04 +01:00
|
|
|
def export_sdf(bobject, fp):
|
2017-11-20 15:59:22 +01:00
|
|
|
# if hasattr(bobject.data, 'arm_sdfgen') and bobject.data.arm_sdfgen:
|
|
|
|
# o['sdf_ref'] = 'sdf_' + oid
|
|
|
|
|
|
|
|
if hasattr(bobject.data, 'arm_sdfgen') and bobject.data.arm_sdfgen:
|
|
|
|
# Copy input
|
2017-12-02 17:50:07 +01:00
|
|
|
sdk_path = get_sdk_path()
|
2017-11-20 15:59:22 +01:00
|
|
|
sdfgen_path = sdk_path + '/armory/tools/sdfgen'
|
|
|
|
shutil.copy(fp, sdfgen_path + '/krom/mesh.arm')
|
|
|
|
# Extract basecolor
|
|
|
|
# Assume Armpry PBR with linked texture for now
|
|
|
|
# mat = bobject.material_slots[0].material
|
|
|
|
# img = None
|
|
|
|
# for n in mat.node_tree.nodes:
|
|
|
|
# if n.type == 'GROUP' and n.node_tree.name.startswith('Armory PBR') and n.inputs[0].is_linked:
|
|
|
|
# img = n.inputs[0].links[0].from_node.image
|
|
|
|
# fp_img = bpy.path.abspath(img.filepath)
|
|
|
|
# shutil.copy(fp_img, sdfgen_path + '/krom/mesh.png')
|
|
|
|
# Run
|
2017-12-02 17:50:07 +01:00
|
|
|
krom_location, krom_path = krom_paths()
|
2017-11-20 15:59:22 +01:00
|
|
|
krom_dir = sdfgen_path + '/krom'
|
|
|
|
krom_res = sdfgen_path + '/krom'
|
|
|
|
subprocess.check_output([krom_path, krom_dir, krom_res, '--nosound', '--nowindow'])
|
|
|
|
# Copy output
|
|
|
|
sdf_path = fp.replace('/mesh_', '/sdf_')
|
|
|
|
shutil.copy('out.bin', sdf_path)
|
|
|
|
assets.add(sdf_path)
|
|
|
|
os.remove('out.bin')
|
|
|
|
os.remove(sdfgen_path + '/krom/mesh.arm')
|
|
|
|
# if img != None:
|
2017-12-02 05:36:11 +01:00
|
|
|
# os.remove(sdfgen_path + '/krom/mesh.png')
|