From 96410bd3ed65ef896a6e1c52860b3a80428b27cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EC=B1=84=EC=84=B1=ED=9D=AC?= <spring013@ajou.ac.kr>
Date: Sat, 22 Jun 2019 22:39:58 +0900
Subject: [PATCH] =?UTF-8?q?=EC=99=84=EC=84=B1!!!!?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 WebGLTextureExample.js         |  67 ++++++++++++++++++++++++++++++---
 descriptionImage/cubeimage.JPG | Bin 0 -> 31897 bytes
 index.html                     |   6 ++-
 style.css                      |  15 ++++++++
 4 files changed, 81 insertions(+), 7 deletions(-)
 create mode 100644 descriptionImage/cubeimage.JPG

diff --git a/WebGLTextureExample.js b/WebGLTextureExample.js
index 0b0306d..745c7f1 100644
--- a/WebGLTextureExample.js
+++ b/WebGLTextureExample.js
@@ -612,6 +612,7 @@ function initialiseBuffer2() {
     gl.bindTexture(gl.TEXTURE_CUBE_MAP, animal_texture);
 
 
+
     var animal_images = [
         { location: gl.TEXTURE_CUBE_MAP_POSITIVE_X, src: cuty_cat_src },
         { location: gl.TEXTURE_CUBE_MAP_NEGATIVE_X, src: cuty_cat_src },
@@ -636,6 +637,7 @@ function initialiseBuffer2() {
         });
     });
 
+
    gl.generateMipmap(gl.TEXTURE_CUBE_MAP);
    gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_LINEAR);
 
@@ -654,6 +656,9 @@ function initialiseShaders2() {
                 gl_FragColor = textureCube(Cube, normalize(texCoord)); 
                 gl_FragColor.a = 1.0 ; 
             }`;
+
+            document.getElementById("descriptionCode2").style.display ="block"
+            document.getElementById("descriptionCode2").innerHTML = "fragment Shader Source code <br><br>" + fragmentShaderSource;
             
     gl.fragShader = gl.createShader(gl.FRAGMENT_SHADER);
     gl.shaderSource(gl.fragShader, fragmentShaderSource);
@@ -676,6 +681,9 @@ function initialiseShaders2() {
 				gl_Position = Pmatrix*Vmatrix*Mmatrix*vec4(myVertex, 1.0); 
             }`;
 
+            document.getElementById("descriptionCode1").style.display ="block"
+            document.getElementById("descriptionCode1").innerHTML = "vertex Shader Source code <br><br>" + vertexShaderSource;
+
     // Create the vertex shader object
     gl.vertexShader = gl.createShader(gl.VERTEX_SHADER);
 
