-
Notifications
You must be signed in to change notification settings - Fork 2
/
test.html
3 lines (2 loc) · 41.7 KB
/
test.html
1
2
3
<!-- saved from url=(0043)http://hristo.oskov.com/projects/cs418/mp3/ -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="color-scheme" content="light dark"></head><body><div class="line-gutter-backdrop"></div><form autocomplete="off"><label class="line-wrap-control">Renvoi à la ligne automatique<input type="checkbox" aria-label="Renvoi à la ligne automatique"></label></form><table><tbody><tr><td class="line-number" value="1"></td><td class="line-content"><span class="html-doctype"><!doctype html></span></td></tr><tr><td class="line-number" value="2"></td><td class="line-content"><span class="html-comment"><!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ --></span></td></tr><tr><td class="line-number" value="3"></td><td class="line-content"><span class="html-comment"><!-- misteroneill.com/improved-internet-explorer-targeting-through-body-classes/ --></span></td></tr><tr><td class="line-number" value="4"></td><td class="line-content"><span class="html-comment"><!--[if lt IE 7]> <html class="no-js ie ie6 lte9 lte8 lte7" lang="en"> <![endif]--></span></td></tr><tr><td class="line-number" value="5"></td><td class="line-content"><span class="html-comment"><!--[if IE 7]> <html class="no-js ie ie7 lte9 lte8 lte7" lang="en"> <![endif]--></span></td></tr><tr><td class="line-number" value="6"></td><td class="line-content"><span class="html-comment"><!--[if IE 8]> <html class="no-js ie ie8 lte9 lte8" lang="en"> <![endif]--></span></td></tr><tr><td class="line-number" value="7"></td><td class="line-content"><span class="html-comment"><!--[if IE 9]> <html class="no-js ie ie9 lte9" lang="en"> <![endif]--></span></td></tr><tr><td class="line-number" value="8"></td><td class="line-content"><span class="html-comment"><!--[if (gte IE 9)|!(IE)]></span></td></tr><tr><td class="line-number" value="9"></td><td class="line-content"><span class="html-comment"><!--></span></td></tr><tr><td class="line-number" value="10"></td><td class="line-content"><span class="html-tag"><html <span class="html-attribute-name">class</span>="<span class="html-attribute-value">no-js</span>" <span class="html-attribute-name">lang</span>="<span class="html-attribute-value">en</span>"></span></td></tr><tr><td class="line-number" value="11"></td><td class="line-content"><span class="html-comment"><!--<![endif]--></span></td></tr><tr><td class="line-number" value="12"></td><td class="line-content"><span class="html-tag"><head></span></td></tr><tr><td class="line-number" value="13"></td><td class="line-content"> <span class="html-tag"><title></span>webGL<span class="html-tag"></title></span></td></tr><tr><td class="line-number" value="14"></td><td class="line-content"> </td></tr><tr><td class="line-number" value="15"></td><td class="line-content"> <span class="html-comment"><!-- favicon --></span></td></tr><tr><td class="line-number" value="16"></td><td class="line-content"> </td></tr><tr><td class="line-number" value="17"></td><td class="line-content"> <span class="html-comment"><!-- Styles --></span></td></tr><tr><td class="line-number" value="18"></td><td class="line-content"> <span class="html-tag"><link <span class="html-attribute-name">type</span>="<span class="html-attribute-value">text/css</span>" <span class="html-attribute-name">rel</span>="<span class="html-attribute-value">stylesheet</span>" <span class="html-attribute-name">href</span>="<a class="html-attribute-value html-resource-link" target="_blank" href="http://hristo.oskov.com/projects/cs418/mp3/css/jQuery-UI.css" rel="noreferrer noopener">css/jQuery-UI.css</a>"></span></td></tr><tr><td class="line-number" value="19"></td><td class="line-content"> <span class="html-tag"><link <span class="html-attribute-name">type</span>="<span class="html-attribute-value">text/css</span>" <span class="html-attribute-name">rel</span>="<span class="html-attribute-value">stylesheet</span>" <span class="html-attribute-name">href</span>="<a class="html-attribute-value html-resource-link" target="_blank" href="http://hristo.oskov.com/projects/cs418/mp3/css/style.css" rel="noreferrer noopener">css/style.css</a>"></span></td></tr><tr><td class="line-number" value="20"></td><td class="line-content"><span class="html-tag"></head></span></td></tr><tr><td class="line-number" value="21"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="22"></td><td class="line-content"><span class="html-tag"><body></span></td></tr><tr><td class="line-number" value="23"></td><td class="line-content"> <span class="html-tag"><div <span class="html-attribute-name">id</span>="<span class="html-attribute-value">wrapper</span>"></span></td></tr><tr><td class="line-number" value="24"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="25"></td><td class="line-content"> <span class="html-tag"><div <span class="html-attribute-name">id</span>="<span class="html-attribute-value">content</span>"></span></td></tr><tr><td class="line-number" value="26"></td><td class="line-content"> CS 418 - MP 3</td></tr><tr><td class="line-number" value="27"></td><td class="line-content"> <span class="html-tag"></div></span></td></tr><tr><td class="line-number" value="28"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="29"></td><td class="line-content"> <span class="html-tag"></br></span></td></tr><tr><td class="line-number" value="30"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="31"></td><td class="line-content"> <span class="html-tag"><div <span class="html-attribute-name">id</span>="<span class="html-attribute-value">options</span>"></span></td></tr><tr><td class="line-number" value="32"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="33"></td><td class="line-content"> <span class="html-tag"><span></span>Normals:<span class="html-tag"></span></span></td></tr><tr><td class="line-number" value="34"></td><td class="line-content"> <span class="html-tag"></br></span></td></tr><tr><td class="line-number" value="35"></td><td class="line-content"> <span class="html-tag"><input <span class="html-attribute-name">type</span>="<span class="html-attribute-value">radio</span>" <span class="html-attribute-name">id</span>="<span class="html-attribute-value">calculated</span>" <span class="html-attribute-name">name</span>="<span class="html-attribute-value">normals</span>" <span class="html-attribute-name">value</span>="<span class="html-attribute-value">calculated</span>"></span></td></tr><tr><td class="line-number" value="36"></td><td class="line-content"> <span class="html-tag"><label <span class="html-attribute-name">for</span>="<span class="html-attribute-value">calculated</span>"></span>Calculated<span class="html-tag"></label></span></td></tr><tr><td class="line-number" value="37"></td><td class="line-content"> <span class="html-tag"></br></span></td></tr><tr><td class="line-number" value="38"></td><td class="line-content"> <span class="html-tag"><input <span class="html-attribute-name">type</span>="<span class="html-attribute-value">radio</span>" <span class="html-attribute-name">id</span>="<span class="html-attribute-value">provided</span>" <span class="html-attribute-name">name</span>="<span class="html-attribute-value">normals</span>" <span class="html-attribute-name">value</span>="<span class="html-attribute-value">provided</span>" <span class="html-attribute-name">checked</span>></span></td></tr><tr><td class="line-number" value="39"></td><td class="line-content"> <span class="html-tag"><label <span class="html-attribute-name">for</span>="<span class="html-attribute-value">provided</span>"></span>Provided<span class="html-tag"></label></span></td></tr><tr><td class="line-number" value="40"></td><td class="line-content"> </td></tr><tr><td class="line-number" value="41"></td><td class="line-content"> <span class="html-tag"></br></span><span class="html-tag"></br></span></td></tr><tr><td class="line-number" value="42"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="43"></td><td class="line-content"> <span class="html-tag"><span></span>Zoom in (helps with Bump Mapping):<span class="html-tag"></span></span></td></tr><tr><td class="line-number" value="44"></td><td class="line-content"> <span class="html-tag"><div <span class="html-attribute-name">id</span>="<span class="html-attribute-value">zoom</span>"></span><span class="html-tag"></div></span></td></tr><tr><td class="line-number" value="45"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="46"></td><td class="line-content"> <span class="html-tag"><span></span>Texture:<span class="html-tag"></span></span></td></tr><tr><td class="line-number" value="47"></td><td class="line-content"> <span class="html-tag"></br></span></td></tr><tr><td class="line-number" value="48"></td><td class="line-content"> <span class="html-tag"><input <span class="html-attribute-name">type</span>="<span class="html-attribute-value">radio</span>" <span class="html-attribute-name">id</span>="<span class="html-attribute-value">none</span>" <span class="html-attribute-name">name</span>="<span class="html-attribute-value">texture</span>" <span class="html-attribute-name">value</span>="<span class="html-attribute-value">none</span>"></span></td></tr><tr><td class="line-number" value="49"></td><td class="line-content"> <span class="html-tag"><label <span class="html-attribute-name">for</span>="<span class="html-attribute-value">none</span>"></span>None<span class="html-tag"></label></span></td></tr><tr><td class="line-number" value="50"></td><td class="line-content"> <span class="html-tag"></br></span></td></tr><tr><td class="line-number" value="51"></td><td class="line-content"> <span class="html-tag"><input <span class="html-attribute-name">type</span>="<span class="html-attribute-value">radio</span>" <span class="html-attribute-name">id</span>="<span class="html-attribute-value">mirror</span>" <span class="html-attribute-name">name</span>="<span class="html-attribute-value">texture</span>" <span class="html-attribute-name">value</span>="<span class="html-attribute-value">mirror</span>"></span></td></tr><tr><td class="line-number" value="52"></td><td class="line-content"> <span class="html-tag"><label <span class="html-attribute-name">for</span>="<span class="html-attribute-value">mirror</span>"></span>Mirror<span class="html-tag"></label></span></td></tr><tr><td class="line-number" value="53"></td><td class="line-content"> <span class="html-tag"></br></span></td></tr><tr><td class="line-number" value="54"></td><td class="line-content"> <span class="html-tag"><input <span class="html-attribute-name">type</span>="<span class="html-attribute-value">checkbox</span>" <span class="html-attribute-name">id</span>="<span class="html-attribute-value">mirror-texture</span>" <span class="html-attribute-name">name</span>="" <span class="html-attribute-name">value</span>="<span class="html-attribute-value">mirror-texture</span>"></span></td></tr><tr><td class="line-number" value="55"></td><td class="line-content"> <span class="html-tag"><label <span class="html-attribute-name">for</span>="<span class="html-attribute-value">mirror-texture</span>"></span>Mirror with Texture<span class="html-tag"></label></span></td></tr><tr><td class="line-number" value="56"></td><td class="line-content"> <span class="html-tag"></br></span></td></tr><tr><td class="line-number" value="57"></td><td class="line-content"> <span class="html-tag"><input <span class="html-attribute-name">type</span>="<span class="html-attribute-value">radio</span>" <span class="html-attribute-name">id</span>="<span class="html-attribute-value">earth</span>" <span class="html-attribute-name">name</span>="<span class="html-attribute-value">texture</span>" <span class="html-attribute-name">value</span>="<span class="html-attribute-value">earth</span>"></span></td></tr><tr><td class="line-number" value="58"></td><td class="line-content"> <span class="html-tag"><label <span class="html-attribute-name">for</span>="<span class="html-attribute-value">earth</span>"></span>Earth<span class="html-tag"></label></span></td></tr><tr><td class="line-number" value="59"></td><td class="line-content"> <span class="html-tag"></br></span></td></tr><tr><td class="line-number" value="60"></td><td class="line-content"> <span class="html-tag"><input <span class="html-attribute-name">type</span>="<span class="html-attribute-value">radio</span>" <span class="html-attribute-name">id</span>="<span class="html-attribute-value">checkerboard</span>" <span class="html-attribute-name">name</span>="<span class="html-attribute-value">texture</span>" <span class="html-attribute-name">value</span>="<span class="html-attribute-value">checkerboard</span>" <span class="html-attribute-name">checked</span>></span></td></tr><tr><td class="line-number" value="61"></td><td class="line-content"> <span class="html-tag"><label <span class="html-attribute-name">for</span>="<span class="html-attribute-value">checkerboard</span>"></span>Checkerboard<span class="html-tag"></label></span></td></tr><tr><td class="line-number" value="62"></td><td class="line-content"> </td></tr><tr><td class="line-number" value="63"></td><td class="line-content"> <span class="html-tag"></br></span><span class="html-tag"></br></span></td></tr><tr><td class="line-number" value="64"></td><td class="line-content"> </td></tr><tr><td class="line-number" value="65"></td><td class="line-content"> <span class="html-tag"><label <span class="html-attribute-name">for</span>="<span class="html-attribute-value">light</span>"></span>Light:<span class="html-tag"></label></span></td></tr><tr><td class="line-number" value="66"></td><td class="line-content"> <span class="html-tag"><input <span class="html-attribute-name">type</span>="<span class="html-attribute-value">checkbox</span>" <span class="html-attribute-name">id</span>="<span class="html-attribute-value">light</span>" <span class="html-attribute-name">checked</span>></span></td></tr><tr><td class="line-number" value="67"></td><td class="line-content"> <span class="html-tag"></br></span><span class="html-tag"></br></span></td></tr><tr><td class="line-number" value="68"></td><td class="line-content"> <span class="html-tag"><label <span class="html-attribute-name">for</span>="<span class="html-attribute-value">ambient-intensity</span>"></span>Ambient Intensity<span class="html-tag"></label></span></td></tr><tr><td class="line-number" value="69"></td><td class="line-content"> <span class="html-tag"><div <span class="html-attribute-name">id</span>="<span class="html-attribute-value">ambient-intensity</span>"></span><span class="html-tag"></div></span></td></tr><tr><td class="line-number" value="70"></td><td class="line-content"> <span class="html-tag"><label <span class="html-attribute-name">for</span>="<span class="html-attribute-value">specular-intensity</span>"></span>Specular Intensity<span class="html-tag"></label></span></td></tr><tr><td class="line-number" value="71"></td><td class="line-content"> <span class="html-tag"><div <span class="html-attribute-name">id</span>="<span class="html-attribute-value">specular-intensity</span>"></span><span class="html-tag"></div></span></td></tr><tr><td class="line-number" value="72"></td><td class="line-content"> <span class="html-tag"><label <span class="html-attribute-name">for</span>="<span class="html-attribute-value">diffuse-intensity</span>"></span>Diffuse Intensity<span class="html-tag"></label></span></td></tr><tr><td class="line-number" value="73"></td><td class="line-content"> <span class="html-tag"><div <span class="html-attribute-name">id</span>="<span class="html-attribute-value">diffuse-intensity</span>"></span><span class="html-tag"></div></span></td></tr><tr><td class="line-number" value="74"></td><td class="line-content"> <span class="html-tag"></br></span></td></tr><tr><td class="line-number" value="75"></td><td class="line-content"> </td></tr><tr><td class="line-number" value="76"></td><td class="line-content"> <span class="html-tag"><label <span class="html-attribute-name">for</span>="<span class="html-attribute-value">environment</span>"></span>Environment:<span class="html-tag"></label></span></td></tr><tr><td class="line-number" value="77"></td><td class="line-content"> <span class="html-tag"><input <span class="html-attribute-name">type</span>="<span class="html-attribute-value">checkbox</span>" <span class="html-attribute-name">id</span>="<span class="html-attribute-value">environment</span>" <span class="html-attribute-name">checked</span>></span></td></tr><tr><td class="line-number" value="78"></td><td class="line-content"> <span class="html-tag"></br></span></td></tr><tr><td class="line-number" value="79"></td><td class="line-content"> <span class="html-tag"><input <span class="html-attribute-name">type</span>="<span class="html-attribute-value">radio</span>" <span class="html-attribute-name">id</span>="<span class="html-attribute-value">london</span>" <span class="html-attribute-name">name</span>="<span class="html-attribute-value">environment-texture</span>" <span class="html-attribute-name">value</span>="<span class="html-attribute-value">london</span>"></span></td></tr><tr><td class="line-number" value="80"></td><td class="line-content"> <span class="html-tag"><label <span class="html-attribute-name">for</span>="<span class="html-attribute-value">london</span>"></span>London<span class="html-tag"></label></span></td></tr><tr><td class="line-number" value="81"></td><td class="line-content"> <span class="html-tag"></br></span></td></tr><tr><td class="line-number" value="82"></td><td class="line-content"> <span class="html-tag"><input <span class="html-attribute-name">type</span>="<span class="html-attribute-value">radio</span>" <span class="html-attribute-name">id</span>="<span class="html-attribute-value">e-checkerboard</span>" <span class="html-attribute-name">name</span>="<span class="html-attribute-value">environment-texture</span>" <span class="html-attribute-name">value</span>="<span class="html-attribute-value">e-checkerboard</span>" <span class="html-attribute-name">checked</span>></span></td></tr><tr><td class="line-number" value="83"></td><td class="line-content"> <span class="html-tag"><label <span class="html-attribute-name">for</span>="<span class="html-attribute-value">e-checkerboard</span>"></span>Checkerboard<span class="html-tag"></label></span></td></tr><tr><td class="line-number" value="84"></td><td class="line-content"> <span class="html-tag"></br></span></td></tr><tr><td class="line-number" value="85"></td><td class="line-content"> <span class="html-tag"></div></span></td></tr><tr><td class="line-number" value="86"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="87"></td><td class="line-content"> <span class="html-tag"><canvas <span class="html-attribute-name">id</span>="<span class="html-attribute-value">main-canvas</span>" <span class="html-attribute-name">width</span>="<span class="html-attribute-value">600</span>" <span class="html-attribute-name">height</span>="<span class="html-attribute-value">400</span>"></span><span class="html-tag"></canvas></span></td></tr><tr><td class="line-number" value="88"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="89"></td><td class="line-content"> <span class="html-tag"><div <span class="html-attribute-name">id</span>="<span class="html-attribute-value">status</span>"></span><span class="html-tag"></div></span></td></tr><tr><td class="line-number" value="90"></td><td class="line-content"> <span class="html-tag"></br></span></td></tr><tr><td class="line-number" value="91"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="92"></td><td class="line-content"> <span class="html-tag"></div></span><span class="html-comment"><!-- end #wrapper --></span></td></tr><tr><td class="line-number" value="93"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="94"></td><td class="line-content"> <span class="html-comment"><!-- Scripts --></span></td></tr><tr><td class="line-number" value="95"></td><td class="line-content"> <span class="html-tag"><script <span class="html-attribute-name">type</span>="<span class="html-attribute-value">text/javascript</span>" <span class="html-attribute-name">src</span>="<a class="html-attribute-value html-resource-link" target="_blank" href="http://hristo.oskov.com/projects/cs418/mp3/js/jQuery.js" rel="noreferrer noopener">js/jQuery.js</a>"></span><span class="html-tag"></script></span></td></tr><tr><td class="line-number" value="96"></td><td class="line-content"> <span class="html-tag"><script <span class="html-attribute-name">src</span>="<a class="html-attribute-value html-resource-link" target="_blank" href="http://hristo.oskov.com/projects/cs418/mp3/js/jQuery-UI.min.js" rel="noreferrer noopener">js/jQuery-UI.min.js</a>"></span><span class="html-tag"></script></span></td></tr><tr><td class="line-number" value="97"></td><td class="line-content"> <span class="html-tag"><script <span class="html-attribute-name">src</span>="<a class="html-attribute-value html-resource-link" target="_blank" href="http://hristo.oskov.com/projects/cs418/mp3/js/glMatrix.min.js" rel="noreferrer noopener">js/glMatrix.min.js</a>"></span><span class="html-tag"></script></span></td></tr><tr><td class="line-number" value="98"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="99"></td><td class="line-content"> <span class="html-comment"><!-- - - - - - - - - - - - - - - - - - --></span></td></tr><tr><td class="line-number" value="100"></td><td class="line-content"> <span class="html-comment"><!-- Define vertex and fragment shaders --></span></td></tr><tr><td class="line-number" value="101"></td><td class="line-content"> <span class="html-comment"><!-- - - - - - - - - - - - - - - - - - --></span></td></tr><tr><td class="line-number" value="102"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="103"></td><td class="line-content"> <span class="html-comment"><!-- Fragment shader --></span></td></tr><tr><td class="line-number" value="104"></td><td class="line-content"> <span class="html-tag"><script <span class="html-attribute-name">id</span>="<span class="html-attribute-value">shader-fs</span>" <span class="html-attribute-name">type</span>="<span class="html-attribute-value">x-shader/x-fragment</span>"></span></td></tr><tr><td class="line-number" value="105"></td><td class="line-content"> precision mediump float;</td></tr><tr><td class="line-number" value="106"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="107"></td><td class="line-content"> varying vec4 vPosition;</td></tr><tr><td class="line-number" value="108"></td><td class="line-content"> varying vec2 vTextureCoord;</td></tr><tr><td class="line-number" value="109"></td><td class="line-content"> varying vec3 vTransformedNormal;</td></tr><tr><td class="line-number" value="110"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="111"></td><td class="line-content"> uniform bool uUseLight;</td></tr><tr><td class="line-number" value="112"></td><td class="line-content"> uniform bool uUseTextures;</td></tr><tr><td class="line-number" value="113"></td><td class="line-content"> uniform bool uUseEnvironmentTexture;</td></tr><tr><td class="line-number" value="114"></td><td class="line-content"> uniform bool uShowSpecularHighlights;</td></tr><tr><td class="line-number" value="115"></td><td class="line-content"> uniform bool uUseEnvironmentReflection;</td></tr><tr><td class="line-number" value="116"></td><td class="line-content"> uniform bool uUseEnvironmentReflectionAndTexture;</td></tr><tr><td class="line-number" value="117"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="118"></td><td class="line-content"> uniform vec3 uAmbientColor;</td></tr><tr><td class="line-number" value="119"></td><td class="line-content"> uniform vec3 uPointLightLocation;</td></tr><tr><td class="line-number" value="120"></td><td class="line-content"> uniform vec3 uPointLightSpecularColor;</td></tr><tr><td class="line-number" value="121"></td><td class="line-content"> uniform vec3 uPointLightDiffuseColor;</td></tr><tr><td class="line-number" value="122"></td><td class="line-content"> </td></tr><tr><td class="line-number" value="123"></td><td class="line-content"> uniform sampler2D uTextureMapSampler;</td></tr><tr><td class="line-number" value="124"></td><td class="line-content"> uniform sampler2D uTextureBumpMapSampler;</td></tr><tr><td class="line-number" value="125"></td><td class="line-content"> uniform sampler2D front;</td></tr><tr><td class="line-number" value="126"></td><td class="line-content"> uniform sampler2D back;</td></tr><tr><td class="line-number" value="127"></td><td class="line-content"> uniform sampler2D top;</td></tr><tr><td class="line-number" value="128"></td><td class="line-content"> uniform sampler2D bottom;</td></tr><tr><td class="line-number" value="129"></td><td class="line-content"> uniform sampler2D right;</td></tr><tr><td class="line-number" value="130"></td><td class="line-content"> uniform sampler2D left;</td></tr><tr><td class="line-number" value="131"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="132"></td><td class="line-content"> uniform samplerCube uCubeSampler;</td></tr><tr><td class="line-number" value="133"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="134"></td><td class="line-content"> uniform float uMaterialShininess;</td></tr><tr><td class="line-number" value="135"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="136"></td><td class="line-content"> varying float vFace;</td></tr><tr><td class="line-number" value="137"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="138"></td><td class="line-content"> void main(void) {</td></tr><tr><td class="line-number" value="139"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="140"></td><td class="line-content"> vec3 lightWeighting;</td></tr><tr><td class="line-number" value="141"></td><td class="line-content"> if (!uUseLight) {</td></tr><tr><td class="line-number" value="142"></td><td class="line-content"> </td></tr><tr><td class="line-number" value="143"></td><td class="line-content"> lightWeighting = vec3(1.0, 1.0, 1.0); // full brightness</td></tr><tr><td class="line-number" value="144"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="145"></td><td class="line-content"> } else {</td></tr><tr><td class="line-number" value="146"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="147"></td><td class="line-content"> vec3 lightDirection = normalize(uPointLightLocation - vPosition.xyz);</td></tr><tr><td class="line-number" value="148"></td><td class="line-content"> vec3 normal = normalize(vTransformedNormal);</td></tr><tr><td class="line-number" value="149"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="150"></td><td class="line-content"> float specularLightWeighting = 0.0;</td></tr><tr><td class="line-number" value="151"></td><td class="line-content"> vec3 eyeDirection = normalize(-vPosition.xyz);</td></tr><tr><td class="line-number" value="152"></td><td class="line-content"> vec3 reflectionDirection = reflect(-lightDirection, normal);</td></tr><tr><td class="line-number" value="153"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="154"></td><td class="line-content"> if (uShowSpecularHighlights) {</td></tr><tr><td class="line-number" value="155"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="156"></td><td class="line-content"> // specular highlighting + bump mapping</td></tr><tr><td class="line-number" value="157"></td><td class="line-content"> float shininess = texture2D(uTextureBumpMapSampler, vec2(vTextureCoord.s, vTextureCoord.t)).r * 255.0 / uMaterialShininess;</td></tr><tr><td class="line-number" value="158"></td><td class="line-content"> if (shininess < 255.0) {</td></tr><tr><td class="line-number" value="159"></td><td class="line-content"> specularLightWeighting = pow(max(dot(reflectionDirection, eyeDirection), 0.0), shininess * 2.0);</td></tr><tr><td class="line-number" value="160"></td><td class="line-content"> }</td></tr><tr><td class="line-number" value="161"></td><td class="line-content"> } else {</td></tr><tr><td class="line-number" value="162"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="163"></td><td class="line-content"> // just specular highlighting</td></tr><tr><td class="line-number" value="164"></td><td class="line-content"> specularLightWeighting = pow(max(dot(reflectionDirection, eyeDirection), 0.0), uMaterialShininess); </td></tr><tr><td class="line-number" value="165"></td><td class="line-content"> }</td></tr><tr><td class="line-number" value="166"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="167"></td><td class="line-content"> float diffuseLightWeighting = max(dot(normal, lightDirection), 0.0);</td></tr><tr><td class="line-number" value="168"></td><td class="line-content"> lightWeighting = uAmbientColor</td></tr><tr><td class="line-number" value="169"></td><td class="line-content"> + uPointLightSpecularColor * specularLightWeighting</td></tr><tr><td class="line-number" value="170"></td><td class="line-content"> + uPointLightDiffuseColor * diffuseLightWeighting;</td></tr><tr><td class="line-number" value="171"></td><td class="line-content"> }</td></tr><tr><td class="line-number" value="172"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="173"></td><td class="line-content"> vec4 fragmentColor;</td></tr><tr><td class="line-number" value="174"></td><td class="line-content"> if (uUseTextures) {</td></tr><tr><td class="line-number" value="175"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="176"></td><td class="line-content"> if (vFace < 0.1) {</td></tr><tr><td class="line-number" value="177"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="178"></td><td class="line-content"> vec4 textureValue = texture2D(uTextureMapSampler, vec2(vTextureCoord.s, vTextureCoord.t));</td></tr><tr><td class="line-number" value="179"></td><td class="line-content"> </td></tr><tr><td class="line-number" value="180"></td><td class="line-content"> if (uUseEnvironmentReflection) {</td></tr><tr><td class="line-number" value="181"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="182"></td><td class="line-content"> vec3 normal = normalize(vTransformedNormal);</td></tr><tr><td class="line-number" value="183"></td><td class="line-content"> vec3 eyeDirection = normalize(-vPosition.xyz);</td></tr><tr><td class="line-number" value="184"></td><td class="line-content"> vec3 lookup = reflect(eyeDirection, normal);</td></tr><tr><td class="line-number" value="185"></td><td class="line-content"> fragmentColor = textureCube(uCubeSampler, -lookup);</td></tr><tr><td class="line-number" value="186"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="187"></td><td class="line-content"> if (uUseEnvironmentReflectionAndTexture) {</td></tr><tr><td class="line-number" value="188"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="189"></td><td class="line-content"> fragmentColor = fragmentColor * textureValue;</td></tr><tr><td class="line-number" value="190"></td><td class="line-content"> }</td></tr><tr><td class="line-number" value="191"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="192"></td><td class="line-content"> } else {</td></tr><tr><td class="line-number" value="193"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="194"></td><td class="line-content"> fragmentColor = textureValue;</td></tr><tr><td class="line-number" value="195"></td><td class="line-content"> }</td></tr><tr><td class="line-number" value="196"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="197"></td><td class="line-content"> } else if (vFace < 1.1) {</td></tr><tr><td class="line-number" value="198"></td><td class="line-content"> fragmentColor = texture2D(front, vTextureCoord);</td></tr><tr><td class="line-number" value="199"></td><td class="line-content"> } else if (vFace < 2.1) {</td></tr><tr><td class="line-number" value="200"></td><td class="line-content"> fragmentColor = texture2D(back, vTextureCoord);</td></tr><tr><td class="line-number" value="201"></td><td class="line-content"> } else if (vFace < 3.1) {</td></tr><tr><td class="line-number" value="202"></td><td class="line-content"> fragmentColor = texture2D(top, vTextureCoord);</td></tr><tr><td class="line-number" value="203"></td><td class="line-content"> } else if (vFace < 4.1) {</td></tr><tr><td class="line-number" value="204"></td><td class="line-content"> fragmentColor = texture2D(bottom, vTextureCoord);</td></tr><tr><td class="line-number" value="205"></td><td class="line-content"> } else if (vFace < 5.1) {</td></tr><tr><td class="line-number" value="206"></td><td class="line-content"> fragmentColor = texture2D(right, vTextureCoord);</td></tr><tr><td class="line-number" value="207"></td><td class="line-content"> } else {</td></tr><tr><td class="line-number" value="208"></td><td class="line-content"> fragmentColor = texture2D(left, vTextureCoord);</td></tr><tr><td class="line-number" value="209"></td><td class="line-content"> }</td></tr><tr><td class="line-number" value="210"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="211"></td><td class="line-content"> } else {</td></tr><tr><td class="line-number" value="212"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="213"></td><td class="line-content"> fragmentColor = vec4(1.0, 1.0, 1.0, 1.0); // white</td></tr><tr><td class="line-number" value="214"></td><td class="line-content"> }</td></tr><tr><td class="line-number" value="215"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="216"></td><td class="line-content"> gl_FragColor = vec4(fragmentColor.rgb * lightWeighting, fragmentColor.a); </td></tr><tr><td class="line-number" value="217"></td><td class="line-content"> }</td></tr><tr><td class="line-number" value="218"></td><td class="line-content"> <span class="html-tag"></script></span></td></tr><tr><td class="line-number" value="219"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="220"></td><td class="line-content"> <span class="html-comment"><!-- Vertex shader --></span></td></tr><tr><td class="line-number" value="221"></td><td class="line-content"> <span class="html-tag"><script <span class="html-attribute-name">id</span>="<span class="html-attribute-value">shader-vs</span>" <span class="html-attribute-name">type</span>="<span class="html-attribute-value">x-shader/x-vertex</span>"></span></td></tr><tr><td class="line-number" value="222"></td><td class="line-content"> attribute vec3 aVertexPosition;</td></tr><tr><td class="line-number" value="223"></td><td class="line-content"> attribute vec3 aVertexNormal;</td></tr><tr><td class="line-number" value="224"></td><td class="line-content"> attribute vec2 aTextureCoord;</td></tr><tr><td class="line-number" value="225"></td><td class="line-content"> attribute float aFace;</td></tr><tr><td class="line-number" value="226"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="227"></td><td class="line-content"> uniform mat4 uMVMatrix;</td></tr><tr><td class="line-number" value="228"></td><td class="line-content"> uniform mat4 uPMatrix;</td></tr><tr><td class="line-number" value="229"></td><td class="line-content"> uniform mat3 uNMatrix;</td></tr><tr><td class="line-number" value="230"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="231"></td><td class="line-content"> varying vec2 vTextureCoord;</td></tr><tr><td class="line-number" value="232"></td><td class="line-content"> varying vec3 vTransformedNormal;</td></tr><tr><td class="line-number" value="233"></td><td class="line-content"> varying vec4 vPosition;</td></tr><tr><td class="line-number" value="234"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="235"></td><td class="line-content"> varying float vFace;</td></tr><tr><td class="line-number" value="236"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="237"></td><td class="line-content"> void main(void) {</td></tr><tr><td class="line-number" value="238"></td><td class="line-content"> vPosition = uMVMatrix * vec4(aVertexPosition, 1.0);</td></tr><tr><td class="line-number" value="239"></td><td class="line-content"> gl_Position = uPMatrix * vPosition;</td></tr><tr><td class="line-number" value="240"></td><td class="line-content"> vTextureCoord = aTextureCoord;</td></tr><tr><td class="line-number" value="241"></td><td class="line-content"> vTransformedNormal = uNMatrix * aVertexNormal;</td></tr><tr><td class="line-number" value="242"></td><td class="line-content"> vFace = aFace;</td></tr><tr><td class="line-number" value="243"></td><td class="line-content"> }</td></tr><tr><td class="line-number" value="244"></td><td class="line-content"> <span class="html-tag"></script></span></td></tr><tr><td class="line-number" value="245"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="246"></td><td class="line-content"> <span class="html-tag"><script <span class="html-attribute-name">src</span>="<a class="html-attribute-value html-resource-link" target="_blank" href="http://hristo.oskov.com/projects/cs418/mp3/js/mp3.js" rel="noreferrer noopener">js/mp3.js</a>"></span><span class="html-tag"></script></span></td></tr><tr><td class="line-number" value="247"></td><td class="line-content"> <span class="html-tag"><script <span class="html-attribute-name">type</span>="<span class="html-attribute-value">text/javascript</span>"></span></td></tr><tr><td class="line-number" value="248"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="249"></td><td class="line-content"> $(document).ready(function() {</td></tr><tr><td class="line-number" value="250"></td><td class="line-content"> $("#zoom").slider();</td></tr><tr><td class="line-number" value="251"></td><td class="line-content"> $("#ambient-intensity").slider();</td></tr><tr><td class="line-number" value="252"></td><td class="line-content"> $("#specular-intensity").slider();</td></tr><tr><td class="line-number" value="253"></td><td class="line-content"> $("#diffuse-intensity").slider();</td></tr><tr><td class="line-number" value="254"></td><td class="line-content"> MP.initialize();</td></tr><tr><td class="line-number" value="255"></td><td class="line-content"> });</td></tr><tr><td class="line-number" value="256"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="257"></td><td class="line-content"> <span class="html-tag"></script></span></td></tr><tr><td class="line-number" value="258"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="259"></td><td class="line-content"><span class="html-tag"></body></span></td></tr><tr><td class="line-number" value="260"></td><td class="line-content"><span class="html-tag"></html></span><span class="html-end-of-file"></span></td></tr></tbody></table></body></html>