From 2ded5d80649007b564372dd50a045ac252e92a15 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 5 Nov 2013 17:57:14 -0500 Subject: [PATCH 01/21] part1 sin wave --- part1/.gl-matrix.js.swp | Bin 0 -> 16384 bytes part1/.vert_wave.html.swp | Bin 0 -> 12288 bytes part1/.vert_wave.js.swp | Bin 0 -> 20480 bytes part1/vert_wave.html | 17 +++++++++++++---- part1/vert_wave.js | 7 ++++++- 5 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 part1/.gl-matrix.js.swp create mode 100644 part1/.vert_wave.html.swp create mode 100644 part1/.vert_wave.js.swp diff --git a/part1/.gl-matrix.js.swp b/part1/.gl-matrix.js.swp new file mode 100644 index 0000000000000000000000000000000000000000..61dbb5bcbfde903c9db959b17c627ec009ae6314 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/part1/vert_wave.html b/part1/vert_wave.html index 57107ca..f4afd30 100644 --- a/part1/vert_wave.html +++ b/part1/vert_wave.html @@ -14,20 +14,29 @@ attribute vec2 position; uniform mat4 u_modelViewPerspective; - + uniform float u_time; + varying vec3 hColor; void main(void) { - float height = 0.0; + //float height = 0.0; + float s_contrib = sin(position.x*2.0*3.14159+ u_time); + float t_contrib = cos(position.y*2.0*3.14159+ u_time); + float height = s_contrib*t_contrib; + + vec3 lowColor =vec3(0.0,1.0,0.0); + vec3 hiColor =vec3(0.0,0.0,1.0); + hColor = mix(lowColor,hiColor,height); gl_Position = u_modelViewPerspective * vec4(vec3(position, height), 1.0); } diff --git a/part1/vert_wave.js b/part1/vert_wave.js index b90b9cf..b84747e 100644 --- a/part1/vert_wave.js +++ b/part1/vert_wave.js @@ -27,10 +27,12 @@ var up = [0.0, 0.0, 1.0]; var view = mat4.create(); mat4.lookAt(eye, center, up, view); + var time = 0.0; var positionLocation = 0; var heightLocation = 1; var u_modelViewPerspectiveLocation; + var u_time; (function initializeShader() { var program; @@ -40,6 +42,7 @@ var program = createProgram(context, vs, fs, message); context.bindAttribLocation(program, positionLocation, "position"); u_modelViewPerspectiveLocation = context.getUniformLocation(program,"u_modelViewPerspective"); + u_time = context.getUniformLocation(program,"u_time"); context.useProgram(program); })(); @@ -137,12 +140,14 @@ mat4.multiply(view, model, mv); var mvp = mat4.create(); mat4.multiply(persp, mv, mvp); - + + time = time+0.01; /////////////////////////////////////////////////////////////////////////// // Render context.clear(context.COLOR_BUFFER_BIT | context.DEPTH_BUFFER_BIT); context.uniformMatrix4fv(u_modelViewPerspectiveLocation, false, mvp); + context.uniform1f(u_time, time); context.drawElements(context.LINES, numberOfIndices, context.UNSIGNED_SHORT,0); window.requestAnimFrame(animate); From cd4a380a390f12e30af969fbd7766269c0964e74 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 5 Nov 2013 20:28:13 -0500 Subject: [PATCH 02/21] part1 simplex noise --- part1/.vert_wave.html.swp | Bin 12288 -> 0 bytes part1/.vert_wave.js.swp | Bin 20480 -> 16384 bytes part1/vert_wave.js | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 part1/.vert_wave.html.swp diff --git a/part1/.vert_wave.html.swp b/part1/.vert_wave.html.swp deleted file mode 100644 index 967af9694dec593d3df883d662126b8bd5cc6521..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2&yU+g6vwAMR9c_~!L<@o_mVE_*!fXfHg+Vm+Fi8*5rMKr2((P%NjxjtW9*5O z2$gHk@HcQm<%qcPFMxzV;!ohv1L9In@EuPQ=&G%%9+$E7O~x~C-n{pDGd?69`A4_j zr8k;wg6kDR?#-9)>*nBPLMoB6Y&p}nPrZ(AyMw)_TA0DZU5|}fRC>b!&ob|TB}vUhp7-i%e6Ji}tv#1gOsP7%07 zI_;K!)wx1ndv$nf%-&i8mVhN-30MM_fF)oFSOS*7Stp?KbL4L%c^>kib1UJ?UY39* zU{p)a6)=ym8a^zbE&L-(Oip^u;e z^d58-x&S?Rk&xe@pP_G{d(d5|gbJt&{fW50gT96CLv@zm z7Nw9GO?f0{X-+4JWU9BJEuzqwtO$qB!YyMK@xoiU6U3eJOgVLl9!bt5Hjt%I+H*)} z$El2XawPbCz>6}+i@u`bblW6c=aR3icWBJTG*+9$wzf>XaFdEfBaw5%Cl;%3W3Ew| z>`Xrm*NAq2X+yI%S^M~p4IpZ}nm9bw5LS_3;qrJaGgN!Dt=28Qp0V0=!Eh|g#yXSc za=YF1w>!;Nw{`ukHvmD2l-Dbmi5sta1(a(uaq+~7o_8uT#B2)r9JQZiVj_#wRD2bl zakd`87Vkcxc*d~aLriHjGsSf|+jO1AqkE`&+#b@0m@n!bG-er&E!Er2G#y&1Wx_*e zBn#}gU7E>^_Z&JGk%~j7<+r=eszRZ2 z@jB35HY#O;_0<+IpefBJuD{ zuhq_Od!Jpt9Qmcsfd(ZjmoZ@0xNlrb*Y0K2R#L#ip0&#dG^12KhdG)J3lHlZX zB(v@&z;NjjImIG|;YS^EaqSd|K}R1#_$(1Q#~I?7L?trCB*iK;44@lb@F7#g?H9>} zq-icOgK=nRK@~oDrWM+)W9`hl1 RsF+6Mq}@oj`Hb1tia!uPXaoQN delta 922 zcmYk)T}V@59LMqhaqsHd^kztJ$0>A9u_d`xRG{5R5xol4MHI6xij1NrBWP_jA+n3W z6FI~GafD~cG! z14Yum{L9jBTm0#{MxQZNU+YvzLGkqm~ALl#a!D|Uh(%-8=Oam~2AF|Qa0 zHg(z(kz*7@=OP4ThGX8U5 ZU>F0qiIa#p2=1so{oB9vzgx4z`3KJ~mni@M diff --git a/part1/vert_wave.js b/part1/vert_wave.js index b84747e..ed717b1 100644 --- a/part1/vert_wave.js +++ b/part1/vert_wave.js @@ -141,7 +141,7 @@ var mvp = mat4.create(); mat4.multiply(persp, mv, mvp); - time = time+0.01; + time = time+0.001; /////////////////////////////////////////////////////////////////////////// // Render context.clear(context.COLOR_BUFFER_BIT | context.DEPTH_BUFFER_BIT); From 594246caf51dcc901238a59ffc2d1dbb41f5a3b4 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 6 Nov 2013 02:10:21 -0500 Subject: [PATCH 03/21] Part2 walkthrough --- part1/.gl-matrix.js.swp | Bin 16384 -> 0 bytes part1/.vert_wave.js.swp | Bin 16384 -> 0 bytes part1/vert_wave _custom.html | 57 +++++++++++++ part1/vert_wave_custom.js | 155 +++++++++++++++++++++++++++++++++++ part1/vert_wave_simplex.html | 93 +++++++++++++++++++++ part2/.frag_globe.html.swp | Bin 0 -> 24576 bytes part2/.frag_globe.js.swp | Bin 0 -> 32768 bytes part2/frag_globe.html | 36 +++++++- part2/frag_globe.js | 10 ++- 9 files changed, 347 insertions(+), 4 deletions(-) delete mode 100644 part1/.gl-matrix.js.swp delete mode 100644 part1/.vert_wave.js.swp create mode 100644 part1/vert_wave _custom.html create mode 100644 part1/vert_wave_custom.js create mode 100644 part1/vert_wave_simplex.html create mode 100644 part2/.frag_globe.html.swp create mode 100644 part2/.frag_globe.js.swp diff --git a/part1/.gl-matrix.js.swp b/part1/.gl-matrix.js.swp deleted file mode 100644 index 61dbb5bcbfde903c9db959b17c627ec009ae6314..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 diff --git a/part1/vert_wave _custom.html b/part1/vert_wave _custom.html new file mode 100644 index 0000000..f620f29 --- /dev/null +++ b/part1/vert_wave _custom.html @@ -0,0 +1,57 @@ + + + +Vertex Wave + + + + + +
+ + + + + + + + + + + + diff --git a/part1/vert_wave_custom.js b/part1/vert_wave_custom.js new file mode 100644 index 0000000..bad6080 --- /dev/null +++ b/part1/vert_wave_custom.js @@ -0,0 +1,155 @@ +(function() { + "use strict"; + /*global window,document,Float32Array,Uint16Array,mat4,vec3,snoise*/ + /*global getShaderSource,createWebGLContext,createProgram*/ + + var NUM_WIDTH_PTS = 32; + var NUM_HEIGHT_PTS = 32; + + var message = document.getElementById("message"); + var canvas = document.getElementById("canvas"); + var context = createWebGLContext(canvas, message); + if (!context) { + return; + } + + /////////////////////////////////////////////////////////////////////////// + + context.viewport(0, 0, canvas.width, canvas.height); + context.clearColor(1.0, 1.0, 1.0, 1.0); + context.enable(context.DEPTH_TEST); + + var persp = mat4.create(); + mat4.perspective(45.0, 0.5, 0.1, 100.0, persp); + + var eye = [2.0, 1.0, 5.0]; + var center = [0.0, 0.0, 0.0]; + var up = [0.0, 0.0, 1.0]; + var view = mat4.create(); + mat4.lookAt(eye, center, up, view); + var time = 1.0; + + var positionLocation = 0; + var heightLocation = 1; + var u_modelViewPerspectiveLocation; + var u_time; + + (function initializeShader() { + var program; + var vs = getShaderSource(document.getElementById("vs")); + var fs = getShaderSource(document.getElementById("fs")); + + var program = createProgram(context, vs, fs, message); + context.bindAttribLocation(program, positionLocation, "position"); + u_modelViewPerspectiveLocation = context.getUniformLocation(program,"u_modelViewPerspective"); + u_time = context.getUniformLocation(program,"u_time"); + + context.useProgram(program); + })(); + + var heights; + var numberOfIndices; + + (function initializeGrid() { + function uploadMesh(positions, heights, indices) { + // Positions + var positionsName = context.createBuffer(); + context.bindBuffer(context.ARRAY_BUFFER, positionsName); + context.bufferData(context.ARRAY_BUFFER, positions, context.STATIC_DRAW); + context.vertexAttribPointer(positionLocation, 2, context.FLOAT, false, 0, 0); + context.enableVertexAttribArray(positionLocation); + + if (heights) + { + // Heights + var heightsName = context.createBuffer(); + context.bindBuffer(context.ARRAY_BUFFER, heightsName); + context.bufferData(context.ARRAY_BUFFER, heights.length * heights.BYTES_PER_ELEMENT, context.STREAM_DRAW); + context.vertexAttribPointer(heightLocation, 1, context.FLOAT, false, 0, 0); + context.enableVertexAttribArray(heightLocation); + } + + // Indices + var indicesName = context.createBuffer(); + context.bindBuffer(context.ELEMENT_ARRAY_BUFFER, indicesName); + context.bufferData(context.ELEMENT_ARRAY_BUFFER, indices, context.STATIC_DRAW); + } + + var WIDTH_DIVISIONS = NUM_WIDTH_PTS - 1; + var HEIGHT_DIVISIONS = NUM_HEIGHT_PTS - 1; + + var numberOfPositions = NUM_WIDTH_PTS * NUM_HEIGHT_PTS; + + var positions = new Float32Array(2 * numberOfPositions); + var indices = new Uint16Array(2 * ((NUM_HEIGHT_PTS * (NUM_WIDTH_PTS - 1)) + (NUM_WIDTH_PTS * (NUM_HEIGHT_PTS - 1)))); + + var positionsIndex = 0; + var indicesIndex = 0; + var length; + + for (var j = 0; j < NUM_WIDTH_PTS; ++j) + { + positions[positionsIndex++] = j /(NUM_WIDTH_PTS - 1); + positions[positionsIndex++] = 0.0; + + if (j>=1) + { + length = positionsIndex / 2; + indices[indicesIndex++] = length - 2; + indices[indicesIndex++] = length - 1; + } + } + + for (var i = 0; i < HEIGHT_DIVISIONS; ++i) + { + var v = (i + 1) / (NUM_HEIGHT_PTS - 1); + positions[positionsIndex++] = 0.0; + positions[positionsIndex++] = v; + + length = (positionsIndex / 2); + indices[indicesIndex++] = length - 1; + indices[indicesIndex++] = length - 1 - NUM_WIDTH_PTS; + + for (var k = 0; k < WIDTH_DIVISIONS; ++k) + { + positions[positionsIndex++] = (k + 1) / (NUM_WIDTH_PTS - 1); + positions[positionsIndex++] = v; + + length = positionsIndex / 2; + var new_pt = length - 1; + indices[indicesIndex++] = new_pt - 1; // Previous side + indices[indicesIndex++] = new_pt; + + indices[indicesIndex++] = new_pt - NUM_WIDTH_PTS; // Previous bottom + indices[indicesIndex++] = new_pt; + } + } + + uploadMesh(positions, heights, indices); + numberOfIndices = indices.length; + })(); + + (function animate(){ + /////////////////////////////////////////////////////////////////////////// + // Update + + var model = mat4.create(); + mat4.identity(model); + mat4.translate(model, [-0.5, -0.5, 0.0]); + var mv = mat4.create(); + mat4.multiply(view, model, mv); + var mvp = mat4.create(); + mat4.multiply(persp, mv, mvp); + time = time+0.1; + /////////////////////////////////////////////////////////////////////////// + // Render + context.clear(context.COLOR_BUFFER_BIT | context.DEPTH_BUFFER_BIT); + + context.uniformMatrix4fv(u_modelViewPerspectiveLocation, false, mvp); + context.uniform1f(u_time, time); + context.drawElements(context.LINES, numberOfIndices, context.UNSIGNED_SHORT,0); + + window.requestAnimFrame(animate); + })(); + +}()); diff --git a/part1/vert_wave_simplex.html b/part1/vert_wave_simplex.html new file mode 100644 index 0000000..8778454 --- /dev/null +++ b/part1/vert_wave_simplex.html @@ -0,0 +1,93 @@ + + + +Vertex Wave + + + + + +
+ + + + + + + + + + + + diff --git a/part2/.frag_globe.html.swp b/part2/.frag_globe.html.swp new file mode 100644 index 0000000000000000000000000000000000000000..0f58ef4549c3e917c29acd72f9431d40dbb98ca1 GIT binary patch literal 24576 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 yRD=?8wBpe|ia|-c(T*f4&X^VVwW^-ZK6C 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 literal 0 HcmV?d00001 diff --git a/part2/frag_globe.html b/part2/frag_globe.html index 6aa5609..0cf0799 100644 --- a/part2/frag_globe.html +++ b/part2/frag_globe.html @@ -27,6 +27,7 @@ varying vec3 v_Position; varying vec3 v_positionMC; + void main(void) { v_Normal = (u_InvTrans*vec4(Normal,0.0)).xyz; @@ -63,6 +64,7 @@ uniform float u_time; uniform mat4 u_InvTrans; + uniform vec2 u_resInverse; varying vec3 v_Normal; // surface normal in camera coordinates varying vec2 v_Texcoord; @@ -73,11 +75,14 @@ void main(void) { + float texTransitionLow = -0.2; + float texTransitionHigh = 0.2; // surface normal - normalized after rasterization vec3 normal = normalize(v_Normal); // normalized eye-to-position vector in camera coordinates vec3 eyeToPosition = normalize(v_Position); + float diffuseDotProd = dot(u_CameraSpaceDirLight,normal); float diffuse = clamp(dot(u_CameraSpaceDirLight, normal), 0.0, 1.0); vec3 toReflectedLight = reflect(-u_CameraSpaceDirLight, normal); @@ -86,12 +91,39 @@ float gammaCorrect = 1.0/1.2; //gamma correct by 1/1.2 + vec2 animatedTexcoord = vec2(0.06*u_time+v_Texcoord.x, v_Texcoord.y); vec3 dayColor = texture2D(u_DayDiffuse, v_Texcoord).rgb; vec3 nightColor = texture2D(u_Night, v_Texcoord).rgb; + vec3 cloudColor = texture2D(u_Cloud, animatedTexcoord).rgb; //apply gamma correction to nighttime texture nightColor = pow(nightColor,vec3(gammaCorrect)); - - vec3 color = ((0.6 * diffuse) + (0.4 * specular)) * dayColor; + float specMask = texture2D(u_EarthSpec,v_Texcoord).r; + float cloudTrans = texture2D(u_CloudTrans,animatedTexcoord).r; + + float bump = texture2D(u_Bump,v_Texcoord).r; + float bumpRight = texture2D(u_Bump,vec2(v_Texcoord.x+1.0*u_resInverse.x,v_Texcoord.y)).r; + float bumpTop = texture2D(u_Bump,vec2(v_Texcoord.x,v_Texcoord.y+1.0*u_resInverse.y)).r; + + vec3 tangentSpaceBumpNormal = normalize(vec3(bump-bumpRight,bump-bumpTop,0.2)); + vec3 bumpNormal = eastNorthUpToEyeCoordinates( v_positionMC, v_Normal)*tangentSpaceBumpNormal; + bumpNormal = normalize(bumpNormal); + float bumpDiffuse = clamp(dot(u_CameraSpaceDirLight,bumpNormal),0.0,1.0); + dayColor = ((0.6 * bumpDiffuse) + (0.4 * specMask*specular)) * dayColor; + dayColor = mix(diffuse*cloudColor,dayColor,cloudTrans); + + nightColor = mix(vec3(0.0),nightColor,cloudTrans); + + vec3 color; + if (diffuseDotProd>=texTransitionLow&&diffuseDotProd<=texTransitionHigh) + { + float t = (diffuseDotProd-texTransitionLow)/(texTransitionHigh-texTransitionLow); + color = mix(nightColor,dayColor,t); + } + else if (diffuseDotProd<0.0) + color = nightColor; + else + color = dayColor; + //((0.6 * diffuse) + (0.4 * specular)) * dayColor; gl_FragColor = vec4(color, 1.0); } diff --git a/part2/frag_globe.js b/part2/frag_globe.js index 1d8a877..75c58c1 100644 --- a/part2/frag_globe.js +++ b/part2/frag_globe.js @@ -55,6 +55,8 @@ var u_EarthSpecLocation; var u_BumpLocation; var u_timeLocation; + var u_resInverseLocation; + (function initializeShader() { var vs = getShaderSource(document.getElementById("vs")); @@ -76,7 +78,8 @@ u_BumpLocation = gl.getUniformLocation(program,"u_Bump"); u_timeLocation = gl.getUniformLocation(program,"u_time"); u_CameraSpaceDirLightLocation = gl.getUniformLocation(program,"u_CameraSpaceDirLight"); - + u_resInverseLocation = gl.getUniformLocation(program,"u_resInverse"); + gl.useProgram(program); })(); @@ -256,6 +259,7 @@ mat4.multiplyVec4(view, [lightdir[0], lightdir[1], lightdir[2], 0.0], lightdest); lightdir = vec3.createFrom(lightdest[0],lightdest[1],lightdest[2]); vec3.normalize(lightdir); + var resInverse = vec2.create([1.0/1024.0,1.0/512.0]); /////////////////////////////////////////////////////////////////////////// // Render @@ -265,8 +269,10 @@ gl.uniformMatrix4fv(u_ViewLocation, false, view); gl.uniformMatrix4fv(u_PerspLocation, false, persp); gl.uniformMatrix4fv(u_InvTransLocation, false, invTrans); - + gl.uniform3fv(u_CameraSpaceDirLightLocation, lightdir); + gl.uniform1f(u_timeLocation,time); + gl.uniform2fv(u_resInverseLocation,resInverse); gl.activeTexture(gl.TEXTURE0); gl.bindTexture(gl.TEXTURE_2D, dayTex); From 379d879f362250deb2fd11b5c341194f68189e03 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 6 Nov 2013 02:22:03 -0500 Subject: [PATCH 04/21] Part2 rim lighting --- part2/.frag_globe.html.swp | Bin 24576 -> 0 bytes part2/.frag_globe.js.swp | Bin 32768 -> 0 bytes part2/frag_globe.html | 4 ++++ 3 files changed, 4 insertions(+) delete mode 100644 part2/.frag_globe.html.swp delete mode 100644 part2/.frag_globe.js.swp diff --git a/part2/.frag_globe.html.swp b/part2/.frag_globe.html.swp deleted file mode 100644 index 0f58ef4549c3e917c29acd72f9431d40dbb98ca1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24576 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 yRD=?8wBpe|ia|-c(T*f4&X^VVwW^-ZK6C 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 diff --git a/part2/frag_globe.html b/part2/frag_globe.html index 0cf0799..8499709 100644 --- a/part2/frag_globe.html +++ b/part2/frag_globe.html @@ -124,6 +124,10 @@ else color = dayColor; //((0.6 * diffuse) + (0.4 * specular)) * dayColor; + + float rimFactor = dot(v_Normal,v_Position)+1.0; + if(rimFactor>0.0) + color+= vec3(rimFactor/4.0,rimFactor/2.0,rimFactor/2.0); gl_FragColor = vec4(color, 1.0); } From b74e883c145439007b1713eb97342cc53e829a91 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 9 Nov 2013 02:29:09 -0500 Subject: [PATCH 05/21] custom vertex shader textured using cube maps --- part1/.vert_wave _custom.html.swp | Bin 0 -> 12288 bytes part1/sky_negX.jpg | Bin 0 -> 34144 bytes part1/sky_negY.jpg | Bin 0 -> 34144 bytes part1/sky_negZ.jpg | Bin 0 -> 34144 bytes part1/sky_posX.jpg | Bin 0 -> 34144 bytes part1/sky_posY.jpg | Bin 0 -> 34144 bytes part1/sky_posZ.jpg | Bin 0 -> 34144 bytes part1/vert_wave _custom_textured.html | 68 ++++++++ part1/vert_wave_custom_textured.js | 239 ++++++++++++++++++++++++++ 9 files changed, 307 insertions(+) create mode 100644 part1/.vert_wave _custom.html.swp create mode 100644 part1/sky_negX.jpg create mode 100644 part1/sky_negY.jpg create mode 100644 part1/sky_negZ.jpg create mode 100644 part1/sky_posX.jpg create mode 100644 part1/sky_posY.jpg create mode 100644 part1/sky_posZ.jpg create mode 100644 part1/vert_wave _custom_textured.html create mode 100644 part1/vert_wave_custom_textured.js diff --git a/part1/.vert_wave _custom.html.swp b/part1/.vert_wave _custom.html.swp new file mode 100644 index 0000000000000000000000000000000000000000..ab1b8611e54c2391126344b78ac44a3247cc7b90 GIT binary patch literal 12288 zcmeI2&yO256vy34NDV(qfg>Ee(@Qqp$>i74?IsgZt-7TZNKsL?Jy0Si<0M{Y#@QJs zo2c}U03ifCMM_dOS(CWhn)50*~~aO#Ggo-}`v%NW1P= z4sN_oFPCcs*9AgueS80wekA7!nTd$Si)r@tQMZGeZfEaN4!Q06uEz!}NWE@{$FaB1 z!mw7U*1hYUZYPnWghi2vM;@LJ`9N*Ew|W2iYur4f?|KT}#ChummgtOTZGa1S|ndz!IiR%r~sXVzIlp}uc1$&51 zXLYD?d8Y9&b*NfQIBbf~m3PQy%=B>DEzdkX9OPJ^lI$uG3biQzlK`X8jhITr{4sl@ zm}Mpu*L{5>g~BN8?I&!sCqtP~pU(K8Q5%|IOwy1H`0q+rg zpGgtWh>5tUpEgY!OBOgLst2f3Ge9#lOcFj2sgN;^cp#?HgbqW=RC5Jg1imxO3H#36 zO~)+Yi8ptL$UEY(acKQuP-Ix&_p=0TCzQKE{pxWreUyK|X{k%%`-r!~?`Cwv#~;*Y-T#uJ&E zL3KG`(Z~|giR#Ok@<6aw%8i|MiN>0zw6f~A+E`XJVH?PFo${hoD_2VOaV;+;$C+DTT5pei=j-S9Dtcz6KrY04$=6Nci%W>gEFPx ztEu98HPq;`j0czC?6f7Qw?aP87T|!z*!8Ght>)38sak~Gclt8Hg59ODjCs?c$0AT; z->Ft=4JUtZedqGaJJ>^6U&H~Q!>Bh-69yY+AZA(Ih^HwV@m1huqPwi0$`JWCm7MHW zE0qaSYI*3^rmYRvr5!QnA(g{n$`w_TvJCTn=MBvGG*&#Ju8VQZW{-_>%vpf%5m$_k zm72KxXewsDbI0vob@ya6VM_EvB%+rjb|92IPGrP=U&C rL-W9cF-vqlzB5%rcLxw#N~n;x4>G9qHjd4=Jkvy4CMA4kzf8XaLo!+G literal 0 HcmV?d00001 diff --git a/part1/sky_negX.jpg b/part1/sky_negX.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c18ce7539aa7e570b2ab8254eec16ff410503e8c GIT binary patch literal 34144 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�^xMKg)A(!XEsC}DmKmE0;$@=fg?%J+R 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�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 Z;Yg%#ngds3V)y2qm}B!|DF6NC{{t1D`33+0 literal 0 HcmV?d00001 diff --git a/part1/sky_negY.jpg b/part1/sky_negY.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c18ce7539aa7e570b2ab8254eec16ff410503e8c GIT binary patch literal 34144 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�^xMKg)A(!XEsC}DmKmE0;$@=fg?%J+R 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�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 Z;Yg%#ngds3V)y2qm}B!|DF6NC{{t1D`33+0 literal 0 HcmV?d00001 diff --git a/part1/sky_negZ.jpg b/part1/sky_negZ.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c18ce7539aa7e570b2ab8254eec16ff410503e8c GIT binary patch literal 34144 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�^xMKg)A(!XEsC}DmKmE0;$@=fg?%J+R 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�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 Z;Yg%#ngds3V)y2qm}B!|DF6NC{{t1D`33+0 literal 0 HcmV?d00001 diff --git a/part1/sky_posX.jpg b/part1/sky_posX.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c18ce7539aa7e570b2ab8254eec16ff410503e8c GIT binary patch literal 34144 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�^xMKg)A(!XEsC}DmKmE0;$@=fg?%J+R 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�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 Z;Yg%#ngds3V)y2qm}B!|DF6NC{{t1D`33+0 literal 0 HcmV?d00001 diff --git a/part1/sky_posY.jpg b/part1/sky_posY.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c18ce7539aa7e570b2ab8254eec16ff410503e8c GIT binary patch literal 34144 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�^xMKg)A(!XEsC}DmKmE0;$@=fg?%J+R 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�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 Z;Yg%#ngds3V)y2qm}B!|DF6NC{{t1D`33+0 literal 0 HcmV?d00001 diff --git a/part1/sky_posZ.jpg b/part1/sky_posZ.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c18ce7539aa7e570b2ab8254eec16ff410503e8c GIT binary patch literal 34144 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�^xMKg)A(!XEsC}DmKmE0;$@=fg?%J+R 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�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 Z;Yg%#ngds3V)y2qm}B!|DF6NC{{t1D`33+0 literal 0 HcmV?d00001 diff --git a/part1/vert_wave _custom_textured.html b/part1/vert_wave _custom_textured.html new file mode 100644 index 0000000..3b43aa6 --- /dev/null +++ b/part1/vert_wave _custom_textured.html @@ -0,0 +1,68 @@ + + + +Vertex Wave + + + + + +
+ + + + + + + + + + + + diff --git a/part1/vert_wave_custom_textured.js b/part1/vert_wave_custom_textured.js new file mode 100644 index 0000000..1970b8e --- /dev/null +++ b/part1/vert_wave_custom_textured.js @@ -0,0 +1,239 @@ +(function() { + "use strict"; + /*global window,document,Float32Array,Uint16Array,mat4,vec3,snoise*/ + /*global getShaderSource,createWebGLContext,createProgram*/ + + var NUM_WIDTH_PTS = 128; + var NUM_HEIGHT_PTS = 128; + + var message = document.getElementById("message"); + var canvas = document.getElementById("canvas"); + var context = createWebGLContext(canvas, message); + if (!context) { + return; + } + + /////////////////////////////////////////////////////////////////////////// + + context.viewport(0, 0, canvas.width, canvas.height); + context.clearColor(1.0, 1.0, 1.0, 1.0); + context.enable(context.DEPTH_TEST); + + var persp = mat4.create(); + mat4.perspective(45.0, 0.5, 0.1, 100.0, persp); + + var eye = [2.0, 1.0, 5.0]; + var center = [0.0, 0.0, 0.0]; + var up = [0.0, 0.0, 1.0]; + var view = mat4.create(); + mat4.lookAt(eye, center, up, view); + var time = 1.0; + + var positionLocation = 0; + var heightLocation = 1; + var u_modelViewPerspectiveLocation; + var u_time; + var u_cubeTexLocation; + var u_sphereTexLocation; + var u_rippleCenterLocation; + + (function initializeShader() { + var program; + var vs = getShaderSource(document.getElementById("vs")); + var fs = getShaderSource(document.getElementById("fs")); + + var program = createProgram(context, vs, fs, message); + context.bindAttribLocation(program, positionLocation, "position"); + u_modelViewPerspectiveLocation = context.getUniformLocation(program,"u_modelViewPerspective"); + u_time = context.getUniformLocation(program,"u_time"); + u_rippleCenterLocation = context.getUniformLocation(program,"u_rippleCenter"); + + u_cubeTexLocation= context.getUniformLocation(program,"u_cubeTex"); + u_cubeTexLocation= context.getUniformLocation(program,"u_sphereTex"); + context.useProgram(program); + })(); + + var heights; + var numberOfIndices; + var rippleCenter; + + (function initializeGrid() { + function uploadMesh(positions, heights, indices) { + // Positions + var positionsName = context.createBuffer(); + context.bindBuffer(context.ARRAY_BUFFER, positionsName); + context.bufferData(context.ARRAY_BUFFER, positions, context.STATIC_DRAW); + context.vertexAttribPointer(positionLocation, 2, context.FLOAT, false, 0, 0); + context.enableVertexAttribArray(positionLocation); + + if (heights) + { + // Heights + var heightsName = context.createBuffer(); + context.bindBuffer(context.ARRAY_BUFFER, heightsName); + context.bufferData(context.ARRAY_BUFFER, heights.length * heights.BYTES_PER_ELEMENT, context.STREAM_DRAW); + context.vertexAttribPointer(heightLocation, 1, context.FLOAT, false, 0, 0); + context.enableVertexAttribArray(heightLocation); + } + + // Indices + var indicesName = context.createBuffer(); + context.bindBuffer(context.ELEMENT_ARRAY_BUFFER, indicesName); + context.bufferData(context.ELEMENT_ARRAY_BUFFER, indices, context.STATIC_DRAW); + } + + var WIDTH_DIVISIONS = NUM_WIDTH_PTS - 1; + var HEIGHT_DIVISIONS = NUM_HEIGHT_PTS - 1; + + var numberOfPositions = NUM_WIDTH_PTS * NUM_HEIGHT_PTS; + + var positions = new Float32Array(2 * numberOfPositions); + //var indices = new Uint16Array(2 * ((NUM_HEIGHT_PTS * (NUM_WIDTH_PTS - 1)) + (NUM_WIDTH_PTS * (NUM_HEIGHT_PTS - 1)))); + var indices = new Uint16Array( WIDTH_DIVISIONS*HEIGHT_DIVISIONS*6) + + var positionsIndex = 0; + var indicesIndex = 0; + var length; + + for (var j = 0; j < NUM_WIDTH_PTS; ++j) + { + positions[positionsIndex++] = j /(NUM_WIDTH_PTS - 1); + positions[positionsIndex++] = 0.0; + + if (j>=1) + { + length = positionsIndex / 2; + //indices[indicesIndex++] = length - 2; + //indices[indicesIndex++] = length - 1; + } + } + + for (var i = 0; i < HEIGHT_DIVISIONS; ++i) + { + var v = (i + 1) / (NUM_HEIGHT_PTS - 1); + positions[positionsIndex++] = 0.0; + positions[positionsIndex++] = v; + + length = (positionsIndex / 2); + //indices[indicesIndex++] = length - 1; + //indices[indicesIndex++] = length - 1 - NUM_WIDTH_PTS; + + for (var k = 0; k < WIDTH_DIVISIONS; ++k) + { + positions[positionsIndex++] = (k + 1) / (NUM_WIDTH_PTS - 1); + positions[positionsIndex++] = v; + + length = positionsIndex / 2; + var new_pt = length - 1; + //indices[indicesIndex++] = new_pt - 1; // Previous side + //indices[indicesIndex++] = new_pt; + + //indices[indicesIndex++] = new_pt - NUM_WIDTH_PTS; // Previous bottom + //indices[indicesIndex++] = new_pt; + } + } + + for ( var i=0; i Date: Sat, 9 Nov 2013 04:49:10 -0500 Subject: [PATCH 06/21] attempt for cubemap --- part2/frag_globe.html | 36 +++++++ part2/frag_globe.js | 215 ++++++++++++++++++++++++++++++++++++++---- part2/skybox-negx.jpg | Bin 0 -> 1350734 bytes part2/skybox-negy.jpg | Bin 0 -> 1350734 bytes part2/skybox-negz.jpg | Bin 0 -> 1350734 bytes part2/skybox-posx.jpg | Bin 0 -> 1350734 bytes part2/skybox-posy.jpg | Bin 0 -> 1350734 bytes part2/skybox-posz.jpg | Bin 0 -> 1350734 bytes 8 files changed, 235 insertions(+), 16 deletions(-) create mode 100644 part2/skybox-negx.jpg create mode 100644 part2/skybox-negy.jpg create mode 100644 part2/skybox-negz.jpg create mode 100644 part2/skybox-posx.jpg create mode 100644 part2/skybox-posy.jpg create mode 100644 part2/skybox-posz.jpg diff --git a/part2/frag_globe.html b/part2/frag_globe.html index 8499709..4978f33 100644 --- a/part2/frag_globe.html +++ b/part2/frag_globe.html @@ -10,6 +10,42 @@
+ + + + +