@@ -914,7 +922,7 @@ function onClickBasic(){
 function onClickCubeTexture(){
 
     document.getElementById("basicbtn").style.display = "none";
-
+    document.getElementById("cubeimg").style.display = "inline";
     document.getElementById("descriptionENG").innerHTML = `
     - Example of different texture mapping on each side of a 3D object, "cube". <br><br>
 
@@ -926,12 +934,52 @@ function onClickCubeTexture(){
 
     - Use the following method to map different textures on each side of the cube. <br> In the example, three images were mapped to different locations. <br>
 
-    step1>
-    step2>
-    step3>
-    step4>
+    step1> Define triangles on each side of the cube.  <br>
+    step2> Divide each side of the cube into positive + x, negative-x,  <br> positive + y, negative-y, positive + z and negative-z. <br>
+    step3> Define the textures to be placed on each side. <br>
+    step4> Map the defined textures to the corresponding locations. <br> <br>
+
+    - At this time, when mapping a texture to a cube,  <br> texture_cube_map can be used to conveniently map various textures to the cube. <br>
+
+    - When you look at the completed cube, you can see that the cat, rabbit, and puppy <br> are on different sides on each side while rotating. <br><br><br>
     
     `
+    var code = `    var animal_images = [ <br>
+        { location: gl.TEXTURE_CUBE_MAP_POSITIVE_X, src: cuty_cat_src }, <br>
+        { location: gl.TEXTURE_CUBE_MAP_NEGATIVE_X, src: cuty_cat_src }, <br>
+        { location: gl.TEXTURE_CUBE_MAP_POSITIVE_Y, src: cuty_dog_src }, <br>
+        { location: gl.TEXTURE_CUBE_MAP_NEGATIVE_Y, src: cuty_dog_src }, <br>
+        { location: gl.TEXTURE_CUBE_MAP_POSITIVE_Z, src: cuty_rabbit_src }, <br>
+        { location: gl.TEXTURE_CUBE_MAP_NEGATIVE_Z, src: cuty_rabbit_src }, <br>
+    ]; <br>
+
+    animal_images.forEach(function (animal_image) { 
+        const location = animal_image.location; 
+        const src = animal_image.src; <br>
+
+        gl.texImage2D(location, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array([0, 0, 255, 255])); <br>
+
+        const image = new Image(); 
+        image.src = src; 
+        image.addEventListener('load', function () { <br>
+            gl.bindTexture(gl.TEXTURE_CUBE_MAP, animal_texture); <br>
+            gl.texImage2D(location, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);<br>
+            gl.generateMipmap(gl.TEXTURE_CUBE_MAP);<br>
+        });<br>
+    }); <br>`
+
+    document.getElementById("addDescriptionCode").style.display="block"
+    document.getElementById("addDescriptionCode").innerHTML = "- texture image defined And bind : <br> " + code
+    document.getElementById("addcode1").style.display="inline"
+    document.getElementById("addcode1").innerHTML = `- texture image definition and binding: <br> Each image is defined as the location of positive x, negative x, positive y, <br>negative y, positive z, and negative z, and the image is loaded at once through the for statement. <br> At this time, it is easy to bind texture using TEXTURE_CUBE_MAP.<br>`
+
+    document.getElementById("descriptionCode1").style.display="block"
+
+    document.getElementById("code1").innerHTML = `<br>The rest is the same texture mapping we saw earlier, <br> but we can see that the dimension of the texture vector is vec3. <br> vec3 should be used because x, y, and z are all required.<br>`
+
+    document.getElementById("descriptionCode2").style.display="block"
+
+    document.getElementById("code2").innerHTML = `<br>In the fragment shader, texture mapping is performed using <br> texture coordinates received from the vertex shader. <br> At this time, it is defined as sampleCube instead of sample2D, <br> so it is easy to map to cube.<br> `
 
     document.getElementById("descriptionKOR").innerHTML = `<br><br> 3D object인 cube의 각 면에 서로 다른 texture mapping한 예제<br><br>
     
@@ -950,7 +998,14 @@ function onClickCubeTexture(){
 
     - 이 때, 정육면체에 texture를 mapping 할 때, <br>texture_cube_map을 이용하면, <br>편리하게 cube에 여러가지 texture들을 mapping 할 수 있다. <br>
 
-    - 완성된 cube를 보면, 회전하면서 각면에 고양이, 토끼, 강아지가 각각 다른 면에 위치해 있는 것을 볼 수 있다. <br>
+    - 완성된 cube를 보면, 회전하면서 각면에 고양이, 토끼, 강아지가 각각 다른 면에 위치해 있는 것을 볼 수 있다. <br><br><br>
+
+    - texture 이미지 정의와 바인딩 : 각 이미지를 positive x, negative x, positive y, negative y, positive z, negative z 의 location으로 정의해 놓고 for문을 통해 한꺼번에 이미지를 로딩 시켜준다. 이때, TEXTURE_CUBE_MAP을 이용하여 쉽게 texture를 binding할 수 있다. <br>
+
+    - vertex shader source code : 나머지는 이전에 보았던 texture mapping과 같지만, texture의 vector가 vec3로 dimension이 늘어난 것을 확인할 수 있다. x,y,z 가 모두 필요하기 때문에 vec3를 사용하여야한다. 
+
+    - fragment shader source code :
+    fragment shader에서는 vertex shader로 부터 받은 texture coordinate를 이용하여 texture mapping을 한다. 이때, sample2D로 정의하지않고, sampleCube로 정의해 주어 cube에 mapping하기 쉽도록 해준다.
 
     `
 
diff --git a/descriptionImage/cubeimage.JPG b/descriptionImage/cubeimage.JPG
new file mode 100644
index 0000000000000000000000000000000000000000..178ac3648c6cff087dde2cd63336abfbb9539bea
GIT binary patch
literal 31897
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%0Ab_jR|Lj0`G8
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
T!B3}y&yJ1CQ7=rG|K9`v;j<m}

literal 0
HcmV?d00001

diff --git a/index.html b/index.html
index 68d91d5..410aa13 100644
--- a/index.html
+++ b/index.html
@@ -29,8 +29,12 @@
 		<div id="descriptionDiv">
 
 			<img id="basicimage" src="descriptionImage/basic.JPG">
+			<img id="cubeimg" src="descriptionImage/cubeimage.JPG">
 			<h3 id="descriptionENG" style="color:darkblue;"> </h3>
-		
+
+
+			<p id="addDescriptionCode" style="color:palevioletred;"></p>
+			<p id="addcode1"></p>
 			<h3 id="descriptionCode1" style="color:palevioletred;"> </h3>
 			<p id="code1"></p>
 			<h3 id="descriptionCode2" style="color:palevioletred;"> </h3>
diff --git a/style.css b/style.css
index 18902aa..0501366 100644
--- a/style.css
+++ b/style.css
@@ -49,9 +49,24 @@
     display: none;
 }
 
+#addDescriptionCode{
+    width: 800px;
+    height: 450px;
+    border: 2px solid green;
+    border-radius: 4px;
+    display: none;
+}
+
 #basicimage{
     width: 600px;
     height: 400px;
     margin-left: 300px;
     display: none;
 }
+
+#cubeimg{
+    width: 600px;
+    height: 400px;
+    margin-left: 300px;
+    display: none;
+}
-- 
GitLab