From 0ec80ebeff8eb58b8b96bf476d84cbb497ba9e84 Mon Sep 17 00:00:00 2001 From: Lubos Lenco Date: Wed, 20 Dec 2017 10:19:44 +0100 Subject: [PATCH] Simplify shader files --- .../world_pass.frag.glsl} | 0 .../world.json => world_pass/world_pass.json} | 6 ++-- .../world_pass.vert.glsl} | 0 .../armory/renderpath/RenderPathCreator.hx | 8 ++--- blender/arm/assets.py | 10 ++---- blender/arm/make.py | 4 +-- blender/arm/make_renderpath.py | 2 +- blender/arm/material/cycles.py | 4 +-- blender/arm/material/make_decal.py | 4 +-- blender/arm/material/make_mesh.py | 36 +++++++++---------- blender/arm/material/make_rect.py | 12 +++---- blender/arm/material/make_shader.py | 4 +-- blender/arm/material/make_skin.py | 6 ++-- blender/arm/material/make_voxel.py | 24 ++++++------- 14 files changed, 56 insertions(+), 64 deletions(-) rename Shaders/{world/world.frag.glsl => world_pass/world_pass.frag.glsl} (100%) rename Shaders/{world/world.json => world_pass/world_pass.json} (93%) mode change 100755 => 100644 rename Shaders/{world/world.vert.glsl => world_pass/world_pass.vert.glsl} (100%) mode change 100755 => 100644 diff --git a/Shaders/world/world.frag.glsl b/Shaders/world_pass/world_pass.frag.glsl similarity index 100% rename from Shaders/world/world.frag.glsl rename to Shaders/world_pass/world_pass.frag.glsl diff --git a/Shaders/world/world.json b/Shaders/world_pass/world_pass.json old mode 100755 new mode 100644 similarity index 93% rename from Shaders/world/world.json rename to Shaders/world_pass/world_pass.json index af5d787a..eb0b3393 --- a/Shaders/world/world.json +++ b/Shaders/world_pass/world_pass.json @@ -1,7 +1,7 @@ { "contexts": [ { - "name": "world", + "name": "world_pass", "depth_write": false, "compare_mode": "less", "cull_mode": "clockwise", @@ -101,8 +101,8 @@ } ], "texture_params": [], - "vertex_shader": "world.vert.glsl", - "fragment_shader": "world.frag.glsl" + "vertex_shader": "world_pass.vert.glsl", + "fragment_shader": "world_pass.frag.glsl" } ] } diff --git a/Shaders/world/world.vert.glsl b/Shaders/world_pass/world_pass.vert.glsl old mode 100755 new mode 100644 similarity index 100% rename from Shaders/world/world.vert.glsl rename to Shaders/world_pass/world_pass.vert.glsl diff --git a/Sources/armory/renderpath/RenderPathCreator.hx b/Sources/armory/renderpath/RenderPathCreator.hx index 5ab0150f..af3ce676 100644 --- a/Sources/armory/renderpath/RenderPathCreator.hx +++ b/Sources/armory/renderpath/RenderPathCreator.hx @@ -37,7 +37,7 @@ class RenderPathCreator { #if (rp_background == "World") { - path.loadShader("shader_datas/world/world"); + path.loadShader("shader_datas/world_pass/world_pass"); } #end @@ -178,7 +178,7 @@ class RenderPathCreator { path.drawMeshes("mesh"); #if (rp_background == "World") { - path.drawSkydome("shader_datas/world/world"); + path.drawSkydome("shader_datas/world_pass/world_pass"); } #end @@ -233,7 +233,7 @@ class RenderPathCreator { static function init() { #if (rp_background == "World") { - path.loadShader("shader_datas/world/world"); + path.loadShader("shader_datas/world_pass/world_pass"); } #end @@ -807,7 +807,7 @@ class RenderPathCreator { #if (rp_background == "World") { - path.drawSkydome("shader_datas/world/world"); + path.drawSkydome("shader_datas/world_pass/world_pass"); } #end diff --git a/blender/arm/assets.py b/blender/arm/assets.py index 5d38bc50..ee6064a5 100755 --- a/blender/arm/assets.py +++ b/blender/arm/assets.py @@ -85,8 +85,6 @@ def invalidate_shader_cache(self, context): fp = arm.utils.get_fp_build() if os.path.isdir(fp + '/compiled/Shaders'): shutil.rmtree(fp + '/compiled/Shaders', onerror=remove_readonly) - if os.path.isdir(fp + '/compiled/ShaderRaws'): - shutil.rmtree(fp + '/compiled/ShaderRaws', onerror=remove_readonly) if os.path.isdir(fp + '/debug/html5-resources'): shutil.rmtree(fp + '/debug/html5-resources', onerror=remove_readonly) if os.path.isdir(fp + '/krom-resources'): @@ -105,12 +103,8 @@ def invalidate_compiled_data(self, context): if invalidate_enabled == False: return fp = arm.utils.get_fp_build() - if os.path.isdir(fp + '/compiled/Assets'): - shutil.rmtree(fp + '/compiled/Assets', onerror=remove_readonly) - if os.path.isdir(fp + '/compiled/Shaders'): - shutil.rmtree(fp + '/compiled/Shaders', onerror=remove_readonly) - if os.path.isdir(fp + '/compiled/ShaderRaws'): - shutil.rmtree(fp + '/compiled/ShaderRaws', onerror=remove_readonly) + if os.path.isdir(fp + '/compiled'): + shutil.rmtree(fp + '/compiled', onerror=remove_readonly) def invalidate_mesh_data(self, context): fp = arm.utils.get_fp_build() diff --git a/blender/arm/make.py b/blender/arm/make.py index b910dca7..955230bb 100755 --- a/blender/arm/make.py +++ b/blender/arm/make.py @@ -74,8 +74,6 @@ def export_data(fp, sdk_path, is_play=False, is_publish=False, in_viewport=False shutil.rmtree(build_dir + '/osx-resources', onerror=remove_readonly) if os.path.isdir(build_dir + '/compiled/Shaders'): shutil.rmtree(build_dir + '/compiled/Shaders', onerror=remove_readonly) - if os.path.isdir(build_dir + '/compiled/ShaderRaws'): - shutil.rmtree(build_dir + '/compiled/ShaderRaws', onerror=remove_readonly) # Detect camera plane changes if len(bpy.data.cameras) > 0: @@ -375,6 +373,7 @@ def watch_play(): def watch_compile(mode): state.compileproc.wait() log.print_progress(100) + print('Finished in ' + str(time.time() - profile_time)) if state.compileproc == None: ## return result = state.compileproc.poll() @@ -383,7 +382,6 @@ def watch_compile(mode): if result == 0: bpy.data.worlds['Arm'].arm_recompile = False state.compileproc_success = True - print('Finished in ' + str(time.time() - profile_time)) on_compiled(mode) else: state.compileproc_success = False diff --git a/blender/arm/make_renderpath.py b/blender/arm/make_renderpath.py index 7dadd752..343563e3 100755 --- a/blender/arm/make_renderpath.py +++ b/blender/arm/make_renderpath.py @@ -28,7 +28,7 @@ def build(): assets.add_khafile_def('rp_background={0}'.format(rpdat.rp_background)) if rpdat.rp_background == 'World': - assets.add_shader_pass('world') + assets.add_shader_pass('world_pass') if '_EnvClouds' in wrd.world_defs: assets.add(assets_path + 'noise256.png') assets.add_embedded_data('noise256.png') diff --git a/blender/arm/material/cycles.py b/blender/arm/material/cycles.py index 72d7fb21..e917de62 100644 --- a/blender/arm/material/cycles.py +++ b/blender/arm/material/cycles.py @@ -963,7 +963,7 @@ def parse_normal_map_color_input(inp): defplus = get_rp_renderer() == 'Deferred Plus' if not get_arm_export_tangents() or defplus or mat_get_material().arm_decal: # Compute TBN matrix frag.write('vec3 texn = ({0}) * 2.0 - 1.0;'.format(parse_vector_input(inp))) - frag.add_include('../../Shaders/std/normals.glsl') + frag.add_include('std/normals.glsl') if defplus: frag.write('mat3 TBN = cotangentFrame(n, -vVec, g2.xy, g2.zw);') else: @@ -1022,7 +1022,7 @@ def parse_value(node, socket): elif node.type == 'CAMERA': # View Z Depth if socket == node.outputs[1]: - curshader.add_include('../../Shaders/std/math.glsl') + curshader.add_include('std/math.glsl') curshader.add_uniform('vec2 cameraProj', link='_cameraPlaneProj') return 'linearize(gl_FragCoord.z, cameraProj)' # View Distance diff --git a/blender/arm/material/make_decal.py b/blender/arm/material/make_decal.py index 9a1e060f..6b08c560 100644 --- a/blender/arm/material/make_decal.py +++ b/blender/arm/material/make_decal.py @@ -26,8 +26,8 @@ def make(context_id): vert.write('wvpposition = WVP * vec4(pos, 1.0);') vert.write('gl_Position = wvpposition;') - frag.add_include('../../Shaders/compiled.glsl') - frag.add_include('../../Shaders/std/gbuffer.glsl') + frag.add_include('compiled.glsl') + frag.add_include('std/gbuffer.glsl') frag.ins = vert.outs frag.add_uniform('sampler2D gbufferD') frag.add_uniform('mat4 invVP', '_inverseViewProjectionMatrix') diff --git a/blender/arm/material/make_mesh.py b/blender/arm/material/make_mesh.py index 38f2a89c..1cd60692 100644 --- a/blender/arm/material/make_mesh.py +++ b/blender/arm/material/make_mesh.py @@ -139,7 +139,7 @@ def make_base(con_mesh, parse_opacity): if write_vertex_attribs != None: vattr_written = write_vertex_attribs(vert) - frag.add_include('../../Shaders/compiled.glsl') + frag.add_include('compiled.glsl') written = False if write_material_attribs != None: @@ -302,7 +302,7 @@ def make_deferred(con_mesh): frag.add_out('vec4[2] fragColor') # Pack gbuffer - frag.add_include('../../Shaders/std/gbuffer.glsl') + frag.add_include('std/gbuffer.glsl') if mat_state.material.arm_two_sided: frag.add_uniform('vec3 v', link='_cameraLook') @@ -343,7 +343,7 @@ def make_deferred_plus(con_mesh): vert.add_uniform('mat4 WVP', '_worldViewProjectionMatrix') vert.write('gl_Position = WVP * spos;') - frag.add_include('../../Shaders/compiled.glsl') + frag.add_include('compiled.glsl') vert.add_out('vec2 texCoord') @@ -360,7 +360,7 @@ def make_deferred_plus(con_mesh): frag.add_uniform('float materialID', link='_objectInfoMaterialIndex') # Pack gbuffer - frag.add_include('../../Shaders/std/gbuffer.glsl') + frag.add_include('std/gbuffer.glsl') frag.write('n /= (abs(n.x) + abs(n.y) + abs(n.z));') frag.write('n.xy = n.z >= 0.0 ? n.xy : octahedronWrap(n.xy);') frag.write('fragColor[0] = vec4(n.xy, fract(texCoord));') @@ -385,7 +385,7 @@ def make_forward_mobile(con_mesh): vert.write('wposition = vec4(W * spos).xyz;') vert.write('gl_Position = WVP * spos;') - frag.add_include('../../Shaders/compiled.glsl') + frag.add_include('compiled.glsl') frag.write('vec3 basecol;') frag.write('float roughness;') frag.write('float metallic;') @@ -404,8 +404,8 @@ def make_forward_mobile(con_mesh): write_norpos(con_mesh, vert) frag.prepend_header('vec3 n = normalize(wnormal);') - frag.add_include('../../Shaders/std/math.glsl') - frag.add_include('../../Shaders/std/brdf.glsl') + frag.add_include('std/math.glsl') + frag.add_include('std/brdf.glsl') frag.add_uniform('vec3 lightColor', '_lampColor') frag.add_uniform('vec3 lightDir', '_lampDirection') frag.add_uniform('vec3 lightPos', '_lampPosition') @@ -420,7 +420,7 @@ def make_forward_mobile(con_mesh): vert.add_out('vec4 lampPos') vert.add_uniform('mat4 LWVP', '_biasLampWorldViewProjectionMatrix') vert.write('lampPos = LWVP * spos;') - frag.add_include('../../Shaders/std/shadows.glsl') + frag.add_include('std/shadows.glsl') frag.add_uniform('sampler2D shadowMap', included=True) frag.add_uniform('float shadowsBias', '_lampShadowsBias') frag.write(' if (lampPos.w > 0.0) {') @@ -450,7 +450,7 @@ def make_forward_mobile(con_mesh): frag.write('direct *= attenuate(distance(wposition, lightPos));') if '_Irr' in wrd.world_defs: - frag.add_include('../../Shaders/std/shirr.glsl') + frag.add_include('std/shirr.glsl') frag.add_uniform('vec4 shirr[7]', link='_envmapIrradiance', included=True) env_str = 'shIrradiance(n)' else: @@ -473,7 +473,7 @@ def make_forward_solid(con_mesh): vert.add_uniform('mat4 WVP', '_worldViewProjectionMatrix') vert.write('gl_Position = WVP * spos;') - frag.add_include('../../Shaders/compiled.glsl') + frag.add_include('compiled.glsl') frag.write('vec3 basecol;') frag.write('float roughness;') frag.write('float metallic;') @@ -509,7 +509,7 @@ def make_forward(con_mesh): # frag.write('fragColor = vec4(indirect, 1.0);') # AO view if '_LDR' in wrd.world_defs: - frag.add_include('../../Shaders/std/tonemap.glsl') + frag.add_include('std/tonemap.glsl') frag.write('fragColor.rgb = tonemapFilmic(fragColor.rgb);') # frag.write('fragColor.rgb = pow(fragColor.rgb, vec3(1.0 / 2.2));') @@ -548,8 +548,8 @@ def make_forward_base(con_mesh, parse_opacity=False): vert.add_uniform('vec3 eye', '_cameraPosition') vert.write('eyeDir = eye - wposition;') - frag.add_include('../../Shaders/std/brdf.glsl') - frag.add_include('../../Shaders/std/math.glsl') + frag.add_include('std/brdf.glsl') + frag.add_include('std/math.glsl') frag.add_uniform('vec3 lightColor', '_lampColor') frag.add_uniform('vec3 lightDir', '_lampDirection') frag.add_uniform('vec3 lightPos', '_lampPosition') @@ -558,7 +558,7 @@ def make_forward_base(con_mesh, parse_opacity=False): frag.add_uniform('float envmapStrength', link='_envmapStrength') if '_Irr' in wrd.world_defs: - frag.add_include('../../Shaders/std/shirr.glsl') + frag.add_include('std/shirr.glsl') frag.add_uniform('vec4 shirr[7]', link='_envmapIrradiance', included=True) if '_Rad' in wrd.world_defs: frag.add_uniform('sampler2D senvmapRadiance', link='_envmapRadiance') @@ -589,7 +589,7 @@ def make_forward_base(con_mesh, parse_opacity=False): vert.add_uniform('mat4 LWVP', '_biasLampWorldViewProjectionMatrix') vert.write('if (lightShadow == 1) lampPos = LWVP * spos;') - frag.add_include('../../Shaders/std/shadows.glsl') + frag.add_include('std/shadows.glsl') frag.add_uniform('sampler2D shadowMap', included=True) frag.add_uniform('samplerCube shadowMapCube', included=True) frag.add_uniform('bool receiveShadow') @@ -600,7 +600,7 @@ def make_forward_base(con_mesh, parse_opacity=False): frag.write('if (receiveShadow) {') frag.write(' if (lightShadow == 1) {') if '_CSM' in wrd.world_defs: - frag.add_include('../../Shaders/compiled.glsl') + frag.add_include('compiled.glsl') frag.add_uniform('vec4 casData[shadowmapCascades * 4 + 4]', '_cascadeData', included=True) frag.add_uniform('vec3 eye', '_cameraPosition') frag.write('vec2 smSize;') @@ -646,7 +646,7 @@ def make_forward_base(con_mesh, parse_opacity=False): frag.write('vec3 direct;') if '_LTC' in wrd.world_defs: - frag.add_include('../../Shaders/std/ltc.glsl') + frag.add_include('std/ltc.glsl') frag.add_uniform('sampler2D sltcMat', link='_ltcMat') frag.add_uniform('sampler2D sltcMag', link='_ltcMag') frag.add_uniform('vec3 lampArea0', link='_lampArea0') @@ -692,7 +692,7 @@ def make_forward_base(con_mesh, parse_opacity=False): frag.write('vec3 indirect = albedo;') if '_VoxelGI' in wrd.world_defs or '_VoxelAO' in wrd.world_defs: - frag.add_include('../../Shaders/std/conetrace.glsl') + frag.add_include('std/conetrace.glsl') frag.add_uniform('sampler3D voxels', included=True) if '_VoxelGICam' in wrd.world_defs: frag.add_uniform('vec3 eyeSnap', link='_cameraPositionSnap') diff --git a/blender/arm/material/make_rect.py b/blender/arm/material/make_rect.py index a9494ccd..fc35ca0e 100644 --- a/blender/arm/material/make_rect.py +++ b/blender/arm/material/make_rect.py @@ -41,12 +41,12 @@ def make_rect(con_rect): frag.ins = vert.outs frag.add_out('vec4 fragColor') - frag.add_include('../../Shaders/compiled.glsl') - frag.add_include('../../Shaders/std/brdf.glsl') - frag.add_include('../../Shaders/std/math.glsl') - frag.add_include('../../Shaders/std/gbuffer.glsl') - frag.add_include('../../Shaders/std/shirr.glsl') - frag.add_include('../../Shaders/std/shadows.glsl') + frag.add_include('compiled.glsl') + frag.add_include('std/brdf.glsl') + frag.add_include('std/math.glsl') + frag.add_include('std/gbuffer.glsl') + frag.add_include('std/shirr.glsl') + frag.add_include('std/shadows.glsl') frag.add_uniform('sampler2D gbuffer0') frag.add_uniform('sampler2D gbuffer1') diff --git a/blender/arm/material/make_shader.py b/blender/arm/material/make_shader.py index b164379f..32ae37ea 100644 --- a/blender/arm/material/make_shader.py +++ b/blender/arm/material/make_shader.py @@ -30,7 +30,7 @@ def build(material, mat_users, mat_armusers): wrd = bpy.data.worlds['Arm'] rpasses = mat_utils.get_rpasses(material) matname = arm.utils.safesrc(arm.utils.asset_name(material)) - rel_path = arm.utils.build_dir() + '/compiled/ShaderRaws/' + matname + rel_path = arm.utils.build_dir() + '/compiled/Shaders/' full_path = arm.utils.get_fp() + '/' + rel_path if not os.path.exists(full_path): os.makedirs(full_path) @@ -91,7 +91,7 @@ def build(material, mat_users, mat_armusers): arm.utils.write_arm(full_path + '/' + matname + '_data.arm', mat_state.data.get()) shader_data_name = matname + '_data' - shader_data_path = arm.utils.build_dir() + '/compiled/ShaderRaws/' + matname + '/' + shader_data_name + '.arm' + shader_data_path = arm.utils.build_dir() + '/compiled/Shaders/' + shader_data_name + '.arm' assets.add_shader_data(shader_data_path) return rpasses, mat_state.data, shader_data_name, bind_constants, bind_textures diff --git a/blender/arm/material/make_skin.py b/blender/arm/material/make_skin.py index bc223b97..120883d5 100644 --- a/blender/arm/material/make_skin.py +++ b/blender/arm/material/make_skin.py @@ -2,16 +2,16 @@ import bpy def skin_pos(vert): - vert.add_include('../../Shaders/compiled.glsl') + vert.add_include('compiled.glsl') if bpy.data.worlds['Arm'].arm_skin == 'GPU (Matrix)': - vert.add_include('../../Shaders/std/skinning_mat.glsl') + vert.add_include('std/skinning_mat.glsl') vert.add_uniform('vec4 skinBones[skinMaxBones * 3]', link='_skinBones', included=True) vert.write('mat4 skinningMat = getSkinningMat(ivec4(bone), weight);') vert.write('spos *= skinningMat;') else: # Dual Quat - vert.add_include('../../Shaders/std/skinning.glsl') + vert.add_include('std/skinning.glsl') vert.add_uniform('vec4 skinBones[skinMaxBones * 2]', link='_skinBones', included=True) vert.write('vec4 skinA;') vert.write('vec4 skinB;') diff --git a/blender/arm/material/make_voxel.py b/blender/arm/material/make_voxel.py index 147e7d72..90c28629 100644 --- a/blender/arm/material/make_voxel.py +++ b/blender/arm/material/make_voxel.py @@ -27,9 +27,9 @@ def make_gi(context_id): geom.ins = vert.outs frag.ins = geom.outs - frag.add_include('../../Shaders/compiled.glsl') - frag.add_include('../../Shaders/std/math.glsl') - frag.add_include('../../Shaders/std/imageatomic.glsl') + frag.add_include('compiled.glsl') + frag.add_include('std/math.glsl') + frag.add_include('std/imageatomic.glsl') frag.write_header('#extension GL_ARB_shader_image_load_store : enable') rpdat = arm.utils.get_rp() @@ -60,7 +60,7 @@ def make_gi(context_id): frag.write('if (dotNL == 0.0) return;') if is_shadows: - frag.add_include('../../Shaders/std/shadows.glsl') + frag.add_include('std/shadows.glsl') frag.add_uniform('sampler2D shadowMap', included=True) frag.add_uniform('samplerCube shadowMapCube', included=True) frag.add_uniform('int lightShadow', '_lampCastShadow') @@ -83,7 +83,7 @@ def make_gi(context_id): # frag.write('}') # if '_LTC' in wrd.world_defs: - # frag.add_include('../../Shaders/std/ltc.glsl') + # frag.add_include('std/ltc.glsl') # frag.add_uniform('sampler2D sltcMat', link='_ltcMat') # frag.add_uniform('sampler2D sltcMag', link='_ltcMag') # frag.add_uniform('vec3 lampArea0', link='_lampArea0') @@ -146,7 +146,7 @@ def make_gi(context_id): vert.add_out('vec3 voxpositionGeom') vert.add_out('vec3 wnormalGeom') - vert.add_include('../../Shaders/compiled.glsl') + vert.add_include('compiled.glsl') if con_voxel.is_elem('col'): vert.add_out('vec3 vcolorGeom') @@ -167,8 +167,8 @@ def make_gi(context_id): if is_shadows: vert.add_out('vec4 lampPosGeom') if '_CSM' in wrd.world_defs: - vert.add_include('../../Shaders/compiled.glsl') - vert.add_include('../../Shaders/std/shadows.glsl') + vert.add_include('compiled.glsl') + vert.add_include('std/shadows.glsl') vert.add_uniform('vec4 casData[shadowmapCascades * 4 + 4]', '_cascadeData', included=True) # TODO: Using second cascade vert.write('mat4 LWVP = mat4(casData[4 + 0], casData[4 + 1], casData[4 + 2], casData[4 + 3]);') @@ -284,16 +284,16 @@ def make_ao(context_id): geom.ins = vert.outs frag.ins = geom.outs - frag.add_include('../../Shaders/compiled.glsl') - frag.add_include('../../Shaders/std/math.glsl') - frag.add_include('../../Shaders/std/imageatomic.glsl') + frag.add_include('compiled.glsl') + frag.add_include('std/math.glsl') + frag.add_include('std/imageatomic.glsl') frag.write_header('#extension GL_ARB_shader_image_load_store : enable') rpdat = arm.utils.get_rp() # frag.add_uniform('layout(r32ui) uimage3D voxels') frag.add_uniform('layout(r8) image3D voxels') - vert.add_include('../../Shaders/compiled.glsl') + vert.add_include('compiled.glsl') vert.add_uniform('mat4 W', '_worldMatrix') vert.add_out('vec3 voxpositionGeom')