author | Eugen Sawin <sawine@me73.com> |
Tue, 26 Apr 2011 03:23:11 +0200 | |
changeset 26 | 84a998ac11c0 |
parent 25 | 3b66f92dbc4d |
child 30 | 95688249c40c |
permissions | -rwxr-xr-x |
sawine@2 | 1 |
<html> |
sawine@2 | 2 |
<head> |
sawine@2 | 3 |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
sawine@2 | 4 |
<title>Machine Alpha</title> |
sawine@26 | 5 |
<style type="text/css"> |
sawine@26 | 6 |
body {margin: 0px;} |
sawine@26 | 7 |
</style> |
sawine@23 | 8 |
<script language="javascript" src="scripts/boot.js"></script> |
sawine@2 | 9 |
<script id="fragment-shader" type="x-shader/x-fragment"> |
sawine@2 | 10 |
#ifdef GL_ES |
sawine@2 | 11 |
precision highp float; |
sawine@2 | 12 |
#endif |
sawine@4 | 13 |
|
sawine@4 | 14 |
varying vec4 vColour; |
sawine@24 | 15 |
varying vec3 vLightWeighting; |
sawine@2 | 16 |
|
sawine@4 | 17 |
void main(void) |
sawine@4 | 18 |
{ |
sawine@24 | 19 |
gl_FragColor = vec4(vColour.rgb * vLightWeighting, vColour.a); |
sawine@2 | 20 |
} |
sawine@2 | 21 |
</script> |
sawine@2 | 22 |
|
sawine@2 | 23 |
<script id="vertex-shader" type="x-shader/x-vertex"> |
sawine@2 | 24 |
attribute vec3 aVertexPosition; |
sawine@24 | 25 |
attribute vec3 aVertexNormal; |
sawine@25 | 26 |
attribute vec4 aVertexColour; |
sawine@4 | 27 |
|
sawine@2 | 28 |
uniform mat4 uMVMatrix; |
sawine@2 | 29 |
uniform mat4 uPMatrix; |
sawine@24 | 30 |
uniform mat3 uNMatrix; |
sawine@24 | 31 |
|
sawine@24 | 32 |
uniform vec3 uAmbientColour; |
sawine@24 | 33 |
uniform vec3 uLightingDirection; |
sawine@24 | 34 |
uniform vec3 uDirectionalColour; |
sawine@24 | 35 |
|
sawine@24 | 36 |
uniform bool uUseLighting; |
sawine@4 | 37 |
|
sawine@4 | 38 |
varying vec4 vColour; |
sawine@24 | 39 |
varying vec3 vLightWeighting; |
sawine@2 | 40 |
|
sawine@4 | 41 |
void main(void) |
sawine@4 | 42 |
{ |
sawine@2 | 43 |
gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0); |
sawine@4 | 44 |
vColour = aVertexColour; |
sawine@25 | 45 |
|
sawine@24 | 46 |
if (!uUseLighting) |
sawine@24 | 47 |
{ |
sawine@24 | 48 |
vLightWeighting = vec3(1.0, 1.0, 1.0); |
sawine@24 | 49 |
} |
sawine@24 | 50 |
else |
sawine@24 | 51 |
{ |
sawine@24 | 52 |
vec3 transformedNormal = uNMatrix * aVertexNormal; |
sawine@24 | 53 |
float directionalLightWeighting = max(dot(transformedNormal, uLightingDirection), 0.0); |
sawine@24 | 54 |
vLightWeighting = uAmbientColour + uDirectionalColour * directionalLightWeighting; |
sawine@24 | 55 |
} |
sawine@2 | 56 |
} |
sawine@2 | 57 |
</script> |
sawine@2 | 58 |
</head> |
sawine@2 | 59 |
|
sawine@23 | 60 |
<body onload="boot();"> |
sawine@2 | 61 |
<canvas id="machine"> |
sawine@2 | 62 |
Download a browser with WebGL support, like Chrome or Firefox. |
sawine@2 | 63 |
</canvas> |
sawine@2 | 64 |
</body> |
sawine@2 | 65 |
|
sawine@2 | 66 |
</html> |