Fix thinWall and passes
This commit is contained in:
@ -908,7 +908,9 @@ class RenderPath {
|
|||||||
#end
|
#end
|
||||||
|
|
||||||
Data.getShader(shaderPath[0], shaderPath[1], function(res: ShaderData) {
|
Data.getShader(shaderPath[0], shaderPath[1], function(res: ShaderData) {
|
||||||
cc.context = res.getContext(shaderPath[2]);
|
if (res != null) {
|
||||||
|
cc.context = res.getContext(shaderPath[2]);
|
||||||
|
}
|
||||||
loading--;
|
loading--;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -55,6 +55,7 @@ class ShaderData {
|
|||||||
if (raw == null) {
|
if (raw == null) {
|
||||||
trace('Shader data "$name" not found!');
|
trace('Shader data "$name" not found!');
|
||||||
done(null);
|
done(null);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
new ShaderData(raw, done, overrideContext);
|
new ShaderData(raw, done, overrideContext);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -384,7 +384,8 @@ def export_data_impl(fp, sdk_path):
|
|||||||
os.utime(g, None)
|
os.utime(g, None)
|
||||||
|
|
||||||
# Write referenced shader passes
|
# Write referenced shader passes
|
||||||
if not os.path.isfile(build_dir + '/compiled/Shaders/shader_datas.lnx') or state.last_world_defs != wrd.world_defs:
|
current_passes = tuple(sorted(assets.shader_passes))
|
||||||
|
if not os.path.isfile(build_dir + '/compiled/Shaders/shader_datas.lnx') or state.last_world_defs != wrd.world_defs or getattr(state, 'last_shader_passes', None) != current_passes:
|
||||||
res = {'shader_datas': []}
|
res = {'shader_datas': []}
|
||||||
|
|
||||||
for ref in assets.shader_passes:
|
for ref in assets.shader_passes:
|
||||||
@ -431,6 +432,7 @@ def export_data_impl(fp, sdk_path):
|
|||||||
if not os.path.exists(target):
|
if not os.path.exists(target):
|
||||||
shutil.copy(file, target)
|
shutil.copy(file, target)
|
||||||
state.last_world_defs = wrd.world_defs
|
state.last_world_defs = wrd.world_defs
|
||||||
|
state.last_shader_passes = current_passes
|
||||||
|
|
||||||
# Reset path
|
# Reset path
|
||||||
os.chdir(fp)
|
os.chdir(fp)
|
||||||
|
|||||||
@ -236,6 +236,8 @@ def build():
|
|||||||
|
|
||||||
if rpdat.rp_renderer == 'Deferred':
|
if rpdat.rp_renderer == 'Deferred':
|
||||||
assets.add_shader_pass('copy_pass')
|
assets.add_shader_pass('copy_pass')
|
||||||
|
elif rpdat.rp_renderer == 'Forward' and not rpdat.rp_compositornodes:
|
||||||
|
assets.add_shader_pass('copy_pass')
|
||||||
|
|
||||||
assets.add_shader_pass('blend_pass')
|
assets.add_shader_pass('blend_pass')
|
||||||
assets.add_shader_pass('add_pass')
|
assets.add_shader_pass('add_pass')
|
||||||
@ -243,9 +245,6 @@ def build():
|
|||||||
if rpdat.rp_render_to_texture:
|
if rpdat.rp_render_to_texture:
|
||||||
assets.add_khafile_def('rp_render_to_texture')
|
assets.add_khafile_def('rp_render_to_texture')
|
||||||
|
|
||||||
if rpdat.rp_renderer == 'Forward' and not rpdat.rp_compositornodes:
|
|
||||||
assets.add_shader_pass('copy_pass')
|
|
||||||
|
|
||||||
if rpdat.rp_compositornodes:
|
if rpdat.rp_compositornodes:
|
||||||
assets.add_khafile_def('rp_compositornodes')
|
assets.add_khafile_def('rp_compositornodes')
|
||||||
compo_depth = False
|
compo_depth = False
|
||||||
@ -341,6 +340,8 @@ def build():
|
|||||||
wrd.world_defs += '_FSR1_{0}'.format(rpdat.rp_fsr1)
|
wrd.world_defs += '_FSR1_{0}'.format(rpdat.rp_fsr1)
|
||||||
assets.add_shader_pass('fsr1_easu_pass')
|
assets.add_shader_pass('fsr1_easu_pass')
|
||||||
assets.add_shader_pass('fsr1_rcas_pass')
|
assets.add_shader_pass('fsr1_rcas_pass')
|
||||||
|
if rpdat.rp_renderer == 'Forward':
|
||||||
|
assets.add_shader_pass('copy_pass')
|
||||||
|
|
||||||
if rpdat.rp_ssao:
|
if rpdat.rp_ssao:
|
||||||
assets.add_khafile_def('rp_ssao')
|
assets.add_khafile_def('rp_ssao')
|
||||||
|
|||||||
@ -693,6 +693,8 @@ def parse_value_input(inp: bpy.types.NodeSocket) -> floatstr:
|
|||||||
return rgb_to_bw(res_var)
|
return rgb_to_bw(res_var)
|
||||||
elif socket_type in ('VALUE', 'INT'):
|
elif socket_type in ('VALUE', 'INT'):
|
||||||
return res_var
|
return res_var
|
||||||
|
elif socket_type == 'BOOLEAN':
|
||||||
|
return f'({res_var} ? 1.0 : 0.0)'
|
||||||
else:
|
else:
|
||||||
log.warn(f'Node tree "{tree_name()}": socket "{link.from_socket.name}" of node "{link.from_node.name}" cannot be connected to a scalar value socket')
|
log.warn(f'Node tree "{tree_name()}": socket "{link.from_socket.name}" of node "{link.from_node.name}" cannot be connected to a scalar value socket')
|
||||||
return '0.0'
|
return '0.0'
|
||||||
@ -990,6 +992,12 @@ def dfdy_fine(val: str) -> str:
|
|||||||
|
|
||||||
|
|
||||||
def to_vec1(v):
|
def to_vec1(v):
|
||||||
|
if isinstance(v, bool):
|
||||||
|
return '1.0' if v else '0.0'
|
||||||
|
if v == 'False':
|
||||||
|
return '0.0'
|
||||||
|
if v == 'True':
|
||||||
|
return '1.0'
|
||||||
return str(v)
|
return str(v)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -149,6 +149,10 @@ def parse(material: Material, mat_data, mat_users: Dict[Material, List[Object]],
|
|||||||
if val_str is None:
|
if val_str is None:
|
||||||
return None
|
return None
|
||||||
val_str = str(val_str).strip()
|
val_str = str(val_str).strip()
|
||||||
|
if val_str in ('True', 'true'):
|
||||||
|
return 1.0
|
||||||
|
if val_str in ('False', 'false'):
|
||||||
|
return 0.0
|
||||||
try:
|
try:
|
||||||
return float(val_str)
|
return float(val_str)
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
|
|||||||
@ -137,6 +137,15 @@ class ShaderContext:
|
|||||||
if default_value is not None:
|
if default_value is not None:
|
||||||
if ctype == 'float':
|
if ctype == 'float':
|
||||||
c['floatValue'] = default_value
|
c['floatValue'] = default_value
|
||||||
|
if isinstance(default_value, bool):
|
||||||
|
c['floatValue'] = 1.0 if default_value else 0.0
|
||||||
|
elif isinstance(default_value, (int, float)):
|
||||||
|
c['floatValue'] = float(default_value)
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
c['floatValue'] = float(default_value)
|
||||||
|
except (ValueError, TypeError):
|
||||||
|
c['floatValue'] = default_value
|
||||||
if ctype == 'vec3':
|
if ctype == 'vec3':
|
||||||
c['vec3Value'] = default_value
|
c['vec3Value'] = default_value
|
||||||
if is_lnx_mat_param is not None:
|
if is_lnx_mat_param is not None:
|
||||||
|
|||||||
Reference in New Issue
Block a user