Higher range for emission
This commit is contained in:
parent
6500b19bb4
commit
2d8dd9c59b
|
@ -22,9 +22,10 @@ void main() {
|
|||
col += texture(tex, vec2(texCoord.x, texCoord.y + texStep.y * 1.5));
|
||||
col /= 4.0;
|
||||
|
||||
float brightness = dot(col.rgb, vec3(0.2126, 0.7152, 0.0722));
|
||||
if (brightness > bloomThreshold) {
|
||||
fragColor.rgb = vec3(col.rgb / 2);
|
||||
// float brightness = dot(col.rgb, vec3(0.2126, 0.7152, 0.0722));
|
||||
// if (brightness > bloomThreshold) {
|
||||
if (col.r + col.g + col.b > bloomThreshold) {
|
||||
fragColor.rgb = col.rgb;
|
||||
return;
|
||||
}
|
||||
fragColor.rgb = vec3(0.0);
|
||||
|
|
|
@ -21,7 +21,7 @@ out vec4 fragColor;
|
|||
const float weight[20] = float[] (0.06649, 0.065575, 0.062905, 0.058694, 0.053269, 0.047023, 0.040375, 0.033719, 0.027391, 0.021642, 0.016633, 0.012433, 0.00904, 0.006393, 0.004398, 0.002943, 0.001915, 0.001212, 0.000746, 0.000447);
|
||||
|
||||
void main() {
|
||||
vec2 step = dir / 100.0 * bloomRadius; //screenSize.xy;
|
||||
vec2 step = dir / 200.0 * bloomRadius; //screenSize.xy;
|
||||
|
||||
fragColor.rgb = texture(tex, texCoord).rgb * weight[0];
|
||||
|
||||
|
@ -83,5 +83,5 @@ void main() {
|
|||
fragColor.rgb += texture(tex, texCoord + step * 19.5).rgb * weight[19];
|
||||
fragColor.rgb += texture(tex, texCoord - step * 19.5).rgb * weight[19];
|
||||
|
||||
fragColor.rgb *= bloomStrength / 4;
|
||||
fragColor.rgb *= bloomStrength / 40;
|
||||
}
|
||||
|
|
|
@ -81,7 +81,7 @@ void main() {
|
|||
vec4 indirectDiffuse = indirectDiffuseLight(n, wpos);
|
||||
|
||||
vec3 reflectWorld = reflect(-v, n);
|
||||
vec3 indirectSpecular = traceSpecularVoxelCone(wpos, reflectWorld, n, metrough.y * 10.0);
|
||||
vec3 indirectSpecular = traceSpecularVoxelCone(wpos, reflectWorld, n, metrough.y * 12.0);
|
||||
indirectSpecular *= f0 * envBRDF.x + envBRDF.y;
|
||||
|
||||
fragColor.rgb = indirectDiffuse.rgb * voxelgiDiff * g1.rgb + indirectSpecular * voxelgiSpec;
|
||||
|
|
|
@ -30,6 +30,9 @@ vec4 traceDiffuseVoxelCone(const vec3 from, vec3 direction) {
|
|||
float level = log2(l);
|
||||
float ll = (level + 1.0) * (level + 1.0);
|
||||
vec4 voxel = textureLod(voxels, c, min(MAX_MIPMAP, level));
|
||||
#ifdef _Cycles
|
||||
voxel.rgb *= 10.0; // Higher range to allow emission
|
||||
#endif
|
||||
acc += 0.075 * ll * voxel * pow(1.0 - voxel.a, 2.0);
|
||||
dist += ll * VOXEL_SIZE * 2.0;
|
||||
}
|
||||
|
|
|
@ -189,7 +189,7 @@ def parse_shader(node, socket):
|
|||
out_emission = parse_vector_input(node.inputs[8])
|
||||
parsing_basecolor(False)
|
||||
if node.inputs[9].is_linked or node.inputs[9].default_value != 1.0:
|
||||
out_emission = '({0} * {1})'.format(out_emission, parse_value_input(node.inputs[9]))
|
||||
out_emission = '({0} * {1} * 10.0)'.format(out_emission, parse_value_input(node.inputs[9]))
|
||||
out_basecol = '({0} + {1})'.format(out_basecol, out_emission)
|
||||
|
||||
if parse_opacity:
|
||||
|
|
|
@ -115,11 +115,10 @@ def make(context_id):
|
|||
geom.write('}')
|
||||
geom.write('EndPrimitive();')
|
||||
|
||||
if wrd.lighting_model == 'Cycles':
|
||||
frag.write('basecol /= 10.0;') # Higher range to allow emission
|
||||
|
||||
|
||||
frag.write('vec3 color;')
|
||||
frag.write('if (lightShadow > 0) color = basecol * visibility * lightColor * dotNL * attenuate(distance(wposition * voxelgiDimensions.x, lightPos));')
|
||||
frag.write('else color = (basecol - 1.0);') # Emission only when no lamp or shadowmap is present
|
||||
frag.write('vec3 color = basecol * visibility * lightColor * dotNL * attenuate(distance(wposition * voxelgiDimensions.x, lightPos));')
|
||||
frag.write('vec3 voxel = wposition * 0.5 + vec3(0.5);')
|
||||
frag.write('imageStore(voxels, ivec3(voxelgiResolution * voxel), vec4(color, 1.0));')
|
||||
|
||||
|
|
|
@ -402,7 +402,7 @@ def init_properties():
|
|||
bpy.types.World.voxelgi_diff = bpy.props.FloatProperty(name="Diffuse", description="", default=1.0, update=assets.invalidate_shader_cache)
|
||||
bpy.types.World.voxelgi_spec = bpy.props.FloatProperty(name="Specular", description="", default=1.0, update=assets.invalidate_shader_cache)
|
||||
bpy.types.World.voxelgi_occ = bpy.props.FloatProperty(name="Occlussion", description="", default=1.0, update=assets.invalidate_shader_cache)
|
||||
bpy.types.World.voxelgi_env = bpy.props.FloatProperty(name="Env Map", description="Contribute light from environment map", default=0.0, update=assets.invalidate_shader_cache)
|
||||
bpy.types.World.voxelgi_env = bpy.props.FloatProperty(name="Env Map", description="Contribute light from environment map", default=0.2, update=assets.invalidate_shader_cache)
|
||||
bpy.types.World.voxelgi_step = bpy.props.FloatProperty(name="Step", description="Step size", default=1.0, update=assets.invalidate_shader_cache)
|
||||
bpy.types.World.voxelgi_range = bpy.props.FloatProperty(name="Range", description="Maximum range", default=1.0, update=assets.invalidate_shader_cache)
|
||||
bpy.types.World.sss_width = bpy.props.FloatProperty(name="SSS Width", description="SSS blur strength", default=1.0, update=assets.invalidate_shader_cache)
|
||||
|
@ -459,9 +459,9 @@ def init_properties():
|
|||
bpy.types.World.generate_ssao_strength = bpy.props.FloatProperty(name="Strength", default=0.2, update=assets.invalidate_shader_cache)
|
||||
bpy.types.World.generate_ssao_half_res = bpy.props.BoolProperty(name="Half Res", description="Trace in half resolution", default=False, update=assets.invalidate_shader_cache) # TODO: Refactor as quality enum
|
||||
bpy.types.World.generate_bloom = bpy.props.BoolProperty(name="Bloom", default=True, update=assets.invalidate_shader_cache)
|
||||
bpy.types.World.generate_bloom_threshold = bpy.props.FloatProperty(name="Threshold", default=20.0, update=assets.invalidate_shader_cache)
|
||||
bpy.types.World.generate_bloom_strength = bpy.props.FloatProperty(name="Strength", default=0.5, update=assets.invalidate_shader_cache)
|
||||
bpy.types.World.generate_bloom_radius = bpy.props.FloatProperty(name="Radius", default=0.5, update=assets.invalidate_shader_cache)
|
||||
bpy.types.World.generate_bloom_threshold = bpy.props.FloatProperty(name="Threshold", default=5.0, update=assets.invalidate_shader_cache)
|
||||
bpy.types.World.generate_bloom_strength = bpy.props.FloatProperty(name="Strength", default=1.0, update=assets.invalidate_shader_cache)
|
||||
bpy.types.World.generate_bloom_radius = bpy.props.FloatProperty(name="Radius", default=1.0, update=assets.invalidate_shader_cache)
|
||||
bpy.types.World.generate_motion_blur = bpy.props.BoolProperty(name="Motion Blur", default=True, update=assets.invalidate_shader_cache)
|
||||
bpy.types.World.generate_motion_blur_intensity = bpy.props.FloatProperty(name="Intensity", default=1.0, update=assets.invalidate_shader_cache)
|
||||
bpy.types.World.generate_ssr = bpy.props.BoolProperty(name="SSR", description="Screen-Space Reflections", default=True, update=assets.invalidate_shader_cache)
|
||||
|
|
Loading…
Reference in a new issue