{"id":25,"date":"2005-05-05T06:23:00","date_gmt":"2005-05-05T06:23:00","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=25"},"modified":"2017-01-29T20:30:33","modified_gmt":"2017-01-29T11:30:33","slug":"opengl-tutorial-texture-mapping","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=25","title":{"rendered":"[OpenGL Tutorial] Texture Mapping"},"content":{"rendered":"<p><P><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/1\/1401168985.jpg\" class=\"alignleft\" width=\"200\" height=\"150\" alt=\"\uc0ac\uc6a9\uc790 \uc0bd\uc785 \uc774\ubbf8\uc9c0\" \/><\/p>\n<p>\uc774\ubc88 \uc7a5\uc5d0\uc11c\ub294 \ucef4\ud4e8\ud130 \uadf8\ub798\ud53d\uc758 \uaf43\uc774\ub77c\uace0 \ud560\uc218\uc788\ub294 \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc5d0 \ub300\ud574\uc11c \uc54c\uc544\ubcf4\ub3c4\ub85d\ud558\uc790. \ucef4\ud4e8\ud130 \uadf8\ub798\ud53d\uc5d0 \uc788\uc5b4\uc11c \uac00\uc7a5 \ubc1c\uc804\ud55c \uae30\uc220\uc774 \ubc14\ub85c \uc774 \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc774\ub77c\uace0 \ud55c\ub2e4. \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc774 \ubb34\uc5c7\uc778\uc9c0 \uc7a0\uae50 \uc124\uba85\ud558\ub3c4\ub85d \ud558\uaca0\ub2e4. \ub460\uc774\ub77c\ub294 \uac8c\uc784\uc744 \ud574 \ubcf4\uc558\ub294\uac00? \ubcbd\uc73c\ub85c \ub9c9\ud78c \uac74\ubb3c \uc548\uc5d0\uc11c \uc0ac\uc545\ud55c \uc8fc\uc778\uacf5\uc774 \uc870\uc6a9\uc774 \uc0b4\uace0 \uc2f6\uc5b4\ud558\ub294 \ucc29\ud55c \uad34\ubb3c\uc744 \uc8fd\uc774\uace0 \ub2e4\ub2c8\ub294 \uc544\uc8fc \ubd88\uac74\uc804\ud55c \uac9c\uc774\ub2e4. \uc5ec\uae30\uc11c \ub460\uc5d0 \ub098\uc624\ub294 \ubcbd\uc744 \uc0dd\uac01\ud574 \ubcf4\uc790. \uadf8 \ubcbd\uc740 \uc6d0\ub798 \uadf8\ub0e5 \ud3f4\ub9ac\uace4(\uba74)\uc5d0 \ubd88\uacfc \ud588\ub2e4. \uadf8\ub7f0\ub370 \uadf8 \uba74\uc704\uc5d0 \uadf8\ub9bc\uc744 \uc785\ud600 \ub9c8\uce58 \uc9c4\uc9dc \ubcbd\ucc98\ub7fc \ubcf4\uc774\uac8c \ud55c \uac83\uc774\ub2e4. \ubc14\ub85c \uadf8\ub9bc\uc744 \ud3f4\ub9ac\uace4\uc5d0 \uc785\ud788\ub294 \uac83\uc744 \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc774\ub77c\uace0 \ud55c\ub2e4. \uadf8 \ub460\uc774\ub77c\ub294 \uac8c\uc784\uc5d0\uc11c \uc0ac\uc6a9\ud55c \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uae30\uc220\uc740 \uc544\uc8fc \uc6d0\uc2dc\uc801\uc778 \uae30\uc220\uc774\ub2e4. \ub460\uc758 \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc740 \ub2e8\uc9c0 \ud3c9\ud3c9\ud55c \uba74\uc5d0\ub9cc \uadf8\ub9bc\uc744 \uc785\ud790\uc218\uc788\ub2e4. \ud558\uc9c0\ub9cc OpenGL\uc5d0\uc11c\ub294 \uace1\uba74\uc5d0\ub3c4 \uadf8\ub9bc\uc744 \uc785\ud790\uc218\uc788\ub2e4.<\/P><P>\ub300\uac15 \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc5d0 \ub300\ud55c \uc18c\uac1c\ub294 \uc774\ucbe4\uc5d0\uc11c \uc811\uace0 OpenGL\uc5d0\uc11c \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uac00\uc6b4\ub370 2\ucc28\uc6d0 \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc5d0 \ub300\ud574\uc11c \uc54c\uc544\ubcf4\ub3c4\ub85d \ud558\uc790. 2\ucc28\uc6d0 \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc744 \uc124\uba85\ud558\uae30 \uc704\ud574 \ud544\uc790\uac00 \uc900\ube44\ud55c \uc2e4\uc2b5 \uc608\uc81c\ub294 \uc6b0\ub9ac\uac00 \uc9c0\ub09c\uc7a5\uc5d0\uc11c \ub9cc\ub4e0 \uc815\uc721\uba74\uccb4\uc758 \uac01\uba74\ub4e4\uc5d0 \uc138\uac00\uc9c0 \uadf8\ub9bc\uc744 \uc785\ud788\ub294 \uac83, \uc989 \uadf8\ub9bc(\ud14d\uc2a4\uccd0)\ub97c \ub9f5\ud551\ud558\ub294 \uac83\uc73c\ub85c \ud558\uaca0\ub2e4. \uc2dc\uc791\uc5d0 \uc55e\uc11c \uadf8 \uacb0\uacfc\ub97c \uba3c\uc800 \ubcf4\uc5ec\uc8fc\uaca0\ub2e4.<\/P><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/1\/1209478436.gif\" class=\"aligncenter\" width=\"510\" height=\"396\" alt=\"\uc0ac\uc6a9\uc790 \uc0bd\uc785 \uc774\ubbf8\uc9c0\" \/><br \/><P>\uadf8 \uacb0\uacfc\ub97c \uc0b4\uba70 \ubcf4\uc558\uc73c\uba74 \uc774\uc81c \uc5b4\ub5bb\uac8c \uc774\ub7f0 \uacb0\uacfc\ub97c \uc5bb\uc5c8\ub294\uc9c0\uc758 \uadf8 \uacfc\uc815\uc744 \uc124\uba85\ud558\uae30 \uc704\ud574 5\uc7a5\uc5d0\uc11c \uc0ac\uc6a9\ud55c \uc18c\uc2a4\ub97c \uae30\ubcf8\uc73c\ub85c \ud574\uc11c \uc81c\uc791\ud574\ub3c4\ub85d \ud558\uaca0\ub2e4. \uc790! 5\uc7a5\uc758 \uc18c\uc2a4\ub97c \ube44\uc8fc\uc5bc\uc528++\ub85c \uc5f4\uc5b4 \ubcf4\uae30 \ubc14\ub780\ub2e4.<\/P><P>\ud14d\uc2a4\uccd0 \ub9f5\ud551\uc744 \ud558\uae30 \uc704\ud574 \uc900\ube44\ud574\uc57c\ub420 \uac83\ub4e4\uc740 \ubb34\uc5c7\uc778\uac00? \ubc14\ub85c \ud14d\uc2a4\uccd0, \uc989 \uadf8\ub9bc\uc774\ub2e4. \uc774 \uc7a5\uc5d0\uc11c\ub294 3\uac1c\uc758 \uadf8\ub9bc\uc774 \ud544\uc694\ud558\uaca0\ub2e4. OpenGL\uc5d0\uc11c\ub294 \uac04\ub2e8\ud558\uac8c \uadf8\ub9bc \ud30c\uc77c(BMP)\uc744 \ubc14\ub85c \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc18c\uc2a4\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\ub2e4. \uc774 \uadf8\ub9bc \ud30c\uc77c\uc744 \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc18c\uc2a4\ub85c \ubcc0\ud658\ud574 \uc8fc\ub294 \ub8e8\ud2f4\uc774 \ud544\uc694\ud55c\ub2e4. \ub2e4\uc74c\uc774 \ubc14\ub85c \uadf8 \ub8e8\ud2f4\uc774\ub2e4.<\/P><\/p>\n<pre>AUX_RGBImageRec *LoadBMPFile(char *filename)\r\n{\r\n    FILE *hFile = NULL;\r\n    if(!filename) return NULL;\r\n   \r\n    hFile = fopen(filename, \"r\");\r\n    if(hFile) {\r\n        fclose(hFile);\r\n        return auxDIBImageLoad(filename);\r\n    }\r\n   \r\n    return NULL;\r\n}<\/pre>\n<p>AUX_RGBImageRec \uad6c\uc870\uccb4\ub294 AUX \ub77c\uc774\ube0c\ub7ec\ub9ac\uc758 \ud568\uc218\ub85c BMP \ud30c\uc77c\uc758 \ud06c\uae30\uc640 \uadf8\ub9bc \ub370\uc774\ud0c0 \ud3ec\uc778\ud130\ub97c \uac00\uc9c0\uace0 \uc788\ub2e4. \uc704\uc758 \ud568\uc218\ub294 \ud30c\uc77c \uc774\ub984 \uc778\uc790\ub97c \uac00\uc9c0\ub294\ub370 \uadf8 \uc778\uc790\uc5d0 \ud574\ub2f9\ud558\ub294 \uac83\uc774 BMP \ud30c\uc77c\uc774\ub2e4. \uc911\uc694\ud55c \ud568\uc218\ub294 auxDIBImageLoad \ud568\uc218\uc774\uace0 \ub098\uba38\uc9c0 \ubaa8\ub4e0 \ub8e8\ud2f4\uc740 \ud30c\uc77c\uc774 \uc874\uc7ac\ud558\ub294\uc9c0\uc744 \ucc38\uc870\ud558\uae30 \uc704\ud568\uc774\ub2e4. \ubaa8\ub4e0 \uc624\ub958\uc5d0 \uc788\uc5b4\uc11c NULL \uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<P>\uc774\uc81c \uadf8\ub9bc \ud30c\uc77c\uc5d0\uc11c \ub9f5\ud551 \uc18c\uc2a4\ub97c \uc77d\uc5b4 \ub4e4\uc774\ub294 \ub8e8\ud2f4\uc774 \uc644\uc131\ub418\uc5c8\ub2e4. \uadf8\ub807\ub2e4\uba74 \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc744 OpenGL\uc5d0\uc11c \uc0ac\uc6a9\ud560\uc218\uc788\ub3c4\ub85d Setting\uc744 \ud574\uc918\uc57c \ud558\ub294\ub370 \uadf8\uc5d0 \ud574\ub2f9\ub418\ub294 \ucf54\ub4dc\ub4e4\uc744 \uc0b4\ud3b4\ubcf4\uc790.<\/P><\/p>\n<pre>AUX_RGBImageRec *texRec[3]; \/\/<1>\r\nmemset(texRec, 0, sizeof(void *)*3); \/\/<2>\r\n\r\nif((texRec[0]=LoadBMPFile(\"img.bmp\")) && \/\/<3>\r\n    (texRec[1]=LoadBMPFile(\"img2.bmp\")) &&\r\n    (texRec[2]=LoadBMPFile(\"img3.bmp\"))) {\r\n    glGenTextures(3, &tex[0]); \/\/<4>\r\n    for(int i=0; i<3; i++) { \/\/<5>\r\n        glBindTexture(GL_TEXTURE_2D, tex[i]); \/\/<6>\r\n        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); \/\/<7>\r\n        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); \/\/<8>\r\n        glTexImage2D(GL_TEXTURE_2D, 0, 3, texRec[i]->sizeX, texRec[i]->sizeY, 0, \r\n                 GL_RGB, GL_UNSIGNED_BYTE,texRec[i]->data); \/\/<9>\r\n    }\r\n} else return FALSE;\r\n\r\nfor(int i=0; i<3; i++) { \/\/<10>\r\n    if(texRec[i]) {\r\n        if(texRec[i]->data) free(texRec[i]->data);\r\n        free(texRec[i]);\r\n    } else return FALSE;\r\n}\r\n\r\nglEnable(GL_TEXTURE_2D); \/\/<11>\r\nglTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); \/\/<12><\/pre>\n<p>\uc790, \ud558\ub098 \ud558\ub098 \uc0b4\ud3b4 \ubcf4\ub3c4\ub85d\ud558\uc790.<br \/>\n<P><1> \ucf54\ub4dc\ub294 \uc6b0\ub9ac\uac00 3\uac1c\uc758 \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc18c\uc2a4\ub97c \ub9cc\ub4e4\uc5b4\uc57c \ud558\uae30 \ub54c\ubb38\uc5d0 3\uac1c\uc758 Cell\uc744 \uac16\ub294 \ubc30\uc5f4\uc744 \uc120\uc5b8\ud55c \uac83\uc774\ub2e4. AUX_RGBImageRec \uad6c\uc870\uccb4 \ud0c0\uc785\uc740 \uc774\ubbf8 \uc55e\uc5d0\uc11c \uc0b4\ud3b4\ubcf4\uc558\ub294\ub370 \ubc14\ub85c \uadf8\ub9bc \ud30c\uc77c\uc5d0\uc11c \ub9f5\ud551 \uc18c\uc2a4\ub97c \uc5bb\uae30 \uc704\ud574 \uc0ac\uc6a9\ud560 \ud568\uc218\uc758 \ubc18\ud658\uac12\uc744 \uc800\uc7a5\ud560 \ubaa9\uc801\uc73c\ub85c \uc4f0\uc778\ub2e4. <\/P><P><2> \ucf54\ub4dc\ub294 \uba54\ubaa8\ub9ac \uc0c1\uc758 \ubcc0\uc218\ub97c 0\uc73c\ub85c \ub9cc\ub4dc\ub294 \ucf54\ub4dc\uc778\ub370 \uad73\uc774 \ud544\uc694\uce58 \uc54a\ub294 \ucf54\ub4dc\uc774\ub098 \uae54\ub054\uc744 \ub5a0\ub294 \ud504\ub85c\uadf8\ub798\uba38\ub4e4\uc774 \uc990\uaca8 \uc0ac\uc6a9\ud558\ub294 \uc2a4\ud0c0\uc77c\ub85c \uc5b4\ub5a4 \ubcc0\uc218\ub97c \uc0ac\uc6a9\ud558\uae30\uc5d0 \uc55e\uc11c 0\uc73c\ub85c \ucd08\uae30\ud654\ub97c \uc2dc\ucf1c\ubcf8 \uacbd\ud5d8\uc774 \uc788\ub294 \ub3c5\uc790\ub3c4 \uc788\uc744 \uac83\uc774\ub2e4. \ubc14\ub85c \uadf8\uac83\uc774\ub2e4. <\/P><P><3> \ucf54\ub4dc\ub294 IF \ubb38\uc778\ub370 \uc55e\uc5d0\uc11c \uc0b4\ud3b4\ubcf8 \uadf8\ub9bc\ud30c\uc77c\uc5d0\uc11c \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc18c\uc2a4\ub97c \uc0dd\uc131\ud558\ub294 \ud568\uc218\ub97c \uc0ac\uc6a9\ud574\uc11c \uac01\uac01\uc758 3\uac00\uc9c0 \uadf8\ub9bc \ud30c\uc77c\uc744 \uc2e4\uc81c \uc77d\uc5b4 \ub4e4\uc774\ub294 \ub8e8\ud2f4\uc774\ub2e4. \uc624\ub958(\ud30c\uc77c\uc774 \uc5c6\ub2e4)\uac00 \ubc1c\uc0dd\ud558\uc9c0 \uc54a\ub294 \ub2e4\uba74 \uc2e4\ud589\uc810\uc774 IF\ubb38\uc758 TRUE \ube14\ub7ed\uc73c\ub85c \uc9c4\uc785\ud55c\ub2e4. <\/P><P><4> \ucf54\ub4dc\uc5d0\uc11c \uc0c8\ub85c\uc6b4 \ud568\uc218\uac00 \ub4f1\uc7a5\ud588\ub2e4. \uc55e\uc73c\ub85c OpenGL\uc758 \uc0c8\ub85c\uc6b4 \ud568\uc218\uac00 \ub9ce\uc774 \ub4f1\uc7a5\ud560 \uac83\uc774\ub2e4. glGenTextures \ud568\uc218\ub294 2\uac1c\uc758 \uc778\uc790\ub97c \uac16\ub294\ub370 \uccab\uc9f8\ub294 \uc6b0\ub9ac\uac00 \uba87\uac1c\uc758 \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc18c\uc2a4\ub97c \uc0dd\uc131\ud560 \uac83\uc778\uc9c0\ub97c \uc9c0\uc815\ud558\ub294 \uac83\uc774\uace0 \ub450\ubc88\uc9f8\ub294 \uadf8\uc911 \uac00\uc7a5 \uccab\ubc88\uc9f8 \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc18c\uc2a4\uc758 \uc2dd\ubcc4\uc790\uc758 \uc8fc\uc18c\uac12\uc774\ub2e4. \uc5ec\uae30\uc11c \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc18c\uc2a4\uc758 \uc2dd\ubcc4\uc790\ub77c \ud568\uc740 \uc77c\ub2e8 \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc18c\uc2a4\uac00 \uc0dd\uc131\ub418\uc5c8\uc73c\uba74 \ub098\uc911\uc5d0 \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c \uadf8 \ub9f5\ud551 \uc18c\uc2a4\uc5d0 \uc774\ub984\uc744 \ubd99\uc774\uac8c \ub418\ub294\ub370 \uadf8 \uc774\ub984\uc73c\ub85c\uc368 \uc815\uc218\uac12\uc744 \uc0ac\uc6a9\ud558\uba70 \uadf8 \uc815\uc218\uac12\uc744 \uc2dd\ubcc4\uc790\ub77c \ubd80\ub978\ub2e4. \uadf8\ub7f0\ub370 \ub738\uae08\uc5c6\uc774 tex\ub77c\ub294 \ubcc0\uc218\uac00 \ud280\uc5b4 \ub098\uc654\ub294\ub370 \uc774 \ubcc0\uc218\ub294 \uc804\uc5ed \ubcc0\uc218 \uc120\uc5b8\ubd80\uc5d0 \ub2e4\uc74c\uacfc \uac19\uc774 \uc58c\uc804\ud558\uac8c \uc120\uc5b8\ub418\uc5b4 \uc788\ub2e4.<\/P><\/p>\n<pre>GLuint tex[3];<\/pre>\n<p>3\uac1c\uc758 \ud14d\uc2a4\uccd0\ub97c \uc0ac\uc6a9\ud560 \uac83\uc774\ubbc0\ub85c \uc5ed\uc2dc 3\uac1c\uc758 Cell\uc744 \uac16\ub294 \ubc30\uc5f4\uc744 \uc120\uc5b8\ud558\uc600\ub2e4.<P><5>\ubc88 \ucf54\ub4dc\ub294 FOR \ubb38\uc778\ub370 3\ubc88 \ubc18\ubcf5\ud558\uac8c \ub418\uc5b4 \uc788\ub294\ub370 \ud55c\ubc88\uc758 \ubc18\ubcf5\ub2f9 \ud558\ub098\uc758 \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc18c\uc2a4\uc5d0 \ub300\ud55c \ud2b9\uc131\uc744 \uc9c0\uc815\ud558\uac8c \ub41c\ub2e4. <\/P><P><6>\ucf54\ub4dc\uc5d0 \ub098\uc624\ub294 \ud568\uc218\uc778 glBindTexture\ub294 \uc55e\uc73c\ub85c \uc124\uc815\ud560 \ud14d\uc2a4\uccd0\uc758 \uc2dd\ubcc4\uc790\ub97c \uc9c0\uc815\ud558\ub294 \uac83\uc73c\ub85c \uccab\ubc88\uc9f8 \uc778\uc790\ub294 \ud14d\uc2a4\uccd0\uac00 1\ucc28\uc6d0(GL_TEXTURE_1D)\uc778\uc9c0, 2\ucc28\uc6d0(GL_TEXTURE_2D)\uc778\uc9c0\ub97c \uc9c0\uc815\ud55c\ub2e4. \ub450\ubc88\uc9f8 \uc778\uc790\ub294 \ub2e4\uc74c\uc5d0 \uc124\uc815\ud560 \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc758 \uc2dd\ubcc4\uc790\uac00 \uc628\ub2e4. \uc774 \ud568\uc218 \uc774\ud6c4\ub85c \uc774\ub8e8\uc5b4\uc9c0\ub294 \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc758 \ud2b9\uc131\uc5d0 \ub300\ud55c \uc124\uc815\uc740 \ubaa8\ub450 \uc55e\uc11c \uc9c0\uc815\ub41c \uc2dd\ubcc4\uc790\uc5d0 \ud574\ub2f9\ud558\ub294 \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc5d0 \ub300\ud55c \uac83\uc774\ub2e4. <\/P><P><7>, <8>\ubc88 \ucf54\ub4dc\ub97c \uc124\uba85\ud558\uae30 \uc804\uc5d0 \uba3c\uc800 \uc54c\uc544\uc57c \ud560 \uac83\uc774 \uc788\ub2e4. \uc2e4\uc81c \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc758 \ud06c\uae30\uc640 \ub9f5\ud551\ub418\uc5b4\uc9c8 \ubb3c\uccb4\uc758 \ud06c\uae30\uac00 \ub611\uac19\ub2e4\uba74 \uac04\ub2e8\ud558\uac8c \ub9f5\ud551\uc744 \uc2dc\ud0a4\uba74 \ub418\uaca0\uc73c\ub2c8 \uc791\uac70\ub098 \ud06c\ub2e4\uba74 \uc5b4\ub5a4 \uc2dd\uc73c\ub85c \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc18c\uc2a4\ub97c \ubb3c\uccb4\uc758 \ud06c\uae30\uc5d0 \ub9de\uac8c \uc904\uc774\uac70\ub098 \ud0a4\uc6b8 \uac83\uc778\uac00? \ubc14\ub85c \uadf8 \uc5b4\ub5bb\uac8c \uc904\uc774\uac70\ub098 \ud0a4\uc6b8 \uac83\uc5d0 \ub300\ud55c \ubc29\ubc95\uc73c\ub85c \ub300\ud45c\uc801\uc73c\ub85c 2\uac00\uc9c0\uac00 \uc788\ub294\ub370 \ud558\ub098\ub294 \ubcf4\uac04\ubc95(GL_LINEAR)\uacfc \ucd5c\uadfc\uc810\ubc95(GL_NEAREST)\uac00 \uc788\ub2e4. \uc774\ud574\uac00 \ub418\uc5c8\ub2e4\uba74 glTexParameteri\uc5d0 \ub300\ud574\uc11c \uc0b4\ud3b4\ubcf4\uc790. \uc138\uac1c\uc758 \uc778\uc790\ub97c \ucde8\ud558\ub294\ub370 \uccab\ubc88\uc9f8\ub294 1\ucc28\uc6d0\uc778\uc9c0, 2\ucc28\uc6d0\uc778\uc9c0\ub97c \uc9c0\uc815\ud558\ub294 \uac83\uc774\uace0 \ub450\ubc88\uc9f8 \uc778\uc790\ub294 \ub9cc\uc57d \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc18c\uc2a4\uac00 \ub9f5\ud551\ub418\uc5b4\uc9c8 \ubb3c\uccb4\ubcf4\ub2e4 \ud074 \uacbd\uc6b0\uc5d0 \uc5b4\ub5a4 \uc2dd\uc73c\ub85c \ucd95\uc18c\uc2dc\ucf1c\uc57c \ud558\ub294\uc9c0\ub97c \uc9c0\uc815\ud558\ub294 GL_TEXTURE_MIN_FILTER\uc640 \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc18c\uc2a4\uac00 \ub9f5\ud551\ub418\uc5b4\uc9c8 \ubb3c\uccb4\ubcf4\ub2e4 \uc791\uc744 \uacbd\uc6b0 \uc5b4\ub5a4 \uc2dd\uc73c\ub85c \ud655\ub300\uc2dc\ucf1c\uc57c \ud558\ub294\uc9c0\ub97c \uc9c0\uc815\ud558\ub294 GL_TEXTURE_MAG_FILTER\uac00 \uc628\ub2e4. \uc138\ubc88\uc9f8 \uc778\uc790\ub294 \uc2e4\uc81c \uadf8 \ucd95\uc18c, \ud655\ub300\uc2dc\ud0a4\ub294 \ubc29\ubc95\uc744 \uae30\uc220\ud558\ub294\ub370 \ub300\ud45c\uc801\uc73c\ub85c GL_LINEAR\uc640 GL_NEAREST\uac00 \uc628\ub2e4. GL_LENEAR\uc774 GL_NEAREST\ubcf4\ub2e4 \ub098\uc740 \uc7a5\uba74\uc744 \uc5bb\uc744 \uc218 \uc788\uc73c\ub098 \uc18d\ub3c4\uac00 \ub290\ub9ac\ub2e4. \uc704\uc758 \ucf54\ub4dc\uc5d0\uc11c\ub294 \ub098\uc740 \uc7a5\uba74\uc744 \uc5bb\uae30\uc704\ud574 \ubaa8\ub4e0 \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc18c\uc2a4\uc5d0 \ub300\ud574\uc11c \ubcf4\uac04\ubc95\uc744 \uc0ac\uc6a9\ud558\uc600\ub2e4.<\/P><br \/>\n<P><9>\ubc88 \ucf54\ub4dc\ub294 \uaf64 \ub9ce\uc740 \uc778\uc790\ub97c \uc694\uad6c\ud558\ub294 glTexImage2D\ub77c\uace0 \ud558\ub294 \ub188\uc774\ub2e4. \ubaa8\ub450 9\uac1c\uc758 \uc778\uc790\ub97c \uac16\ub294\ub2e4. \uccab\ubc88\uc9f8\ub294 \ud14d\uc2a4\uccd0 \uc774\ubbf8\uc9c0\uac00 1\ucc28\uc6d0\uc778\uc9c0 2\ucc28\uc6d0\uc778\uc9c0\ub97c \uc9c0\uc815\ud558\ub294 \uac83\uc774\uace0 \ub450\ubc88\uc9f8 \uc778\uc790\ub294 \ud56d\uc0c1 0\uc73c\ub85c \uc9c0\uc815\ud558\uac8c \ub41c\ub2e4. \uc0ac\uc2e4 \uc774 \uc778\uc790\ub294 Detail Level\uc744 \ub098\ud0c0\ub0b4\ub294 \ub188\uc73c\ub85c \ubcf4\ub2e4 \ub098\uc740 Midmap \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc744 \uad6c\ud604\ud560\ub54c \uc0ac\uc6a9\ud558\ub294 \uac83\uc774\ub2e4. \uc774\uc7a5\uc5d0\uc11c\ub294 \uc0ac\uc6a9\ubc95\uc5d0 \ub300\ud574 \uc5b8\uae09\ud558\uc9c0 \uc54a\uaca0\uc9c0\ub9cc \uac04\ub7b5\ud558\uac8c \uc18c\uac1c\ud558\uc790\uba74 \uc55e\uc5d0\uc11c \uc6b0\ub9ac\ub294 \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc18c\uc2a4\uac00 \ubb3c\uccb4\ubcf4\ub2e4 \ud06c\uac70\ub098 \uc791\uc744\ub54c \ub9f5\ud551 \uc18c\uc2a4\ub97c \uc904\uc774\uac70\ub098 \ud0a4\uc6b4\ub2e4\uace0 \ud588\ub2e4. \ud558\uc9c0\ub9cc Midmap \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc740 \ucc98\uc74c\ubd80\ud130 \ubbf8\ub9ac \ud070 \ub9f5\ud551 \uc18c\uc2a4\uc640 \uadf8\ub9ac\uace0 \uc911\uac04 \ub9f5\ud551 \uc18c\uc2a4, \uc791\uc740 \ub9f5\ud551 \uc18c\uc2a4\ub4f1 \ub9ce\uc740 \ub9f5\ud551 \uc18c\uc2a4\ub97c \uc900\ube44\ud574\uc11c \ubcf4\ub2e4 \ub098\uc740 \uc7a5\uba74\uc744 \uc5bb\uc744 \uc218 \uc788\ub294\ub370 \uc774\ub7f0 Midmap \ub9f5\ud551 \uc18c\uc2a4 \uc774\ubbf8\uc9c0\ub4e4\uc740 \ud504\ub85c\uadf8\ub798\uba38\uac00 \ucc98\uc74c\ubd80\ud130 \uadf8\ub9bc \ud30c\uc77c\ub85c \ub9cc\ub4e4\uc5b4 \ub193\uace0 \uc9c0\uc815\ud558\ub294 \uacbd\uc6b0\uc640 \ucef4\ud4e8\ud130\uac00 \uc790\ub3d9\uc73c\ub85c \uc0dd\uc131\ud558\ub294 \uacbd\uc6b0\uac00 \uc788\ub2e4. \uc774\uc81c \uacc4\uc18d \uc778\uc790\uc5d0 \ub300\ud574 \uc54c\uc544\ubcf4\uc790. \uc138\ubc88\uc9f8 \uc778\uc790\ub294 \uc0dd\uc0c1 \uad6c\uc131 \uc694\uc18c\uc758 \uac2f\uc218\uc778\ub370 BMP \ud30c\uc77c\uc740 RGB\uc758 \uc138\uac00\uc9c0 \uc0c9\uc0c1\uc694\uc18c\uac00 \uc788\uc73c\ubbc0\ub85c 3\uc774 \uc628\ub2e4. \ub124\ubc88\uc7ac\uc640 \ub2e4\uc12f\ubc88\uc9f8\ub294 \uc774\ubbf8\uc9c0\uc758 \uac00\ub85c \uae38\uc774\uc640 \uc138\ub85c \uae38\uc774\ub97c \ub098\ud0c0\ub0b4\uac8c \ub418\uace0 \uc5ec\uc12f\ubc88\uc9f8\ub294 \uc774\ubbf8\uc9c0\uc758 \uacbd\uacc4\uc5d0 \ub300\ud55c \ud53d\uc140\ub450\uae68\ub97c \uc9c0\uc815\ud558\uac8c \ub41c\ub2e4. \uc774 \uc608\uc81c\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \uadf8\ub9bc\ub4e4\uc740 \ubaa8\ub450 \ubd88\ud544\uc694\ud55c \uacbd\uacc4\uac00 \uc5c6\uc73c\ubbc0\ub85c 0\uc774 \ub41c\ub2e4. \uc77c\uacf1\ubc88\uc9f8\ub294 \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc18c\uc2a4\uc758 \uad6c\uc131 \uc694\uc18c\ub97c \ubd84\uba85\ud558\uac8c \uc9c0\uc815\ud558\ub294 \uac83\uc73c\ub85c GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_RGB \ub4f1 \uc5ec\ub7ec \uac12\uc774 \uc62c\uc218\uc788\uc73c\ub098 \uc5ec\uae30\uc11c\ub294 GL_RGB\ub85c \uc774\ubbf8 \uc6b0\ub9ac\ub294 \uadf8\ub9bc\ud30c\uc77c\uc5d0\uc11c \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc744 \uc900\ube44\ud558\ub294 \uac83\uc774\uace0 \uadf8 \uadf8\ub9bc\ud30c\uc77c\uc740 RGB\uac12\uc744 \uac16\ub294 \uad6c\uc870\uc774\uae30 \ub54c\ubb38\uc774\ub2e4. \uc5ec\ub35c\ubc88\uc9f8\ub294 \uc0c9\uc0c1 \uad6c\uc131 \uc694\uc18c\ub4e4\uc774 \uac16\ub294 \uac12\uc758 \ud0c0\uc785\uc744 \ub098\ud0c0\ub0b4\ub294\ub370 \ubaa8\ub4e0 BMP\ud30c\uc77c\uc5d0 \uc788\uc5b4\uc11c RGB\uc758 \uc138\uac00\uc9c0 \uad6c\uc131\uc694\uc18c\ub4e4\uc740 \ubd80\ud638 \uc5c6\ub294 Byte\ud615\uc774\ubbc0\ub85c GL_UNSIGNED_BYTE\uac00 \uc628\ub2e4. \ub9c8\uc9c0\ub9c9\uc73c\ub85c \uc544\ud649\ubc88\uc9f8\ub294 \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc18c\uc2a4\uc758 \uc2e4\uc81c \ub370\uc774\ud0c0\uac12(\uadf8\ub9bc \ub370\uc774\ud0c0)\uc5d0 \ub300\ud55c \ud3ec\uc778\ud130\uac00 \uc628\ub2e4.<\/P><P>\uc5ec\uae30\uae4c\uc9c0\uac00 \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc18c\uc2a4\ub97c \uc0dd\uc131\ud558\uace0 \uadf8 \ub9f5\ud551 \uc18c\uc2a4\uc5d0 \ub300\ud55c \ud2b9\uc131\uc744 \uc124\uc815\ud558\ub294 \uac83\ub4e4\uc774\ub2e4. \uc774\ud6c4\ub85c \uc774\uc81c \ubd88\ud544\uc694\ud55c \ud560\ub2f9\ub41c \uba54\ubaa8\ub9ac\ub97c \ud574\uc81c\ud558\uace0 \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc744 \uc0ac\uc6a9\ud55c\ub2e4\uace0 \uc9c0\uc815\ud558\ub294 \uac83\ub4e4\uc774 \ub0a8\uc558\ub2e4.<\/P><P><10>\ubc88 \ucf54\ub4dc\uac00 \ubc14\ub85c \uc774\uc81c\ub294 \ub354\uc774\uc0c1 \ud544\uc694\uce58 \uc54a\ub294 \ud560\ub2f9\ub41c \uba54\ubaa8\ub9ac\ub97c \ud574\uc81c\ud558\ub294 \ucf54\ub4dc\uc774\ub2e4.<\/P><P><11>\uc740 2\ucc28\uc6d0 \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc744 \uc0ac\uc6a9\ud558\uaca0\ub178\ub77c\uace0 OpenGL\uc5d0\uac8c \uc54c\ub9b0\ub2e4.<\/P><P><12>\uc5d0 \ub098\uc624\ub294 \ud568\uc218\uc778 glTexEnvi\ub294 \uc138\uac1c\uc758 \uc778\uc790\ub97c \uac16\ub294\ub370 \uc911\uc694\ud55c \uac83\uc740 \uc138\ubc88\uc9f8 \uc778\uc790\ub85c\uc368 \uc62c\uc218\uc788\ub294 \uac12\uc740 GL_MODULATE\uc640 GL_BLEND\uc640 GL_DECAL\uc774 \uc62c\uc218\uc788\ub2e4. GL_MODULATE\ub294 \ud654\uba74\uc0c1\uc758 \ud53d\uc140 \uc0c9\uacfc \ud14d\uc2a4\ucdb0\uc758 \ud53d\uc140 \uc0c9\uc744 \uc11c\ub85c \uacf1\ud558\uac8c \ub41c\ub2e4. <12>\ubc88 \ucf54\ub4dc\ub97c \uc0dd\ub7b5\ud558\uba74 \uc790\ub3d9\uc73c\ub85c GL_MODULATE\ub85c \uc9c0\uc815\ub41c\ub2e4. GL_DECAL\uc740 \ud654\uba74\uc0c1\uc758 \ud53d\uc140 \uc0c9\uc744 \ud14d\uc2a4\ucdb0\uc758 \ud53d\uc140 \uc0c9\uc73c\ub85c \ub300\uccb4\ud55c\ub2e4. \uc774 \uacbd\uc6b0 \ube5b\uc5d0 \ub300\ud574\uc11c \uc804\ud600 \ud14d\uc2a4\uccd0\uac00 \uc601\ud5a5\uc744 \ubc1b\uc9c0 \uc54a\ub294\ub2e4. GL_BLEND\ub294 \ud654\uba74\uc0c1\uc758 \ud53d\uc140 \uc0c9\uc744 \ud14d\uc2a4\uccd0\uc758 \ud53d\uc0c9 \uc0c9\uacfc \uc11e\uace0 \ud2b9\uc815\ud55c \uc0c9\uacfc \uacb0\ud569\uc2dc\ud0a4\uac8c \ub41c\ub2e4.<\/P><P>\uc790!! \uc774\ub807\uac8c \ud574\uc11c \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc18c\uc2a4\ub97c \ub9cc\ub4dc\ub294 \uac83\uc5d0 \ub300\ud55c \uac83\ub4e4\uc744 \uc54c\uc544 \ubcf4\uc558\ub2e4. \uadf8\ub807\ub2e4\uba74 \uc774 \ucf54\ub4dc\ub4e4\uc740 \uc5b4\ub514\uc5d0 \uc704\uce58\ud574\uc57c \ud558\ub294\uac00? \uac04\ub2e8\ud558\uac8c OpenGL\uc744 \ucd08\uae30\ud654\ub294 \uacf3\uc5d0 \uc704\uce58\ud558\ub3c4\ub85d \ud558\uc790. \uc989 void InitGL(GLvoid) \ud568\uc218\uc5d0 \uc704\uce58 \uc2dc\ud0a4\uc790. <\/P><P>\uc774\uc81c \uc6b0\ub9ac\ub294 \uc774 \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc18c\uc2a4\ub97c \ubb3c\uccb4\uc5d0 \uc801\uc6a9\ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud574 \uc54c\uc544\ubcfc \ucc28\ub840\uc774\ub2e4. \uc801\uc6a9\uc740 \uc2e4\uc81c \ubb3c\uccb4\ub97c \uadf8\ub9ac\ub294 \ucf54\ub4dc\uc5d0\uc11c \uc774\ub8e8\uc5b4\uc9c4\ub2e4. \ub2e4\uc74c\uc758 DrawGLScene \ud568\uc218\ub97c\ub4e4\uc5b4\ub2e4 \ubcf4\uc790. <\/P><\/p>\n<pre>int DrawGLScene(GLvoid)\r\n{\r\n    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);\r\n    glLoadIdentity();\r\n   \r\n    glTranslatef(0.0f, 0.0f, -7.0f);\r\n   \r\n    glColor3f(0.8f, 0.8f, 0.8f);\r\n   \r\n    glRotatef(rot, 1.0f, 1.0f, 0.0f);\r\n    glBindTexture(GL_TEXTURE_2D, tex[0]); \/\/<1>\r\n    glBegin(GL_QUADS);\r\n    glNormal3f(0.0f, 0.0f, 1.0f);\r\n    glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, 1.0f, 1.0f);\r\n    glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f, -1.0f, 1.0f);\r\n    glTexCoord2f(1.0f, 1.0f); glVertex3f(1.0f, -1.0f, 1.0f);\r\n    glTexCoord2f(1.0f, 0.0f); glVertex3f(1.0f, 1.0f, 1.0f); \r\n    glEnd();\r\n   \r\n    glBindTexture(GL_TEXTURE_2D, tex[1]); \/\/<1>\r\n    glBegin(GL_QUADS);\r\n    glNormal3f(1.0f, 0.0f, 0.0f);\r\n    glTexCoord2f(0.0f, 0.0f); glVertex3f(1.0f, 1.0f, 1.0f);\r\n    glTexCoord2f(0.0f, 1.0f); glVertex3f(1.0f, -1.0f, 1.0f);\r\n    glTexCoord2f(1.0f, 1.0f); glVertex3f(1.0f, -1.0f, -1.0f);\r\n    glTexCoord2f(1.0f, 0.0f); glVertex3f(1.0f, 1.0f, -1.0f);\r\n    glEnd();\r\n   \r\n            .\r\n            .\r\n            .\r\n   \r\n    glBindTexture(GL_TEXTURE_2D, tex[0]); \/\/<1>\r\n    glBegin(GL_QUADS);\r\n    glNormal3f(0.0f, 1.0f, 0.0f);\r\n    glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, 1.0f, -1.0f);\r\n    glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f, 1.0f, 1.0f);\r\n    glTexCoord2f(1.0f, 1.0f); glVertex3f(1.0f, 1.0f, 1.0f);\r\n    glTexCoord2f(1.0f, 0.0f); glVertex3f(1.0f, 1.0f, -1.0f);\r\n    glEnd();\r\n   \r\n    rot+=1.0f;\r\n    if(rot>359.0f) rot=0.0f;\r\n   \r\n    return TRUE;\r\n}<\/pre>\n<p>5\uc7a5\uc5d0\uc11c\uc758 \uc815\uc721\uba74\uccb4\ub97c \uadf8\ub9b4\ub54c\uc758 \ubc29\ubc95\uc744 \uc57d\uac04 \ubcc0\ud615\ud588\ub294\ub370 5\uc7a5\uc5d0\uc11c\ub294 \ud55c\ubc88\uc758 glBegin\uacfc glEnd\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubaa8\ub4e0 \uba74\uc744 \uadf8\ub824\uc8fc\uc5c8\ub2e4. \ud558\uc9c0\ub9cc \uc774 \uc7a5\uc5d0\uc11c\ub294 \uac01\uac01\uc758 \uba74\uc5d0 \ub300\ud574\uc11c glBegin\uc640 glEnd\ub97c \uc0ac\uc6a9\ud558\uc5ec \uadf8\ub824\uc8fc\uc5c8\ub2e4. \uadf8 \uc774\uc720\ub294 \uac01 \uba74\uc5d0 \ub300\ud574\uc11c \uc11c\ub85c \ub2e4\ub978 \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc744 \uc2dc\ucf1c\uc57c \ud558\uae30 \ub54c\ubb38\uc774\ub2e4. \uc0b4\ud3b4 \ubcfc\uac83\uc740 \uba74\uc5d0 \ub300\ud574\uc11c \uc5b4\ub5a4 \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc744 \uc0ac\uc6a9\ud560 \uac83\uc778\uc9c0\ub294 \uc55e\uc11c \uc5b8\uae09\ud55c \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc2dd\ubcc4\uc790\ub97c \uc0ac\uc6a9\ud558\ub294\ub370 <1>\ubc88 \ucf54\ub4dc\uac00 \ubc14\ub85c \uadf8\uac83\uc774\ub2e4. \uadf8\ub9ac\uace0 \uc2e4\uc81c \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc744 \uc9c0\uc815\ud558\ub294 \uac83\uc5d0 \ub300\ud55c \uac83\uc778\ub370 \uc704\uc758 \ucf54\ub4dc\ub97c \uc8fc\uc758 \uae4a\uac8c \uc0b4\ud3b4\ubcf4\uba74 \uba74\uc5d0 \ub300\ud55c \uac01 \uc810\ub4e4\uc744 \uc9c0\uc815\ud574 \uc904\ub54c glTexCoord2f\ub77c\ub294 \ud568\uc218\ub97c \ud1b5\ud574\uc11c \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc88c\ud45c\ub97c \uac19\uc774 \uc9c0\uc815\ud574 \uc8fc\uc5c8\ub2e4\ub294 \uc810\uc774\ub2e4. \uc774\uac83\uc740 \ubb34\uc5c7\uc744 \uc758\ubbf8\ud558\ub294\uac00? \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc758 \uc18c\uc2a4\ub294 \ud06c\uae30\uc5d0 \uc0c1\uad00\uc5c6\ub294 S-T \uc790\ud45c\uacc4\ub97c \uc0ac\uc6a9\ud558\ub294\ub370 S-T\uc88c\ud45c\uacc4\ub77c\ub294 \uc2dc\uc791\uc810\uc740 0\uc73c\ub85c \ud558\uace0 \ub05d\uc810\uc740 1\ub85c \ud55c\ub2e4\ub294 \uc810\uc774\ub2e4. \uc544\ub798\uc758 \uadf8\ub9bc\uacfc \uac19\uc774 \ub9d0\uc774\ub2e4.<\/P><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/1\/1250366952.gif\" class=\"aligncenter\" width=\"300\" height=\"300\" alt=\"\uc0ac\uc6a9\uc790 \uc0bd\uc785 \uc774\ubbf8\uc9c0\" \/><br \/><P>\uc989 glTexCoord2f\ub97c \uc774\uc6a9\ud558\uc5ec glVertex3f\ub85c \uc9c0\uc815\ud55c \uc810\uc5d0 \ub300\ud574 \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc88c\ud45c\ub97c \uc124\uc815\ud574 \uc904\ub54c glVertex3f\ub85c \uc9c0\uc815\ud55c \uc704\uce58\uc5d0 \ub300\ud574 glTexCoord2f \uc88c\ud45c\uac00 \uc11c\ub85c \uc77c\uce58\uc2dc\ucf1c \uadf8\ub9bc\uc744 \ub9f5\ud551\ud558\uac8c \ub418\ub294 \uac83\uc774\ub2e4.<\/P><P>\uac01\uac01\uc758 \uba74\ub4e4\uc5d0 \ub300\ud574\uc11c \ub3d9\uc77c\ud55c \ubc29\ubc95\uc73c\ub85c \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc88c\ud45c\ub97c \uc124\uc815\ud558\uc600\ub2e4.<\/P><P>\uc774\ub85c\uc368 \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc5d0 \ub300\ud55c \uac83\ub4e4\uc744 \ub9c8\uce60\uae4c \ud55c\ub2e4.<\/P><\/p>\n<p style='text-align:center'><a href=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/1\/1095061314.zip\"><img width='64' src='\/images\/download.svg' \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc774\ubc88 \uc7a5\uc5d0\uc11c\ub294 \ucef4\ud4e8\ud130 \uadf8\ub798\ud53d\uc758 \uaf43\uc774\ub77c\uace0 \ud560\uc218\uc788\ub294 \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc5d0 \ub300\ud574\uc11c \uc54c\uc544\ubcf4\ub3c4\ub85d\ud558\uc790. \ucef4\ud4e8\ud130 \uadf8\ub798\ud53d\uc5d0 \uc788\uc5b4\uc11c \uac00\uc7a5 \ubc1c\uc804\ud55c \uae30\uc220\uc774 \ubc14\ub85c \uc774 \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc774\ub77c\uace0 \ud55c\ub2e4. \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc774 \ubb34\uc5c7\uc778\uc9c0 \uc7a0\uae50 \uc124\uba85\ud558\ub3c4\ub85d \ud558\uaca0\ub2e4. \ub460\uc774\ub77c\ub294 \uac8c\uc784\uc744 \ud574 \ubcf4\uc558\ub294\uac00? \ubcbd\uc73c\ub85c \ub9c9\ud78c \uac74\ubb3c \uc548\uc5d0\uc11c \uc0ac\uc545\ud55c \uc8fc\uc778\uacf5\uc774 \uc870\uc6a9\uc774 \uc0b4\uace0 \uc2f6\uc5b4\ud558\ub294 \ucc29\ud55c \uad34\ubb3c\uc744 \uc8fd\uc774\uace0 \ub2e4\ub2c8\ub294 \uc544\uc8fc \ubd88\uac74\uc804\ud55c \uac9c\uc774\ub2e4. \uc5ec\uae30\uc11c \ub460\uc5d0 \ub098\uc624\ub294 \ubcbd\uc744 \uc0dd\uac01\ud574 \ubcf4\uc790. \uadf8 \ubcbd\uc740 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=25\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;[OpenGL Tutorial] Texture Mapping&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[3],"class_list":["post-25","post","type-post","status-publish","format-standard","hentry","category-opengl","tag-opengl"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/25","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=25"}],"version-history":[{"count":4,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/25\/revisions"}],"predecessor-version":[{"id":3836,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/25\/revisions\/3836"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}