This commit is contained in:
Lubos Lenco 2017-11-17 14:51:06 +01:00
commit 4be64e354b
6 changed files with 30 additions and 19 deletions

View file

@ -19,8 +19,7 @@ out vec4 fragColor;
const float weight[10] = float[] (0.132572, 0.125472, 0.106373, 0.08078, 0.05495, 0.033482, 0.018275, 0.008934, 0.003912, 0.001535);
void main() {
vec2 step = (dir / screenSize.xy / 4) * bloomRadius * 2.0;
// vec2 step = (dir / 200) * bloomRadius;
vec2 step = (dir / screenSize.xy) * bloomRadius;
fragColor.rgb = texture(tex, texCoord).rgb * weight[0];
@ -43,5 +42,5 @@ void main() {
fragColor.rgb += texture(tex, texCoord + step * 9.5).rgb * weight[9];
fragColor.rgb += texture(tex, texCoord - step * 9.5).rgb * weight[9];
fragColor.rgb *= bloomStrength / 10;
fragColor.rgb *= bloomStrength / 5;
}

View file

@ -2241,26 +2241,31 @@ class ArmoryExporter:
o['color_texture'] = color_node.image.name
break
else:
o['color'] = [1.0, 1.0, 1.0]
# o['color'] = [1.0, 1.0, 1.0]
o['color'] = [objref.color[0], objref.color[1], objref.color[2]]
o['strength'] = 100.0 * 0.026
o['type'] = 'point'
self.output['lamp_datas'].append(o)
def get_camera_clear_color(self):
if self.scene.world != None and self.scene.world.node_tree != None and 'Background' in self.scene.world.node_tree.nodes: # TODO: parse node tree
background_node = self.scene.world.node_tree.nodes['Background']
col = background_node.inputs[0].default_value
strength = background_node.inputs[1].default_value
ar = [col[0] * strength, col[1] * strength, col[2] * strength, col[3]]
ar[0] = max(min(ar[0], 1.0), 0.0)
ar[1] = max(min(ar[1], 1.0), 0.0)
ar[2] = max(min(ar[2], 1.0), 0.0)
ar[3] = max(min(ar[3], 1.0), 0.0)
return ar
if self.scene.world != None and self.scene.world.node_tree != None:
if 'Background' in self.scene.world.node_tree.nodes: # TODO: parse node tree
background_node = self.scene.world.node_tree.nodes['Background']
col = background_node.inputs[0].default_value
strength = background_node.inputs[1].default_value
ar = [col[0] * strength, col[1] * strength, col[2] * strength, col[3]]
ar[0] = max(min(ar[0], 1.0), 0.0)
ar[1] = max(min(ar[1], 1.0), 0.0)
ar[2] = max(min(ar[2], 1.0), 0.0)
ar[3] = max(min(ar[3], 1.0), 0.0)
return ar
else:
return [0.051, 0.051, 0.051, 1.0]
else:
return [0.051, 0.051, 0.051, 1.0]
c = self.scene.world.horizon_color
return [c[0], c[1], c[2], 1.0]
def extract_projection(self, o, proj, with_planes=True):
a = proj[0][0]
b = proj[1][1]

View file

@ -381,6 +381,10 @@ def make_bloom_pass(stages, node_group, node):
make_quad_pass(stages, node_group, node, target_index=3, bind_target_indices=[2], bind_target_constants=['tex'], shader_context='blur_gaus_pass/blur_gaus_pass/blur_gaus_pass_x')
make_quad_pass(stages, node_group, node, target_index=2, bind_target_indices=[3], bind_target_constants=['tex'], shader_context='blur_gaus_pass/blur_gaus_pass/blur_gaus_pass_y')
make_quad_pass(stages, node_group, node, target_index=3, bind_target_indices=[2], bind_target_constants=['tex'], shader_context='blur_gaus_pass/blur_gaus_pass/blur_gaus_pass_x')
make_quad_pass(stages, node_group, node, target_index=2, bind_target_indices=[3], bind_target_constants=['tex'], shader_context='blur_gaus_pass/blur_gaus_pass/blur_gaus_pass_y')
make_quad_pass(stages, node_group, node, target_index=3, bind_target_indices=[2], bind_target_constants=['tex'], shader_context='blur_gaus_pass/blur_gaus_pass/blur_gaus_pass_x')
make_quad_pass(stages, node_group, node, target_index=2, bind_target_indices=[3], bind_target_constants=['tex'], shader_context='blur_gaus_pass/blur_gaus_pass/blur_gaus_pass_y')
make_quad_pass(stages, node_group, node, target_index=3, bind_target_indices=[2], bind_target_constants=['tex'], shader_context='blur_gaus_pass/blur_gaus_pass/blur_gaus_pass_x')
make_quad_pass(stages, node_group, node, target_index=1, bind_target_indices=[3], bind_target_constants=['tex'], shader_context='blur_gaus_pass/blur_gaus_pass/blur_gaus_pass_y_blend')
def make_motion_blur_pass(stages, node_group, node):

View file

@ -54,8 +54,11 @@ def build_node_tree(world):
envmap_strength_const['name'] = 'envmapStrength'
envmap_strength_const['float'] = 1.0
context['bind_constants'].append(envmap_strength_const)
world.arm_envtex_color = [0.051, 0.051, 0.051, 1.0]
# world.arm_envtex_color = [0.051, 0.051, 0.051, 1.0]
c = world.horizon_color
world.arm_envtex_color = [c[0], c[1], c[2], 1.0]
world.arm_envtex_strength = envmap_strength_const['float']
# Clear to color if no texture or sky is provided
if '_EnvSky' not in wrd.world_defs and '_EnvTex' not in wrd.world_defs:

View file

@ -289,8 +289,8 @@ def init_properties():
],
name="SSGI Rays", description="Number of rays to trace for RTAO/RTGI", default='5', update=assets.invalidate_shader_cache)
bpy.types.World.arm_bloom_threshold = bpy.props.FloatProperty(name="Threshold", default=1.0, update=assets.invalidate_shader_cache)
bpy.types.World.arm_bloom_strength = bpy.props.FloatProperty(name="Strength", default=5.0, update=assets.invalidate_shader_cache)
bpy.types.World.arm_bloom_radius = bpy.props.FloatProperty(name="Radius", default=5.0, update=assets.invalidate_shader_cache)
bpy.types.World.arm_bloom_strength = bpy.props.FloatProperty(name="Strength", default=3.5, update=assets.invalidate_shader_cache)
bpy.types.World.arm_bloom_radius = bpy.props.FloatProperty(name="Radius", default=3.0, update=assets.invalidate_shader_cache)
bpy.types.World.arm_motion_blur_intensity = bpy.props.FloatProperty(name="Intensity", default=1.0, update=assets.invalidate_shader_cache)
bpy.types.World.arm_ssr_ray_step = bpy.props.FloatProperty(name="Ray Step", default=0.04, update=assets.invalidate_shader_cache)
bpy.types.World.arm_ssr_min_ray_step = bpy.props.FloatProperty(name="Ray Step Min", default=0.05, update=assets.invalidate_shader_cache)

Binary file not shown.