picrate 2.0.0.pre-java → 2.0.1-java

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,160 +0,0 @@
1
- /*
2
- Part of the Processing project - http://processing.org
3
-
4
- Copyright (c) 2012-15 The Processing Foundation
5
- Copyright (c) 2004-12 Ben Fry and Casey Reas
6
- Copyright (c) 2001-04 Massachusetts Institute of Technology
7
-
8
- This library is free software; you can redistribute it and/or
9
- modify it under the terms of the GNU Lesser General Public
10
- License as published by the Free Software Foundation, version 2.1.
11
-
12
- This library is distributed in the hope that it will be useful,
13
- but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- Lesser General Public License for more details.
16
-
17
- You should have received a copy of the GNU Lesser General
18
- Public License along with this library; if not, write to the
19
- Free Software Foundation, Inc., 59 Temple Place, Suite 330,
20
- Boston, MA 02111-1307 USA
21
- */
22
-
23
- uniform mat4 modelviewMatrix;
24
- uniform mat4 transformMatrix;
25
- uniform mat3 normalMatrix;
26
- uniform mat4 texMatrix;
27
-
28
- uniform int lightCount;
29
- uniform vec4 lightPosition[8];
30
- uniform vec3 lightNormal[8];
31
- uniform vec3 lightAmbient[8];
32
- uniform vec3 lightDiffuse[8];
33
- uniform vec3 lightSpecular[8];
34
- uniform vec3 lightFalloff[8];
35
- uniform vec2 lightSpot[8];
36
-
37
- attribute vec4 position;
38
- attribute vec4 color;
39
- attribute vec3 normal;
40
- attribute vec2 texCoord;
41
-
42
- attribute vec4 ambient;
43
- attribute vec4 specular;
44
- attribute vec4 emissive;
45
- attribute float shininess;
46
-
47
- varying vec4 vertColor;
48
- varying vec4 backVertColor;
49
- varying vec4 vertTexCoord;
50
-
51
- const float zero_float = 0.0;
52
- const float one_float = 1.0;
53
- const vec3 zero_vec3 = vec3(0.0);
54
- const vec3 minus_one_vec3 = vec3(0.0-1.0);
55
-
56
- float falloffFactor(vec3 lightPos, vec3 vertPos, vec3 coeff) {
57
- vec3 lpv = lightPos - vertPos;
58
- vec3 dist = vec3(one_float);
59
- dist.z = dot(lpv, lpv);
60
- dist.y = sqrt(dist.z);
61
- return one_float / dot(dist, coeff);
62
- }
63
-
64
- float spotFactor(vec3 lightPos, vec3 vertPos, vec3 lightNorm, float minCos, float spotExp) {
65
- vec3 lpv = normalize(lightPos - vertPos);
66
- vec3 nln = minus_one_vec3 * lightNorm;
67
- float spotCos = dot(nln, lpv);
68
- return spotCos <= minCos ? zero_float : pow(spotCos, spotExp);
69
- }
70
-
71
- float lambertFactor(vec3 lightDir, vec3 vecNormal) {
72
- return max(zero_float, dot(lightDir, vecNormal));
73
- }
74
-
75
- float blinnPhongFactor(vec3 lightDir, vec3 vertPos, vec3 vecNormal, float shine) {
76
- vec3 np = normalize(vertPos);
77
- vec3 ldp = normalize(lightDir - np);
78
- return pow(max(zero_float, dot(ldp, vecNormal)), shine);
79
- }
80
-
81
- void main() {
82
- // Vertex in clip coordinates
83
- gl_Position = transformMatrix * position;
84
-
85
- // Vertex in eye coordinates
86
- vec3 ecVertex = vec3(modelviewMatrix * position);
87
-
88
- // Normal vector in eye coordinates
89
- vec3 ecNormal = normalize(normalMatrix * normal);
90
- vec3 ecNormalInv = ecNormal * minus_one_vec3;
91
-
92
- // Light calculations
93
- vec3 totalAmbient = vec3(0, 0, 0);
94
-
95
- vec3 totalFrontDiffuse = vec3(0, 0, 0);
96
- vec3 totalFrontSpecular = vec3(0, 0, 0);
97
-
98
- vec3 totalBackDiffuse = vec3(0, 0, 0);
99
- vec3 totalBackSpecular = vec3(0, 0, 0);
100
-
101
- // prevent register allocation failure by limiting ourselves to
102
- // two lights for now
103
- for (int i = 0; i < 2; i++) {
104
- if (lightCount == i) break;
105
-
106
- vec3 lightPos = lightPosition[i].xyz;
107
- bool isDir = lightPosition[i].w < one_float;
108
- float spotCos = lightSpot[i].x;
109
- float spotExp = lightSpot[i].y;
110
-
111
- vec3 lightDir;
112
- float falloff;
113
- float spotf;
114
-
115
- if (isDir) {
116
- falloff = one_float;
117
- lightDir = minus_one_vec3 * lightNormal[i];
118
- } else {
119
- falloff = falloffFactor(lightPos, ecVertex, lightFalloff[i]);
120
- lightDir = normalize(lightPos - ecVertex);
121
- }
122
-
123
- spotf = spotExp > zero_float ? spotFactor(lightPos, ecVertex, lightNormal[i],
124
- spotCos, spotExp)
125
- : one_float;
126
-
127
- if (any(greaterThan(lightAmbient[i], zero_vec3))) {
128
- totalAmbient += lightAmbient[i] * falloff;
129
- }
130
-
131
- if (any(greaterThan(lightDiffuse[i], zero_vec3))) {
132
- totalFrontDiffuse += lightDiffuse[i] * falloff * spotf *
133
- lambertFactor(lightDir, ecNormal);
134
- totalBackDiffuse += lightDiffuse[i] * falloff * spotf *
135
- lambertFactor(lightDir, ecNormalInv);
136
- }
137
-
138
- if (any(greaterThan(lightSpecular[i], zero_vec3))) {
139
- totalFrontSpecular += lightSpecular[i] * falloff * spotf *
140
- blinnPhongFactor(lightDir, ecVertex, ecNormal, shininess);
141
- totalBackSpecular += lightSpecular[i] * falloff * spotf *
142
- blinnPhongFactor(lightDir, ecVertex, ecNormalInv, shininess);
143
- }
144
- }
145
-
146
- // Calculating final color as result of all lights (plus emissive term).
147
- // Transparency is determined exclusively by the diffuse component.
148
- vertColor = vec4(totalAmbient, 0) * ambient +
149
- vec4(totalFrontDiffuse, 1) * color +
150
- vec4(totalFrontSpecular, 0) * specular +
151
- vec4(emissive.rgb, 0);
152
-
153
- backVertColor = vec4(totalAmbient, 0) * ambient +
154
- vec4(totalBackDiffuse, 1) * color +
155
- vec4(totalBackSpecular, 0) * specular +
156
- vec4(emissive.rgb, 0);
157
-
158
- // Calculating texture coordinates, with r and q set both to one
159
- vertTexCoord = texMatrix * vec4(texCoord, 1.0, 1.0);
160
- }
@@ -1,160 +0,0 @@
1
- /*
2
- Part of the Processing project - http://processing.org
3
-
4
- Copyright (c) 2012-15 The Processing Foundation
5
- Copyright (c) 2004-12 Ben Fry and Casey Reas
6
- Copyright (c) 2001-04 Massachusetts Institute of Technology
7
-
8
- This library is free software; you can redistribute it and/or
9
- modify it under the terms of the GNU Lesser General Public
10
- License as published by the Free Software Foundation, version 2.1.
11
-
12
- This library is distributed in the hope that it will be useful,
13
- but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- Lesser General Public License for more details.
16
-
17
- You should have received a copy of the GNU Lesser General
18
- Public License along with this library; if not, write to the
19
- Free Software Foundation, Inc., 59 Temple Place, Suite 330,
20
- Boston, MA 02111-1307 USA
21
- */
22
-
23
- uniform mat4 modelviewMatrix;
24
- uniform mat4 transformMatrix;
25
- uniform mat3 normalMatrix;
26
- uniform mat4 texMatrix;
27
-
28
- uniform int lightCount;
29
- uniform vec4 lightPosition[8];
30
- uniform vec3 lightNormal[8];
31
- uniform vec3 lightAmbient[8];
32
- uniform vec3 lightDiffuse[8];
33
- uniform vec3 lightSpecular[8];
34
- uniform vec3 lightFalloff[8];
35
- uniform vec2 lightSpot[8];
36
-
37
- attribute vec4 position;
38
- attribute vec4 color;
39
- attribute vec3 normal;
40
- attribute vec2 texCoord;
41
-
42
- attribute vec4 ambient;
43
- attribute vec4 specular;
44
- attribute vec4 emissive;
45
- attribute float shininess;
46
-
47
- varying vec4 vertColor;
48
- varying vec4 backVertColor;
49
- varying vec4 vertTexCoord;
50
-
51
- const float zero_float = 0.0;
52
- const float one_float = 1.0;
53
- const vec3 zero_vec3 = vec3(0.0);
54
- const vec3 minus_one_vec3 = vec3(0.0-1.0);
55
-
56
- float falloffFactor(vec3 lightPos, vec3 vertPos, vec3 coeff) {
57
- vec3 lpv = lightPos - vertPos;
58
- vec3 dist = vec3(one_float);
59
- dist.z = dot(lpv, lpv);
60
- dist.y = sqrt(dist.z);
61
- return one_float / dot(dist, coeff);
62
- }
63
-
64
- float spotFactor(vec3 lightPos, vec3 vertPos, vec3 lightNorm, float minCos, float spotExp) {
65
- vec3 lpv = normalize(lightPos - vertPos);
66
- vec3 nln = minus_one_vec3 * lightNorm;
67
- float spotCos = dot(nln, lpv);
68
- return spotCos <= minCos ? zero_float : pow(spotCos, spotExp);
69
- }
70
-
71
- float lambertFactor(vec3 lightDir, vec3 vecNormal) {
72
- return max(zero_float, dot(lightDir, vecNormal));
73
- }
74
-
75
- float blinnPhongFactor(vec3 lightDir, vec3 vertPos, vec3 vecNormal, float shine) {
76
- vec3 np = normalize(vertPos);
77
- vec3 ldp = normalize(lightDir - np);
78
- return pow(max(zero_float, dot(ldp, vecNormal)), shine);
79
- }
80
-
81
- void main() {
82
- // Vertex in clip coordinates
83
- gl_Position = transformMatrix * position;
84
-
85
- // Vertex in eye coordinates
86
- vec3 ecVertex = vec3(modelviewMatrix * position);
87
-
88
- // Normal vector in eye coordinates
89
- vec3 ecNormal = normalize(normalMatrix * normal);
90
- vec3 ecNormalInv = ecNormal * minus_one_vec3;
91
-
92
- // Light calculations
93
- vec3 totalAmbient = vec3(0, 0, 0);
94
-
95
- vec3 totalFrontDiffuse = vec3(0, 0, 0);
96
- vec3 totalFrontSpecular = vec3(0, 0, 0);
97
-
98
- vec3 totalBackDiffuse = vec3(0, 0, 0);
99
- vec3 totalBackSpecular = vec3(0, 0, 0);
100
-
101
- // prevent register allocation failure by limiting ourselves to
102
- // four lights for now
103
- for (int i = 0; i < 4; i++) {
104
- if (lightCount == i) break;
105
-
106
- vec3 lightPos = lightPosition[i].xyz;
107
- bool isDir = lightPosition[i].w < one_float;
108
- float spotCos = lightSpot[i].x;
109
- float spotExp = lightSpot[i].y;
110
-
111
- vec3 lightDir;
112
- float falloff;
113
- float spotf;
114
-
115
- if (isDir) {
116
- falloff = one_float;
117
- lightDir = minus_one_vec3 * lightNormal[i];
118
- } else {
119
- falloff = falloffFactor(lightPos, ecVertex, lightFalloff[i]);
120
- lightDir = normalize(lightPos - ecVertex);
121
- }
122
-
123
- spotf = spotExp > zero_float ? spotFactor(lightPos, ecVertex, lightNormal[i],
124
- spotCos, spotExp)
125
- : one_float;
126
-
127
- if (any(greaterThan(lightAmbient[i], zero_vec3))) {
128
- totalAmbient += lightAmbient[i] * falloff;
129
- }
130
-
131
- if (any(greaterThan(lightDiffuse[i], zero_vec3))) {
132
- totalFrontDiffuse += lightDiffuse[i] * falloff * spotf *
133
- lambertFactor(lightDir, ecNormal);
134
- totalBackDiffuse += lightDiffuse[i] * falloff * spotf *
135
- lambertFactor(lightDir, ecNormalInv);
136
- }
137
-
138
- if (any(greaterThan(lightSpecular[i], zero_vec3))) {
139
- totalFrontSpecular += lightSpecular[i] * falloff * spotf *
140
- blinnPhongFactor(lightDir, ecVertex, ecNormal, shininess);
141
- totalBackSpecular += lightSpecular[i] * falloff * spotf *
142
- blinnPhongFactor(lightDir, ecVertex, ecNormalInv, shininess);
143
- }
144
- }
145
-
146
- // Calculating final color as result of all lights (plus emissive term).
147
- // Transparency is determined exclusively by the diffuse component.
148
- vertColor = vec4(totalAmbient, 0) * ambient +
149
- vec4(totalFrontDiffuse, 1) * color +
150
- vec4(totalFrontSpecular, 0) * specular +
151
- vec4(emissive.rgb, 0);
152
-
153
- backVertColor = vec4(totalAmbient, 0) * ambient +
154
- vec4(totalBackDiffuse, 1) * color +
155
- vec4(totalBackSpecular, 0) * specular +
156
- vec4(emissive.rgb, 0);
157
-
158
- // Calculating texture coordinates, with r and q set both to one
159
- vertTexCoord = texMatrix * vec4(texCoord, 1.0, 1.0);
160
- }