/usr/src/castle-game-engine-4.1.1/x3d/opengl/glsl/template.vs is in castle-game-engine-src 4.1.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | /* Generic GLSL vertex shader.
Used by glrenderershader.pas to construct the final shader.
This is converted to template.vs.inc, and is then compiled
in program's binary.
When you change this file, rerun `make' and then recompile Pascal sources.
*/
/* PLUG-DECLARATIONS */
varying vec4 castle_vertex_eye;
varying vec3 castle_normal_eye;
void main(void)
{
vec4 vertex_object = gl_Vertex;
vec3 normal_object = gl_Normal;
/* PLUG: vertex_object_space_change (vertex_object, normal_object) */
/* PLUG: vertex_object_space (vertex_object, normal_object) */
castle_vertex_eye = gl_ModelViewMatrix * vertex_object;
/* Although we will normalize it again in the fragment shader
(otherwise interpolated result could be shorter < 1, imagine a case
when normals point the almost opposite directions on the opposite
vertexes), we also have to normalize it in vertex shader (otherwise
a much longer normal on one vertex would pull all the interpolated
normals, thus making their direction invalid in fragment shaders). */
castle_normal_eye = normalize(gl_NormalMatrix * normal_object);
/* PLUG: vertex_eye_space (castle_vertex_eye, castle_normal_eye) */
#ifndef LIT
gl_FrontColor = gl_Color;
gl_BackColor = gl_Color;
#endif
#ifdef VERTEX_OBJECT_SPACE_CHANGED
gl_Position = gl_ProjectionMatrix * castle_vertex_eye;
#else
gl_Position = ftransform();
#endif
}
|