2024-08-24 13:24:44 +00:00
|
|
|
#include "model_vs.glsl"
|
2024-08-23 15:57:19 +00:00
|
|
|
|
|
|
|
// lights
|
2024-08-24 13:04:33 +00:00
|
|
|
#include "light.glsl"
|
2024-03-26 16:15:02 +00:00
|
|
|
|
|
|
|
void main() {
|
2024-08-24 13:24:44 +00:00
|
|
|
vec3 objPos = get_object_pos();
|
2024-03-26 16:15:02 +00:00
|
|
|
|
|
|
|
v_normal_ws = normalize(vec3(att_instanced_matrix * vec4(v_normal, 0.))); // normal to world/model space
|
|
|
|
v_normal = normalize(v_normal);
|
|
|
|
v_position = att_position;
|
|
|
|
v_texcoord = att_texcoord;
|
|
|
|
v_texcoord2 = att_texcoord2;
|
|
|
|
v_color = att_color;
|
|
|
|
mat4 modelView = view * att_instanced_matrix;
|
|
|
|
mat4 l_model = att_instanced_matrix;
|
|
|
|
v_position_ws = (l_model * vec4( objPos, 1.0 )).xyz;
|
|
|
|
|
2024-08-24 13:24:44 +00:00
|
|
|
setup_billboards(modelView, l_model);
|
|
|
|
|
2024-03-26 16:15:02 +00:00
|
|
|
v_position_ws = (l_model * vec4( objPos, 1.0 )).xyz;
|
|
|
|
v_tangent = normalize(mat3(att_instanced_matrix) * att_tangent.xyz);
|
2024-08-24 13:24:44 +00:00
|
|
|
|
2024-03-26 16:15:02 +00:00
|
|
|
#if 0
|
|
|
|
// compute tangent T and bitangent B
|
|
|
|
vec3 Q1 = dFdx(att_position);
|
|
|
|
vec3 Q2 = dFdy(att_position);
|
|
|
|
vec2 st1 = dFdx(att_texcoord);
|
|
|
|
vec2 st2 = dFdy(att_texcoord);
|
|
|
|
|
|
|
|
vec3 T = normalize(Q1*st2.t - Q2*st1.t);
|
|
|
|
vec3 B = normalize(-Q1*st2.s + Q2*st1.s);
|
|
|
|
vec3 binormal = B;
|
|
|
|
#else
|
|
|
|
vec3 binormal = cross(att_normal, att_tangent.xyz) * att_tangent.w;
|
|
|
|
#endif
|
2024-08-24 13:24:44 +00:00
|
|
|
|
2024-03-26 16:15:02 +00:00
|
|
|
v_binormal = normalize(mat3(att_instanced_matrix) * binormal);
|
2024-08-24 13:24:44 +00:00
|
|
|
|
2024-03-26 16:15:02 +00:00
|
|
|
vec4 finalPos = modelView * vec4( objPos, 1.0 );
|
|
|
|
vec3 to_camera = normalize( -finalPos.xyz );
|
|
|
|
v_to_camera = mat3( inv_view ) * to_camera;
|
2024-08-23 15:57:19 +00:00
|
|
|
v_vertcolor = lighting();
|
2024-03-26 16:15:02 +00:00
|
|
|
gl_Position = P * finalPos;
|
|
|
|
do_shadow();
|
2023-11-06 08:30:19 +00:00
|
|
|
}
|