Advertisement
Guest User

index

a guest
Dec 11th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 3.87 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3.  
  4. <body>
  5.     <div style="display: flex; flex-direction: row">
  6.         <canvas id="c" width="512" height="512" style="width: 512px; height: 512px"></canvas>
  7.         <div style="margin-left: 20px" id="uiContainer">
  8.             <div id="ui">
  9.                 <div id="x"></div>
  10.                 <div id="y"></div>
  11.                 <div id="z"></div>
  12.                 <div id="angleX"></div>
  13.                 <div id="angleY"></div>
  14.                 <div id="angleZ"></div>
  15.                 <div id="scaleX"></div>
  16.                 <div id="scaleY"></div>
  17.                 <div id="scaleZ"></div>
  18.                 <div id="orbitR"></div>
  19.             </div>
  20.         </div>
  21.         <div style="display: flex; flex-direction: column; justify-content: flex-end; margin-top: 10px">
  22.             <button id="inc-sub" style="padding: 5px; margin: 5px">Increase subdivision</button>
  23.             <button id="dec-sub" style="padding: 5px; margin: 5px">Decrease subdivision</button>
  24.             <button id="orbit" style="padding: 5px; margin: 5px">Orbit on/off</button>
  25.         </div>
  26.     </div>
  27.  
  28.     <script id="fragment-shader" type="x-shader/x-fragment">
  29.         precision mediump float;
  30.         uniform sampler2D u_TexMap;
  31.         uniform sampler2D u_TexMap2;
  32.         uniform float u_IsGround;
  33.         varying vec4 v_Color;
  34.         varying vec2 v_TexCoord;
  35.         void main() {
  36.             if(u_IsGround == 1.0) {
  37.                 gl_FragColor = texture2D(u_TexMap, v_TexCoord);
  38.             } else {
  39.                 gl_FragColor = texture2D(u_TexMap2, v_TexCoord);
  40.             }
  41.         }
  42.     </script>
  43.  
  44.     <script id="vertex-shader" type="x-shader/x-vertex">
  45.         attribute vec4 a_Position;
  46.         attribute vec4 a_Color;
  47.         attribute vec2 a_TexCoord;
  48.  
  49.         uniform mat4 u_mvpMatrix;
  50.         uniform mat4 u_mvMatrix;
  51.         uniform mat4 u_pMatrix;
  52.         uniform mat3 u_NMatrix;
  53.         uniform vec4 u_LightPosition;
  54.         uniform vec4 u_LightEmission;
  55.         uniform vec4 u_LightAmbiance;
  56.         uniform float u_MaterialDiffuse;
  57.         uniform float u_MaterialSpecular;
  58.         uniform float u_MaterialShininess;
  59.  
  60.         varying vec4 v_Color;
  61.         varying vec4 v_Position;
  62.         varying vec3 v_Normal;
  63.         varying vec2 v_TexCoord;
  64.         void main() {
  65.             v_Position = (u_mvMatrix * u_pMatrix) * a_Position;
  66.  
  67.             vec3 v_Normal = normalize(a_Position.xyz);
  68.             vec3 normalEyeSpace = normalize(u_NMatrix * v_Normal);
  69.             vec3 directionTowardLight = u_LightPosition.w == 0.0 ? normalize(-u_LightPosition.xyz) : normalize(u_LightPosition.xyz - v_Position.xyz);
  70.             vec4 positionOnSphere = u_mvMatrix * a_Position;
  71.             vec3 directionTowardObserver = -normalize(positionOnSphere.xyz);
  72.             vec3 directionPerfectReflection = 2.0 * dot(directionTowardLight, normalEyeSpace.xyz) * normalEyeSpace.xyz - directionTowardLight;
  73.  
  74.             //v_Color = u_LightAmbiance + u_MaterialDiffuse * max(dot(normalEyeSpace.xyz, directionTowardLight), 0.0) * u_LightEmission + u_MaterialSpecular * pow(max(dot(directionPerfectReflection, directionTowardObserver), 0.0), u_MaterialShininess) * u_LightEmission * max(dot(normalEyeSpace.xyz, directionTowardLight), 0.0);
  75.             //v_Color.a = 1.0;
  76.             v_Color = vec4(1.0, 1.0, 1.0, 1.0);
  77.             v_TexCoord = a_TexCoord;
  78.             gl_Position = v_Position;
  79.         }
  80.     </script>
  81.  
  82.     <script type="text/javascript" src="init.js"></script>
  83.     <script type="text/javascript" src="../angelCommon/webgl-utils.js"></script>
  84.     <script type="text/javascript" src="./webgl-lessons-ui.js"></script>
  85.     <script type="text/javascript" src="../angelCommon/MV.js"></script>
  86.     <script type="text/javascript" src="../angelCommon/MVnew.js"></script>
  87.     <script type="text/javascript" src="../angelCommon/initShaders.js"></script>
  88. </body>
  89.  
  90. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement