Update leenkx/blender/lnx/material/make_voxel.py

This commit is contained in:
Onek8 2025-04-07 16:34:12 +00:00
parent 304a497565
commit 41c1459c4e

View File

@ -143,6 +143,7 @@ def make_gi(context_id):
geom.add_out('vec4 lightPosition')
geom.add_out('vec4 spotPosition')
geom.add_out('vec4 wvpposition')
geom.add_out('vec3 eyeDir')
if con_voxel.is_elem('col'):
geom.add_out('vec3 vcolor')
@ -185,6 +186,7 @@ def make_gi(context_id):
geom.write('mposition = mpositionGeom[i];')
if export_bpos:
geom.write('bposition = bpositionGeom[i];')
geom.write(' eyeDir = eyeDirGeom[i];')
geom.write(' gl_Position = voxposition[i];')
geom.write(' EmitVertex();')
geom.write('}')
@ -209,8 +211,9 @@ def make_gi(context_id):
frag.write('vec3 albedo = surfaceAlbedo(basecol, metallic);')
frag.write('vec3 f0 = surfaceF0(basecol, metallic);')
frag.add_uniform('vec3 eye', '_cameraPosition')
frag.write('vec3 eyeDir = eye - wposition;')
vert.add_uniform('vec3 eye', '_cameraPosition')
vert.add_out('vec3 eyeDirGeom')
vert.write('eyeDirGeom = eye - pos.xyz;')
if '_Brdf' in wrd.world_defs:
frag.add_uniform('sampler2D senvmapBrdf', link='$brdf.png')
@ -219,7 +222,7 @@ def make_gi(context_id):
if '_Irr' in wrd.world_defs:
frag.add_include('std/shirr.glsl')
frag.add_uniform('vec4 shirr[7]', link='_envmapIrradiance')
frag.write('vec3 envl = shIrradiance(n, shirr);')
frag.write('vec3 envl = shIrradiance(voxnormal, shirr);')
if '_EnvTex' in wrd.world_defs:
frag.write('envl /= PI;')
else:
@ -228,7 +231,7 @@ def make_gi(context_id):
if '_Rad' in wrd.world_defs:
frag.add_uniform('sampler2D senvmapRadiance', link='_envmapRadiance')
frag.add_uniform('int envmapNumMipmaps', link='_envmapNumMipmaps')
frag.write('vec3 reflectionWorld = reflect(-eyeDir, n);')
frag.write('vec3 reflectionWorld = reflect(-normalize(eyeDir), voxnormal);')
frag.write('float lod = getMipFromRoughness(roughness, envmapNumMipmaps);')
frag.write('vec3 prefilteredColor = textureLod(senvmapRadiance, envMapEquirect(reflectionWorld), lod).rgb;')
@ -251,7 +254,7 @@ def make_gi(context_id):
frag.write('envl *= envmapStrength * occlusion;')
frag.write('if (direction_weights.x > 0) {')
frag.write(' vec4 basecol_direction = vec4(min(basecol * direction_weights.x, vec3(1.0)), 1.0);')
frag.write(' vec4 basecol_direction = vec4(basecol * direction_weights.x, 1.0);')
frag.write(' vec3 emission_direction = emissionCol * direction_weights.x;')
frag.write(' vec2 normal_direction = encode_oct(N * direction_weights.x) * 0.5 + 0.5;')
frag.write(' vec3 envl_direction = envl * direction_weights.x;')
@ -270,7 +273,7 @@ def make_gi(context_id):
frag.write('}')
frag.write('if (direction_weights.y > 0) {')
frag.write(' vec4 basecol_direction = vec4(min(basecol * direction_weights.y, vec3(1.0)), 1.0);')
frag.write(' vec4 basecol_direction = vec4(basecol * direction_weights.y, 1.0);')
frag.write(' vec3 emission_direction = emissionCol * direction_weights.y;')
frag.write(' vec2 normal_direction = encode_oct(N * direction_weights.y) * 0.5 + 0.5;')
frag.write(' vec3 envl_direction = envl * direction_weights.y;')
@ -289,7 +292,7 @@ def make_gi(context_id):
frag.write('}')
frag.write('if (direction_weights.z > 0) {')
frag.write(' vec4 basecol_direction = vec4(min(basecol * direction_weights.z, vec3(1.0)), 1.0);')
frag.write(' vec4 basecol_direction = vec4(basecol * direction_weights.z, 1.0);')
frag.write(' vec3 emission_direction = emissionCol * direction_weights.z;')
frag.write(' vec2 normal_direction = encode_oct(n * direction_weights.z) * 0.5 + 0.5;')
frag.write(' vec3 envl_direction = envl * direction_weights.z;')