1/*
2 Copyright (c) 2013 yvt
3
4 This file is part of OpenSpades.
5
6 OpenSpades is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 OpenSpades is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with OpenSpades.  If not, see <http://www.gnu.org/licenses/>.
18
19 */
20
21
22
23uniform mat4 modelMatrix;
24uniform mat4 modelNormalMatrix;
25uniform vec3 modelOrigin;
26
27// [x, y, z, AO ID]
28attribute vec4 positionAttribute;
29
30// [x, y, z]
31attribute vec3 normalAttribute;
32
33varying vec4 color;
34varying vec3 fogDensity;
35//varying vec2 detailCoord;
36
37void PrepareForShadowMapRender(vec3 position, vec3 normal);
38
39void main() {
40
41	vec4 vertexPos = vec4(positionAttribute.xyz, 1.);
42
43	vertexPos.xyz += modelOrigin;
44
45	// direct sunlight
46	vec3 normal = normalAttribute;
47	normal = (modelNormalMatrix * vec4(normal, 1.)).xyz;
48	normal = normalize(normal);
49
50	PrepareForShadowMapRender((modelMatrix * vertexPos).xyz, normal);
51}
52
53