|
@@ -0,0 +1,49 @@ |
|
|
|
|
|
|
|
|
|
|
|
[vert.glsl] |
|
|
|
|
|
#version 120 |
|
|
|
|
|
|
|
|
|
|
|
attribute vec3 in_vertex; |
|
|
|
|
|
attribute vec4 in_color; |
|
|
|
|
|
attribute vec4 in_texcoord; |
|
|
|
|
|
|
|
|
|
|
|
uniform mat4 in_model_view; |
|
|
|
|
|
uniform mat3 in_normal_mat; |
|
|
|
|
|
uniform mat4 in_proj; |
|
|
|
|
|
|
|
|
|
|
|
varying vec4 pass_texcoord; |
|
|
|
|
|
varying vec4 pass_color; |
|
|
|
|
|
|
|
|
|
|
|
void main(void) |
|
|
|
|
|
{ |
|
|
|
|
|
vec4 vertex = in_model_view * vec4(in_vertex - vec3(0.0,0.5,0.0), 1.0); |
|
|
|
|
|
|
|
|
|
|
|
//Billboard calculations |
|
|
|
|
|
vertex.x += (1.0 * in_texcoord.z); |
|
|
|
|
|
vertex.y += (- 1.0 * in_texcoord.w); |
|
|
|
|
|
|
|
|
|
|
|
//pass datas |
|
|
|
|
|
pass_texcoord = in_texcoord; |
|
|
|
|
|
pass_color = in_color; |
|
|
|
|
|
|
|
|
|
|
|
gl_Position = in_proj * vertex; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[frag.glsl] |
|
|
|
|
|
#version 120 |
|
|
|
|
|
|
|
|
|
|
|
#if defined GL_ES |
|
|
|
|
|
precision highp float; |
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
uniform sampler2D in_texture; |
|
|
|
|
|
|
|
|
|
|
|
varying vec4 pass_texcoord; |
|
|
|
|
|
varying vec4 pass_color; |
|
|
|
|
|
|
|
|
|
|
|
const float cos_45 = 0.70710678118; |
|
|
|
|
|
const float PI = 3.14159265358979323846264; |
|
|
|
|
|
|
|
|
|
|
|
void main(void) |
|
|
|
|
|
{ |
|
|
|
|
|
gl_FragColor = texture2D(in_texture, pass_texcoord.xy) * pass_color; |
|
|
|
|
|
} |