Skip to content

Commit

Permalink
Merged in oak_tree_shadows (pull request #312)
Browse files Browse the repository at this point in the history
Fix oak tree shadows

Approved-by: Louise Poubel <[email protected]>
  • Loading branch information
chapulina committed Nov 18, 2017
2 parents 57cbdab + a7782e6 commit 12134a9
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 0 deletions.
16 changes: 16 additions & 0 deletions oak_tree/materials/scripts/caster_fp.glsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
varying vec4 vertex_depth;

uniform sampler2D tex;
varying vec2 uv;

void main()
{
if (texture2D(tex, uv).a < 0.5)
{
discard;
}

float depth = (vertex_depth.z) / vertex_depth.w;

gl_FragColor = vec4(depth, depth, depth, 1.0);
}
16 changes: 16 additions & 0 deletions oak_tree/materials/scripts/caster_vp.glsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
uniform mat4 world_view_proj_mat;
uniform vec4 texel_offsets;

varying vec4 vertex_depth;

varying vec2 uv;

void main()
{
vertex_depth = world_view_proj_mat * gl_Vertex;
gl_Position = vertex_depth;
gl_Position.xy += texel_offsets.zw * gl_Position.w;

uv = gl_MultiTexCoord0.xy;
}

57 changes: 57 additions & 0 deletions oak_tree/materials/scripts/oak_tree.material
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ material OakTree/Branch
{
technique
{
shadow_caster_material "OakTree/shadow_caster_alpha"

pass
{
alpha_rejection greater 128
Expand All @@ -27,3 +29,58 @@ material OakTree/Bark
}
}
}

vertex_program caster_vp_glsl glsl
{
source caster_vp.glsl

default_params
{
param_named_auto world_view_proj_mat worldviewproj_matrix
param_named_auto texel_offsets texel_offsets
}

}

fragment_program caster_fp_glsl glsl
{
source caster_fp.glsl

default_params
{
param_named tex int 0
}
}


material OakTree/shadow_caster_alpha
{
transparency_casts_shadows on
technique
{
pass
{
// See: viewtopic.php?f=3&t=44817
fog_override true

cull_hardware none
cull_software none

alpha_rejection always_pass

vertex_program_ref caster_vp_glsl
{
}

fragment_program_ref caster_fp_glsl
{
}

texture_unit tex
{
// Pass the texture with alpha channel to the caster
texture branch_diffuse.png
}
}
}
}

0 comments on commit 12134a9

Please sign in to comment.