aboutsummaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authortaw27 <taw27@84d2e878-0bd5-11dd-ad15-13eda11d74c5>2008-05-28 16:19:50 +0000
committertaw27 <taw27@84d2e878-0bd5-11dd-ad15-13eda11d74c5>2008-05-28 16:19:50 +0000
commit66450800a7ff01f67ae72a79570decbfbd42c0a8 (patch)
tree61d61646a22a2c5124c991df0077bba41ae52227 /data
parent2295e1879d9c5ef869c9c5e3b1714fec0c67d799 (diff)
Fun with shaders
git-svn-id: svn://cook.msm.cam.ac.uk:745/thrust3d/thrust3d@48 84d2e878-0bd5-11dd-ad15-13eda11d74c5
Diffstat (limited to 'data')
-rw-r--r--data/Makefile.am2
-rw-r--r--data/models/platform42
-rw-r--r--data/shaders/lighting.frag13
-rw-r--r--data/shaders/swirlytron.frag19
-rw-r--r--data/shaders/swirlytron.vert24
5 files changed, 74 insertions, 26 deletions
diff --git a/data/Makefile.am b/data/Makefile.am
index 91cde53..cbeb059 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -3,7 +3,7 @@ models_DATA = models/floor models/lander models/randombox models/walle models/wa
models/ceiling models/tiledfloor
shadersdir = $(datadir)/thrust3d/shaders
-shaders_DATA = shaders/lighting.vert shaders/lighting.frag
+shaders_DATA = shaders/lighting.vert shaders/lighting.frag shaders/swirlytron.vert shaders/swirlytron.frag
texturesdir = $(datadir)/thrust3d/textures
textures_DATA = textures/floor1.png textures/tiledwall.png textures/radioactive.png textures/fuel.png
diff --git a/data/models/platform b/data/models/platform
index da92c34..7728c67 100644
--- a/data/models/platform
+++ b/data/models/platform
@@ -1,30 +1,30 @@
# Landing/refuelling platform
QUADS
- 1.00 1.00 0.05
- -1.00 1.00 0.05
- -1.00 -1.00 0.05
- 1.00 -1.00 0.05
+ 1.00 1.00 0.05 0.0 0.0
+ -1.00 1.00 0.05 1.0 0.0
+ -1.00 -1.00 0.05 1.0 1.0
+ 1.00 -1.00 0.05 0.0 1.0
#
- 1.00 1.00 0.00
- -1.00 1.00 0.00
- -1.00 1.00 0.05
- 1.00 1.00 0.05
+ 1.00 1.00 0.00 0.0 0.0
+ -1.00 1.00 0.00 1.0 0.0
+ -1.00 1.00 0.05 1.0 0.0
+ 1.00 1.00 0.05 0.0 0.0
#
- 1.00 -1.00 0.05
- -1.00 -1.00 0.05
- -1.00 -1.00 0.00
- 1.00 -1.00 0.00
+ 1.00 -1.00 0.05 0.0 1.0
+ -1.00 -1.00 0.05 1.0 1.0
+ -1.00 -1.00 0.00 1.0 1.0
+ 1.00 -1.00 0.00 0.0 1.0
#
- 1.00 1.00 0.05
- 1.00 -1.00 0.05
- 1.00 -1.00 0.00
- 1.00 1.00 0.00
+ 1.00 1.00 0.05 0.0 0.0
+ 1.00 -1.00 0.05 0.0 1.0
+ 1.00 -1.00 0.00 0.0 1.0
+ 1.00 1.00 0.00 0.0 0.0
#
- -1.00 1.00 0.00
- -1.00 -1.00 0.00
- -1.00 -1.00 0.05
- -1.00 1.00 0.05
+ -1.00 1.00 0.00 1.0 0.0
+ -1.00 -1.00 0.00 1.0 1.0
+ -1.00 -1.00 0.05 1.0 1.0
+ -1.00 1.00 0.05 1.0 0.0
#
-pulse 0.7 0.0 0.0
+swirly
diff --git a/data/shaders/lighting.frag b/data/shaders/lighting.frag
index 1008734..265f494 100644
--- a/data/shaders/lighting.frag
+++ b/data/shaders/lighting.frag
@@ -19,6 +19,7 @@ varying vec3 light2hvc;
uniform sampler2D texture;
uniform bool fill_light_enabled;
uniform bool texture_enabled;
+uniform bool texture_only;
varying vec3 col_ambi_diff;
varying vec3 col_emit;
@@ -55,10 +56,14 @@ void main() {
spec += vec3(1.0, 1.0, 1.0) * gl_LightSource[2].specular.rgb * pow(ndothv, 80.0);
}
- gl_FragColor = vec4(min(emit.r + ambi.r + diff.r + spec.r, 1.0),
- min(emit.g + ambi.g + diff.g + spec.g, 1.0),
- min(emit.b + ambi.b + diff.b + spec.b, 1.0),
- 1.0);
+ if ( !texture_only ) {
+ gl_FragColor = vec4(min(emit.r + ambi.r + diff.r + spec.r, 1.0),
+ min(emit.g + ambi.g + diff.g + spec.g, 1.0),
+ min(emit.b + ambi.b + diff.b + spec.b, 1.0),
+ 1.0);
+ } else {
+ gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
+ }
if ( texture_enabled ) {
gl_FragColor *= texture2D(texture, gl_TexCoord[0].st);
diff --git a/data/shaders/swirlytron.frag b/data/shaders/swirlytron.frag
new file mode 100644
index 0000000..d152636
--- /dev/null
+++ b/data/shaders/swirlytron.frag
@@ -0,0 +1,19 @@
+/*
+ * swirlytron.vert
+ *
+ * Swirly stuff for rendering onto swirly things...
+ *
+ * (c) 2007-2008 Thomas White <taw27@cam.ac.uk>
+ *
+ * thrust3d - a silly game
+ *
+ */
+
+varying vec2 coords;
+
+void main() {
+
+ gl_FragColor = vec4(coords.x, 0.0, coords.y, 1.0);
+
+}
+
diff --git a/data/shaders/swirlytron.vert b/data/shaders/swirlytron.vert
new file mode 100644
index 0000000..0c6dc73
--- /dev/null
+++ b/data/shaders/swirlytron.vert
@@ -0,0 +1,24 @@
+/*
+ * swirlytron.vert
+ *
+ * Swirly stuff for rendering onto swirly things...
+ *
+ * (c) 2007-2008 Thomas White <taw27@cam.ac.uk>
+ *
+ * thrust3d - a silly game
+ *
+ */
+
+varying vec2 coords;
+
+void main() {
+
+ coords.x = (gl_Vertex.x + 1.0)/2.0;
+ coords.y = (gl_Vertex.y + 1.0)/2.0;
+
+ /* Coordinates */
+ gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
+ gl_Position = ftransform();
+
+}
+