machine.html
author Eugen Sawin <sawine@me73.com>
Wed, 27 Apr 2011 14:45:41 +0200
changeset 32 1b4c3fcff1b0
parent 30 95688249c40c
child 33 2af408534f28
permissions -rwxr-xr-x
Fixed scene position.
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@31
    15
    varying vec3 vTransformedNormal;
sawine@31
    16
    varying vec4 vPosition;
sawine@31
    17
sawine@31
    18
    uniform bool uUseLighting;
sawine@31
    19
   
sawine@31
    20
    uniform vec3 uAmbientColour;
sawine@31
    21
    uniform vec3 uPointLightingLocation;
sawine@31
    22
    uniform vec3 uPointLightingColour;
sawine@2
    23
 
sawine@31
    24
    void main(void)
sawine@4
    25
    {
sawine@31
    26
        vec3 lightWeighting;
sawine@31
    27
        if (!uUseLighting) 
sawine@31
    28
        {
sawine@31
    29
            lightWeighting = vec3(1.0, 1.0, 1.0);
sawine@31
    30
        }
sawine@31
    31
        else
sawine@31
    32
        {
sawine@31
    33
            vec3 lightDirection = normalize(uPointLightingLocation - vPosition.xyz);
sawine@31
    34
            float directionalLightWeighting = max(dot(normalize(vTransformedNormal), lightDirection), 0.0);
sawine@31
    35
            lightWeighting = uAmbientColour + uPointLightingColour * directionalLightWeighting;
sawine@31
    36
        }     
sawine@31
    37
        gl_FragColor = vec4(vColour.rgb * lightWeighting, vColour.a);
sawine@2
    38
    }
sawine@2
    39
</script> 
sawine@2
    40
 
sawine@2
    41
<script id="vertex-shader" type="x-shader/x-vertex"> 
sawine@2
    42
    attribute vec3 aVertexPosition;
sawine@24
    43
    attribute vec3 aVertexNormal;
sawine@25
    44
    attribute vec4 aVertexColour;    
sawine@4
    45
sawine@2
    46
    uniform mat4 uMVMatrix;
sawine@2
    47
    uniform mat4 uPMatrix;
sawine@24
    48
    uniform mat3 uNMatrix;
sawine@24
    49
sawine@4
    50
    varying vec4 vColour;
sawine@31
    51
    varying vec3 vTransformedNormal;
sawine@31
    52
    varying vec4 vPosition;
sawine@2
    53
 
sawine@4
    54
    void main(void) 
sawine@4
    55
    {
sawine@31
    56
        vPosition = uMVMatrix * vec4(aVertexPosition, 1.0);
sawine@31
    57
        gl_Position = uPMatrix * vPosition;
sawine@4
    58
        vColour = aVertexColour;
sawine@31
    59
        vTransformedNormal = uNMatrix * aVertexNormal;
sawine@2
    60
    }
sawine@2
    61
</script>
sawine@2
    62
</head>
sawine@2
    63
 
sawine@23
    64
<body onload="boot();">
sawine@2
    65
<canvas id="machine">
sawine@2
    66
  Download a browser with WebGL support, like Chrome or Firefox.
sawine@2
    67
</canvas>
sawine@2
    68
</body>
sawine@2
    69
 
sawine@2
    70
</html>