Clean shader names
This commit is contained in:
parent
d2944f83fa
commit
a8da0a18d0
|
@ -7,8 +7,6 @@ def write_data(res, defs, json_data, base_name):
|
|||
res['shader_datas'].append(sres)
|
||||
|
||||
shader_id = base_name
|
||||
for s in defs:
|
||||
shader_id += s
|
||||
|
||||
sres['name'] = shader_id
|
||||
sres['contexts'] = []
|
||||
|
@ -31,15 +29,6 @@ def write_data(res, defs, json_data, base_name):
|
|||
tesc_name = c['tesscontrol_shader'].split('.')[0]
|
||||
if 'tesseval_shader' in c:
|
||||
tese_name = c['tesseval_shader'].split('.')[0]
|
||||
for d in defs:
|
||||
vert_name += d
|
||||
frag_name += d
|
||||
if 'geometry_shader' in c:
|
||||
geom_name += d
|
||||
if 'tesscontrol_shader' in c:
|
||||
tesc_name += d
|
||||
if 'tesseval_shader' in c:
|
||||
tese_name += d
|
||||
|
||||
con['vertex_shader'] = vert_name + '.vert'
|
||||
con['fragment_shader'] = frag_name + '.frag'
|
||||
|
@ -264,14 +253,10 @@ def parse_shader(sres, c, con, defs, lines, parse_attributes):
|
|||
break
|
||||
con['constants'].append(const)
|
||||
|
||||
def save_data(path, base_name, subset, res):
|
||||
res_name = base_name
|
||||
for s in subset:
|
||||
res_name += s
|
||||
|
||||
def save_data(path, base_name, res):
|
||||
r = {}
|
||||
r['shader_datas'] = [res['shader_datas'][-1]]
|
||||
arm.utils.write_arm(path + '/' + res_name + '.arm', r)
|
||||
arm.utils.write_arm(path + '/' + base_name + '.arm', r)
|
||||
|
||||
def make(base_name, json_data, fp, defs):
|
||||
|
||||
|
@ -283,4 +268,4 @@ def make(base_name, json_data, fp, defs):
|
|||
res['shader_datas'] = []
|
||||
|
||||
write_data(res, defs, json_data, base_name)
|
||||
save_data(path, base_name, defs, res)
|
||||
save_data(path, base_name, res)
|
||||
|
|
|
@ -67,14 +67,11 @@ def make(base_name, json_data, fp, defs):
|
|||
shader['tese'] = f.read().splitlines()
|
||||
|
||||
for shader in shaders:
|
||||
ext = ''
|
||||
for s in defs:
|
||||
ext += s
|
||||
write_variant(path, shader['vert_name'] + ext + '.vert.glsl', defs, shader['vert'])
|
||||
write_variant(path, shader['frag_name'] + ext + '.frag.glsl', defs, shader['frag'])
|
||||
write_variant(path, shader['vert_name'] + '.vert.glsl', defs, shader['vert'])
|
||||
write_variant(path, shader['frag_name'] + '.frag.glsl', defs, shader['frag'])
|
||||
if 'geom' in shader:
|
||||
write_variant(path, shader['geom_name'] + ext + '.geom.glsl', defs, shader['geom'])
|
||||
write_variant(path, shader['geom_name'] + '.geom.glsl', defs, shader['geom'])
|
||||
if 'tesc' in shader:
|
||||
write_variant(path, shader['tesc_name'] + ext + '.tesc.glsl', defs, shader['tesc'])
|
||||
write_variant(path, shader['tesc_name'] + '.tesc.glsl', defs, shader['tesc'])
|
||||
if 'tese' in shader:
|
||||
write_variant(path, shader['tese_name'] + ext + '.tese.glsl', defs, shader['tese'])
|
||||
write_variant(path, shader['tese_name'] + '.tese.glsl', defs, shader['tese'])
|
||||
|
|
|
@ -143,17 +143,21 @@ def export_data(fp, sdk_path, is_play=False, is_publish=False, in_viewport=False
|
|||
modules.append('ui')
|
||||
print('Exported modules: ' + str(modules))
|
||||
|
||||
defs = make_utils.def_strings_to_array(wrd.world_defs)
|
||||
print('Shader flags: ' + str(defs))
|
||||
|
||||
# Write referenced shader variants
|
||||
for ref in assets.shader_datas:
|
||||
# Data does not exist yet
|
||||
if not os.path.isfile(fp + '/' + ref):
|
||||
shader_name = ref.split('/')[3] # Extract from 'build/compiled/...'
|
||||
defs = make_utils.def_strings_to_array(wrd.world_defs)
|
||||
if shader_name.startswith('compositor_pass'):
|
||||
defs += make_utils.def_strings_to_array(wrd.compo_defs)
|
||||
cdefs = make_utils.def_strings_to_array(wrd.compo_defs)
|
||||
compile_shader(raw_shaders_path, shader_name, defs + cdefs)
|
||||
elif shader_name.startswith('grease_pencil'):
|
||||
defs = []
|
||||
compile_shader(raw_shaders_path, shader_name, defs)
|
||||
compile_shader(raw_shaders_path, shader_name, [])
|
||||
else:
|
||||
compile_shader(raw_shaders_path, shader_name, defs)
|
||||
|
||||
# Reset path
|
||||
os.chdir(fp)
|
||||
|
|
|
@ -201,17 +201,14 @@ def make_draw_material_quad(stage, node_group, node, context_index=1):
|
|||
|
||||
def make_draw_quad(stage, node_group, node, context_index=1, shader_context=None):
|
||||
stage['command'] = 'draw_shader_quad'
|
||||
# Append world defs to get proper context
|
||||
wrd = bpy.data.worlds['Arm']
|
||||
world_defs = wrd.world_defs
|
||||
if shader_context == None:
|
||||
shader_context = node.inputs[context_index].default_value
|
||||
scon = shader_context.split('/')
|
||||
stage['params'].append(scon[0] + world_defs + '/' + scon[1] + world_defs + '/' + scon[2])
|
||||
stage['params'].append(scon[0] + '/' + scon[1] + '/' + scon[2])
|
||||
# Include data and shaders
|
||||
dir_name = scon[0]
|
||||
# Append world defs
|
||||
data_name = scon[1] + world_defs
|
||||
data_name = scon[1]
|
||||
assets.add_shader2(dir_name, data_name)
|
||||
|
||||
def make_draw_world(stage, node_group, node, dome=True):
|
||||
|
@ -269,7 +266,7 @@ def make_draw_compositor(stage, node_group, node, with_fxaa=False):
|
|||
wrd.compo_defs = compositor_defs
|
||||
|
||||
defs = world_defs + compositor_defs
|
||||
data_name = scon + defs
|
||||
data_name = scon
|
||||
|
||||
stage['command'] = 'draw_shader_quad'
|
||||
stage['params'].append(data_name + '/' + data_name + '/' + scon)
|
||||
|
|
|
@ -177,9 +177,7 @@ def build_node_tree(world):
|
|||
def write_output(output):
|
||||
# Add datas to khafile
|
||||
dir_name = 'world'
|
||||
# Append world defs
|
||||
wrd = bpy.data.worlds['Arm']
|
||||
data_name = 'world' + wrd.world_defs
|
||||
data_name = 'world'
|
||||
|
||||
# Reference correct shader context
|
||||
dat = output['material_datas'][0]
|
||||
|
|
Loading…
Reference in a new issue