Simplify shader files
This commit is contained in:
parent
409a398730
commit
0ec80ebeff
6
Shaders/world/world.json → Shaders/world_pass/world_pass.json
Executable file → Normal file
6
Shaders/world/world.json → Shaders/world_pass/world_pass.json
Executable file → Normal file
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"contexts": [
|
"contexts": [
|
||||||
{
|
{
|
||||||
"name": "world",
|
"name": "world_pass",
|
||||||
"depth_write": false,
|
"depth_write": false,
|
||||||
"compare_mode": "less",
|
"compare_mode": "less",
|
||||||
"cull_mode": "clockwise",
|
"cull_mode": "clockwise",
|
||||||
|
@ -101,8 +101,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"texture_params": [],
|
"texture_params": [],
|
||||||
"vertex_shader": "world.vert.glsl",
|
"vertex_shader": "world_pass.vert.glsl",
|
||||||
"fragment_shader": "world.frag.glsl"
|
"fragment_shader": "world_pass.frag.glsl"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
0
Shaders/world/world.vert.glsl → Shaders/world_pass/world_pass.vert.glsl
Executable file → Normal file
0
Shaders/world/world.vert.glsl → Shaders/world_pass/world_pass.vert.glsl
Executable file → Normal file
|
@ -37,7 +37,7 @@ class RenderPathCreator {
|
||||||
|
|
||||||
#if (rp_background == "World")
|
#if (rp_background == "World")
|
||||||
{
|
{
|
||||||
path.loadShader("shader_datas/world/world");
|
path.loadShader("shader_datas/world_pass/world_pass");
|
||||||
}
|
}
|
||||||
#end
|
#end
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ class RenderPathCreator {
|
||||||
path.drawMeshes("mesh");
|
path.drawMeshes("mesh");
|
||||||
#if (rp_background == "World")
|
#if (rp_background == "World")
|
||||||
{
|
{
|
||||||
path.drawSkydome("shader_datas/world/world");
|
path.drawSkydome("shader_datas/world_pass/world_pass");
|
||||||
}
|
}
|
||||||
#end
|
#end
|
||||||
|
|
||||||
|
@ -233,7 +233,7 @@ class RenderPathCreator {
|
||||||
static function init() {
|
static function init() {
|
||||||
#if (rp_background == "World")
|
#if (rp_background == "World")
|
||||||
{
|
{
|
||||||
path.loadShader("shader_datas/world/world");
|
path.loadShader("shader_datas/world_pass/world_pass");
|
||||||
}
|
}
|
||||||
#end
|
#end
|
||||||
|
|
||||||
|
@ -807,7 +807,7 @@ class RenderPathCreator {
|
||||||
|
|
||||||
#if (rp_background == "World")
|
#if (rp_background == "World")
|
||||||
{
|
{
|
||||||
path.drawSkydome("shader_datas/world/world");
|
path.drawSkydome("shader_datas/world_pass/world_pass");
|
||||||
}
|
}
|
||||||
#end
|
#end
|
||||||
|
|
||||||
|
|
|
@ -85,8 +85,6 @@ def invalidate_shader_cache(self, context):
|
||||||
fp = arm.utils.get_fp_build()
|
fp = arm.utils.get_fp_build()
|
||||||
if os.path.isdir(fp + '/compiled/Shaders'):
|
if os.path.isdir(fp + '/compiled/Shaders'):
|
||||||
shutil.rmtree(fp + '/compiled/Shaders', onerror=remove_readonly)
|
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'):
|
if os.path.isdir(fp + '/debug/html5-resources'):
|
||||||
shutil.rmtree(fp + '/debug/html5-resources', onerror=remove_readonly)
|
shutil.rmtree(fp + '/debug/html5-resources', onerror=remove_readonly)
|
||||||
if os.path.isdir(fp + '/krom-resources'):
|
if os.path.isdir(fp + '/krom-resources'):
|
||||||
|
@ -105,12 +103,8 @@ def invalidate_compiled_data(self, context):
|
||||||
if invalidate_enabled == False:
|
if invalidate_enabled == False:
|
||||||
return
|
return
|
||||||
fp = arm.utils.get_fp_build()
|
fp = arm.utils.get_fp_build()
|
||||||
if os.path.isdir(fp + '/compiled/Assets'):
|
if os.path.isdir(fp + '/compiled'):
|
||||||
shutil.rmtree(fp + '/compiled/Assets', onerror=remove_readonly)
|
shutil.rmtree(fp + '/compiled', 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)
|
|
||||||
|
|
||||||
def invalidate_mesh_data(self, context):
|
def invalidate_mesh_data(self, context):
|
||||||
fp = arm.utils.get_fp_build()
|
fp = arm.utils.get_fp_build()
|
||||||
|
|
|
@ -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)
|
shutil.rmtree(build_dir + '/osx-resources', onerror=remove_readonly)
|
||||||
if os.path.isdir(build_dir + '/compiled/Shaders'):
|
if os.path.isdir(build_dir + '/compiled/Shaders'):
|
||||||
shutil.rmtree(build_dir + '/compiled/Shaders', onerror=remove_readonly)
|
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
|
# Detect camera plane changes
|
||||||
if len(bpy.data.cameras) > 0:
|
if len(bpy.data.cameras) > 0:
|
||||||
|
@ -375,6 +373,7 @@ def watch_play():
|
||||||
def watch_compile(mode):
|
def watch_compile(mode):
|
||||||
state.compileproc.wait()
|
state.compileproc.wait()
|
||||||
log.print_progress(100)
|
log.print_progress(100)
|
||||||
|
print('Finished in ' + str(time.time() - profile_time))
|
||||||
if state.compileproc == None: ##
|
if state.compileproc == None: ##
|
||||||
return
|
return
|
||||||
result = state.compileproc.poll()
|
result = state.compileproc.poll()
|
||||||
|
@ -383,7 +382,6 @@ def watch_compile(mode):
|
||||||
if result == 0:
|
if result == 0:
|
||||||
bpy.data.worlds['Arm'].arm_recompile = False
|
bpy.data.worlds['Arm'].arm_recompile = False
|
||||||
state.compileproc_success = True
|
state.compileproc_success = True
|
||||||
print('Finished in ' + str(time.time() - profile_time))
|
|
||||||
on_compiled(mode)
|
on_compiled(mode)
|
||||||
else:
|
else:
|
||||||
state.compileproc_success = False
|
state.compileproc_success = False
|
||||||
|
|
|
@ -28,7 +28,7 @@ def build():
|
||||||
|
|
||||||
assets.add_khafile_def('rp_background={0}'.format(rpdat.rp_background))
|
assets.add_khafile_def('rp_background={0}'.format(rpdat.rp_background))
|
||||||
if rpdat.rp_background == 'World':
|
if rpdat.rp_background == 'World':
|
||||||
assets.add_shader_pass('world')
|
assets.add_shader_pass('world_pass')
|
||||||
if '_EnvClouds' in wrd.world_defs:
|
if '_EnvClouds' in wrd.world_defs:
|
||||||
assets.add(assets_path + 'noise256.png')
|
assets.add(assets_path + 'noise256.png')
|
||||||
assets.add_embedded_data('noise256.png')
|
assets.add_embedded_data('noise256.png')
|
||||||
|
|
|
@ -963,7 +963,7 @@ def parse_normal_map_color_input(inp):
|
||||||
defplus = get_rp_renderer() == 'Deferred Plus'
|
defplus = get_rp_renderer() == 'Deferred Plus'
|
||||||
if not get_arm_export_tangents() or defplus or mat_get_material().arm_decal: # Compute TBN matrix
|
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.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:
|
if defplus:
|
||||||
frag.write('mat3 TBN = cotangentFrame(n, -vVec, g2.xy, g2.zw);')
|
frag.write('mat3 TBN = cotangentFrame(n, -vVec, g2.xy, g2.zw);')
|
||||||
else:
|
else:
|
||||||
|
@ -1022,7 +1022,7 @@ def parse_value(node, socket):
|
||||||
elif node.type == 'CAMERA':
|
elif node.type == 'CAMERA':
|
||||||
# View Z Depth
|
# View Z Depth
|
||||||
if socket == node.outputs[1]:
|
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')
|
curshader.add_uniform('vec2 cameraProj', link='_cameraPlaneProj')
|
||||||
return 'linearize(gl_FragCoord.z, cameraProj)'
|
return 'linearize(gl_FragCoord.z, cameraProj)'
|
||||||
# View Distance
|
# View Distance
|
||||||
|
|
|
@ -26,8 +26,8 @@ def make(context_id):
|
||||||
vert.write('wvpposition = WVP * vec4(pos, 1.0);')
|
vert.write('wvpposition = WVP * vec4(pos, 1.0);')
|
||||||
vert.write('gl_Position = wvpposition;')
|
vert.write('gl_Position = wvpposition;')
|
||||||
|
|
||||||
frag.add_include('../../Shaders/compiled.glsl')
|
frag.add_include('compiled.glsl')
|
||||||
frag.add_include('../../Shaders/std/gbuffer.glsl')
|
frag.add_include('std/gbuffer.glsl')
|
||||||
frag.ins = vert.outs
|
frag.ins = vert.outs
|
||||||
frag.add_uniform('sampler2D gbufferD')
|
frag.add_uniform('sampler2D gbufferD')
|
||||||
frag.add_uniform('mat4 invVP', '_inverseViewProjectionMatrix')
|
frag.add_uniform('mat4 invVP', '_inverseViewProjectionMatrix')
|
||||||
|
|
|
@ -139,7 +139,7 @@ def make_base(con_mesh, parse_opacity):
|
||||||
if write_vertex_attribs != None:
|
if write_vertex_attribs != None:
|
||||||
vattr_written = write_vertex_attribs(vert)
|
vattr_written = write_vertex_attribs(vert)
|
||||||
|
|
||||||
frag.add_include('../../Shaders/compiled.glsl')
|
frag.add_include('compiled.glsl')
|
||||||
|
|
||||||
written = False
|
written = False
|
||||||
if write_material_attribs != None:
|
if write_material_attribs != None:
|
||||||
|
@ -302,7 +302,7 @@ def make_deferred(con_mesh):
|
||||||
frag.add_out('vec4[2] fragColor')
|
frag.add_out('vec4[2] fragColor')
|
||||||
|
|
||||||
# Pack gbuffer
|
# Pack gbuffer
|
||||||
frag.add_include('../../Shaders/std/gbuffer.glsl')
|
frag.add_include('std/gbuffer.glsl')
|
||||||
|
|
||||||
if mat_state.material.arm_two_sided:
|
if mat_state.material.arm_two_sided:
|
||||||
frag.add_uniform('vec3 v', link='_cameraLook')
|
frag.add_uniform('vec3 v', link='_cameraLook')
|
||||||
|
@ -343,7 +343,7 @@ def make_deferred_plus(con_mesh):
|
||||||
vert.add_uniform('mat4 WVP', '_worldViewProjectionMatrix')
|
vert.add_uniform('mat4 WVP', '_worldViewProjectionMatrix')
|
||||||
vert.write('gl_Position = WVP * spos;')
|
vert.write('gl_Position = WVP * spos;')
|
||||||
|
|
||||||
frag.add_include('../../Shaders/compiled.glsl')
|
frag.add_include('compiled.glsl')
|
||||||
|
|
||||||
vert.add_out('vec2 texCoord')
|
vert.add_out('vec2 texCoord')
|
||||||
|
|
||||||
|
@ -360,7 +360,7 @@ def make_deferred_plus(con_mesh):
|
||||||
frag.add_uniform('float materialID', link='_objectInfoMaterialIndex')
|
frag.add_uniform('float materialID', link='_objectInfoMaterialIndex')
|
||||||
|
|
||||||
# Pack gbuffer
|
# 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 /= (abs(n.x) + abs(n.y) + abs(n.z));')
|
||||||
frag.write('n.xy = n.z >= 0.0 ? n.xy : octahedronWrap(n.xy);')
|
frag.write('n.xy = n.z >= 0.0 ? n.xy : octahedronWrap(n.xy);')
|
||||||
frag.write('fragColor[0] = vec4(n.xy, fract(texCoord));')
|
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('wposition = vec4(W * spos).xyz;')
|
||||||
vert.write('gl_Position = WVP * spos;')
|
vert.write('gl_Position = WVP * spos;')
|
||||||
|
|
||||||
frag.add_include('../../Shaders/compiled.glsl')
|
frag.add_include('compiled.glsl')
|
||||||
frag.write('vec3 basecol;')
|
frag.write('vec3 basecol;')
|
||||||
frag.write('float roughness;')
|
frag.write('float roughness;')
|
||||||
frag.write('float metallic;')
|
frag.write('float metallic;')
|
||||||
|
@ -404,8 +404,8 @@ def make_forward_mobile(con_mesh):
|
||||||
write_norpos(con_mesh, vert)
|
write_norpos(con_mesh, vert)
|
||||||
frag.prepend_header('vec3 n = normalize(wnormal);')
|
frag.prepend_header('vec3 n = normalize(wnormal);')
|
||||||
|
|
||||||
frag.add_include('../../Shaders/std/math.glsl')
|
frag.add_include('std/math.glsl')
|
||||||
frag.add_include('../../Shaders/std/brdf.glsl')
|
frag.add_include('std/brdf.glsl')
|
||||||
frag.add_uniform('vec3 lightColor', '_lampColor')
|
frag.add_uniform('vec3 lightColor', '_lampColor')
|
||||||
frag.add_uniform('vec3 lightDir', '_lampDirection')
|
frag.add_uniform('vec3 lightDir', '_lampDirection')
|
||||||
frag.add_uniform('vec3 lightPos', '_lampPosition')
|
frag.add_uniform('vec3 lightPos', '_lampPosition')
|
||||||
|
@ -420,7 +420,7 @@ def make_forward_mobile(con_mesh):
|
||||||
vert.add_out('vec4 lampPos')
|
vert.add_out('vec4 lampPos')
|
||||||
vert.add_uniform('mat4 LWVP', '_biasLampWorldViewProjectionMatrix')
|
vert.add_uniform('mat4 LWVP', '_biasLampWorldViewProjectionMatrix')
|
||||||
vert.write('lampPos = LWVP * spos;')
|
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('sampler2D shadowMap', included=True)
|
||||||
frag.add_uniform('float shadowsBias', '_lampShadowsBias')
|
frag.add_uniform('float shadowsBias', '_lampShadowsBias')
|
||||||
frag.write(' if (lampPos.w > 0.0) {')
|
frag.write(' if (lampPos.w > 0.0) {')
|
||||||
|
@ -450,7 +450,7 @@ def make_forward_mobile(con_mesh):
|
||||||
frag.write('direct *= attenuate(distance(wposition, lightPos));')
|
frag.write('direct *= attenuate(distance(wposition, lightPos));')
|
||||||
|
|
||||||
if '_Irr' in wrd.world_defs:
|
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)
|
frag.add_uniform('vec4 shirr[7]', link='_envmapIrradiance', included=True)
|
||||||
env_str = 'shIrradiance(n)'
|
env_str = 'shIrradiance(n)'
|
||||||
else:
|
else:
|
||||||
|
@ -473,7 +473,7 @@ def make_forward_solid(con_mesh):
|
||||||
vert.add_uniform('mat4 WVP', '_worldViewProjectionMatrix')
|
vert.add_uniform('mat4 WVP', '_worldViewProjectionMatrix')
|
||||||
vert.write('gl_Position = WVP * spos;')
|
vert.write('gl_Position = WVP * spos;')
|
||||||
|
|
||||||
frag.add_include('../../Shaders/compiled.glsl')
|
frag.add_include('compiled.glsl')
|
||||||
frag.write('vec3 basecol;')
|
frag.write('vec3 basecol;')
|
||||||
frag.write('float roughness;')
|
frag.write('float roughness;')
|
||||||
frag.write('float metallic;')
|
frag.write('float metallic;')
|
||||||
|
@ -509,7 +509,7 @@ def make_forward(con_mesh):
|
||||||
# frag.write('fragColor = vec4(indirect, 1.0);') # AO view
|
# frag.write('fragColor = vec4(indirect, 1.0);') # AO view
|
||||||
|
|
||||||
if '_LDR' in wrd.world_defs:
|
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 = tonemapFilmic(fragColor.rgb);')
|
||||||
# frag.write('fragColor.rgb = pow(fragColor.rgb, vec3(1.0 / 2.2));')
|
# 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.add_uniform('vec3 eye', '_cameraPosition')
|
||||||
vert.write('eyeDir = eye - wposition;')
|
vert.write('eyeDir = eye - wposition;')
|
||||||
|
|
||||||
frag.add_include('../../Shaders/std/brdf.glsl')
|
frag.add_include('std/brdf.glsl')
|
||||||
frag.add_include('../../Shaders/std/math.glsl')
|
frag.add_include('std/math.glsl')
|
||||||
frag.add_uniform('vec3 lightColor', '_lampColor')
|
frag.add_uniform('vec3 lightColor', '_lampColor')
|
||||||
frag.add_uniform('vec3 lightDir', '_lampDirection')
|
frag.add_uniform('vec3 lightDir', '_lampDirection')
|
||||||
frag.add_uniform('vec3 lightPos', '_lampPosition')
|
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')
|
frag.add_uniform('float envmapStrength', link='_envmapStrength')
|
||||||
|
|
||||||
if '_Irr' in wrd.world_defs:
|
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)
|
frag.add_uniform('vec4 shirr[7]', link='_envmapIrradiance', included=True)
|
||||||
if '_Rad' in wrd.world_defs:
|
if '_Rad' in wrd.world_defs:
|
||||||
frag.add_uniform('sampler2D senvmapRadiance', link='_envmapRadiance')
|
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.add_uniform('mat4 LWVP', '_biasLampWorldViewProjectionMatrix')
|
||||||
vert.write('if (lightShadow == 1) lampPos = LWVP * spos;')
|
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('sampler2D shadowMap', included=True)
|
||||||
frag.add_uniform('samplerCube shadowMapCube', included=True)
|
frag.add_uniform('samplerCube shadowMapCube', included=True)
|
||||||
frag.add_uniform('bool receiveShadow')
|
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 (receiveShadow) {')
|
||||||
frag.write(' if (lightShadow == 1) {')
|
frag.write(' if (lightShadow == 1) {')
|
||||||
if '_CSM' in wrd.world_defs:
|
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('vec4 casData[shadowmapCascades * 4 + 4]', '_cascadeData', included=True)
|
||||||
frag.add_uniform('vec3 eye', '_cameraPosition')
|
frag.add_uniform('vec3 eye', '_cameraPosition')
|
||||||
frag.write('vec2 smSize;')
|
frag.write('vec2 smSize;')
|
||||||
|
@ -646,7 +646,7 @@ def make_forward_base(con_mesh, parse_opacity=False):
|
||||||
frag.write('vec3 direct;')
|
frag.write('vec3 direct;')
|
||||||
|
|
||||||
if '_LTC' in wrd.world_defs:
|
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 sltcMat', link='_ltcMat')
|
||||||
frag.add_uniform('sampler2D sltcMag', link='_ltcMag')
|
frag.add_uniform('sampler2D sltcMag', link='_ltcMag')
|
||||||
frag.add_uniform('vec3 lampArea0', link='_lampArea0')
|
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;')
|
frag.write('vec3 indirect = albedo;')
|
||||||
|
|
||||||
if '_VoxelGI' in wrd.world_defs or '_VoxelAO' in wrd.world_defs:
|
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)
|
frag.add_uniform('sampler3D voxels', included=True)
|
||||||
if '_VoxelGICam' in wrd.world_defs:
|
if '_VoxelGICam' in wrd.world_defs:
|
||||||
frag.add_uniform('vec3 eyeSnap', link='_cameraPositionSnap')
|
frag.add_uniform('vec3 eyeSnap', link='_cameraPositionSnap')
|
||||||
|
|
|
@ -41,12 +41,12 @@ def make_rect(con_rect):
|
||||||
|
|
||||||
frag.ins = vert.outs
|
frag.ins = vert.outs
|
||||||
frag.add_out('vec4 fragColor')
|
frag.add_out('vec4 fragColor')
|
||||||
frag.add_include('../../Shaders/compiled.glsl')
|
frag.add_include('compiled.glsl')
|
||||||
frag.add_include('../../Shaders/std/brdf.glsl')
|
frag.add_include('std/brdf.glsl')
|
||||||
frag.add_include('../../Shaders/std/math.glsl')
|
frag.add_include('std/math.glsl')
|
||||||
frag.add_include('../../Shaders/std/gbuffer.glsl')
|
frag.add_include('std/gbuffer.glsl')
|
||||||
frag.add_include('../../Shaders/std/shirr.glsl')
|
frag.add_include('std/shirr.glsl')
|
||||||
frag.add_include('../../Shaders/std/shadows.glsl')
|
frag.add_include('std/shadows.glsl')
|
||||||
|
|
||||||
frag.add_uniform('sampler2D gbuffer0')
|
frag.add_uniform('sampler2D gbuffer0')
|
||||||
frag.add_uniform('sampler2D gbuffer1')
|
frag.add_uniform('sampler2D gbuffer1')
|
||||||
|
|
|
@ -30,7 +30,7 @@ def build(material, mat_users, mat_armusers):
|
||||||
wrd = bpy.data.worlds['Arm']
|
wrd = bpy.data.worlds['Arm']
|
||||||
rpasses = mat_utils.get_rpasses(material)
|
rpasses = mat_utils.get_rpasses(material)
|
||||||
matname = arm.utils.safesrc(arm.utils.asset_name(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
|
full_path = arm.utils.get_fp() + '/' + rel_path
|
||||||
if not os.path.exists(full_path):
|
if not os.path.exists(full_path):
|
||||||
os.makedirs(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())
|
arm.utils.write_arm(full_path + '/' + matname + '_data.arm', mat_state.data.get())
|
||||||
shader_data_name = matname + '_data'
|
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)
|
assets.add_shader_data(shader_data_path)
|
||||||
|
|
||||||
return rpasses, mat_state.data, shader_data_name, bind_constants, bind_textures
|
return rpasses, mat_state.data, shader_data_name, bind_constants, bind_textures
|
||||||
|
|
|
@ -2,16 +2,16 @@ import bpy
|
||||||
|
|
||||||
def skin_pos(vert):
|
def skin_pos(vert):
|
||||||
|
|
||||||
vert.add_include('../../Shaders/compiled.glsl')
|
vert.add_include('compiled.glsl')
|
||||||
|
|
||||||
if bpy.data.worlds['Arm'].arm_skin == 'GPU (Matrix)':
|
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.add_uniform('vec4 skinBones[skinMaxBones * 3]', link='_skinBones', included=True)
|
||||||
vert.write('mat4 skinningMat = getSkinningMat(ivec4(bone), weight);')
|
vert.write('mat4 skinningMat = getSkinningMat(ivec4(bone), weight);')
|
||||||
vert.write('spos *= skinningMat;')
|
vert.write('spos *= skinningMat;')
|
||||||
|
|
||||||
else: # Dual Quat
|
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.add_uniform('vec4 skinBones[skinMaxBones * 2]', link='_skinBones', included=True)
|
||||||
vert.write('vec4 skinA;')
|
vert.write('vec4 skinA;')
|
||||||
vert.write('vec4 skinB;')
|
vert.write('vec4 skinB;')
|
||||||
|
|
|
@ -27,9 +27,9 @@ def make_gi(context_id):
|
||||||
geom.ins = vert.outs
|
geom.ins = vert.outs
|
||||||
frag.ins = geom.outs
|
frag.ins = geom.outs
|
||||||
|
|
||||||
frag.add_include('../../Shaders/compiled.glsl')
|
frag.add_include('compiled.glsl')
|
||||||
frag.add_include('../../Shaders/std/math.glsl')
|
frag.add_include('std/math.glsl')
|
||||||
frag.add_include('../../Shaders/std/imageatomic.glsl')
|
frag.add_include('std/imageatomic.glsl')
|
||||||
frag.write_header('#extension GL_ARB_shader_image_load_store : enable')
|
frag.write_header('#extension GL_ARB_shader_image_load_store : enable')
|
||||||
|
|
||||||
rpdat = arm.utils.get_rp()
|
rpdat = arm.utils.get_rp()
|
||||||
|
@ -60,7 +60,7 @@ def make_gi(context_id):
|
||||||
frag.write('if (dotNL == 0.0) return;')
|
frag.write('if (dotNL == 0.0) return;')
|
||||||
|
|
||||||
if is_shadows:
|
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('sampler2D shadowMap', included=True)
|
||||||
frag.add_uniform('samplerCube shadowMapCube', included=True)
|
frag.add_uniform('samplerCube shadowMapCube', included=True)
|
||||||
frag.add_uniform('int lightShadow', '_lampCastShadow')
|
frag.add_uniform('int lightShadow', '_lampCastShadow')
|
||||||
|
@ -83,7 +83,7 @@ def make_gi(context_id):
|
||||||
# frag.write('}')
|
# frag.write('}')
|
||||||
|
|
||||||
# if '_LTC' in wrd.world_defs:
|
# 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 sltcMat', link='_ltcMat')
|
||||||
# frag.add_uniform('sampler2D sltcMag', link='_ltcMag')
|
# frag.add_uniform('sampler2D sltcMag', link='_ltcMag')
|
||||||
# frag.add_uniform('vec3 lampArea0', link='_lampArea0')
|
# 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 voxpositionGeom')
|
||||||
vert.add_out('vec3 wnormalGeom')
|
vert.add_out('vec3 wnormalGeom')
|
||||||
|
|
||||||
vert.add_include('../../Shaders/compiled.glsl')
|
vert.add_include('compiled.glsl')
|
||||||
|
|
||||||
if con_voxel.is_elem('col'):
|
if con_voxel.is_elem('col'):
|
||||||
vert.add_out('vec3 vcolorGeom')
|
vert.add_out('vec3 vcolorGeom')
|
||||||
|
@ -167,8 +167,8 @@ def make_gi(context_id):
|
||||||
if is_shadows:
|
if is_shadows:
|
||||||
vert.add_out('vec4 lampPosGeom')
|
vert.add_out('vec4 lampPosGeom')
|
||||||
if '_CSM' in wrd.world_defs:
|
if '_CSM' in wrd.world_defs:
|
||||||
vert.add_include('../../Shaders/compiled.glsl')
|
vert.add_include('compiled.glsl')
|
||||||
vert.add_include('../../Shaders/std/shadows.glsl')
|
vert.add_include('std/shadows.glsl')
|
||||||
vert.add_uniform('vec4 casData[shadowmapCascades * 4 + 4]', '_cascadeData', included=True)
|
vert.add_uniform('vec4 casData[shadowmapCascades * 4 + 4]', '_cascadeData', included=True)
|
||||||
# TODO: Using second cascade
|
# TODO: Using second cascade
|
||||||
vert.write('mat4 LWVP = mat4(casData[4 + 0], casData[4 + 1], casData[4 + 2], casData[4 + 3]);')
|
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
|
geom.ins = vert.outs
|
||||||
frag.ins = geom.outs
|
frag.ins = geom.outs
|
||||||
|
|
||||||
frag.add_include('../../Shaders/compiled.glsl')
|
frag.add_include('compiled.glsl')
|
||||||
frag.add_include('../../Shaders/std/math.glsl')
|
frag.add_include('std/math.glsl')
|
||||||
frag.add_include('../../Shaders/std/imageatomic.glsl')
|
frag.add_include('std/imageatomic.glsl')
|
||||||
frag.write_header('#extension GL_ARB_shader_image_load_store : enable')
|
frag.write_header('#extension GL_ARB_shader_image_load_store : enable')
|
||||||
|
|
||||||
rpdat = arm.utils.get_rp()
|
rpdat = arm.utils.get_rp()
|
||||||
# frag.add_uniform('layout(r32ui) uimage3D voxels')
|
# frag.add_uniform('layout(r32ui) uimage3D voxels')
|
||||||
frag.add_uniform('layout(r8) image3D 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_uniform('mat4 W', '_worldMatrix')
|
||||||
vert.add_out('vec3 voxpositionGeom')
|
vert.add_out('vec3 voxpositionGeom')
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue