{"id":742,"date":"2018-09-13T18:55:39","date_gmt":"2018-09-13T09:55:39","guid":{"rendered":"http:\/\/www.charlezz.com\/?p=742"},"modified":"2018-12-31T14:46:11","modified_gmt":"2018-12-31T05:46:11","slug":"android-opengl-es%ec%9d%98-%ea%b0%9c%ec%9a%94","status":"publish","type":"post","link":"https:\/\/charlezz.com\/?p=742","title":{"rendered":"[OpenGL] 1. Android OpenGL ES\uc758 \uac1c\uc694"},"content":{"rendered":"<h1>OpenGL ES\ub780?<\/h1>\n<p>Android\ub294 \ub192\uc740 \ud37c\ud3ec\uba3c\uc2a4\ub97c \ud544\uc694\ub85c \ud558\ub294 2D,3D \uadf8\ub798\ud53d\uc2a4\ub97c \uc704\ud574 OpenGL ES(Open Graphics Library for Embeded System)\ub97c \uc9c0\uc6d0\ud569\ub2c8\ub2e4. OpenGL\uc740 3D \uadf8\ub798\ud53d \ucc98\ub9ac \ud558\ub4dc\uc6e8\uc5b4\uc5d0 \ub300\ud55c \ud45c\uc900 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc9c0\uc815\ud558\ub294 \ud06c\ub85c\uc2a4 \ud50c\ub7ab\ud3fc \uadf8\ub798\ud53d API\uc774\uba70, OpenGL ES\ub294 \uc548\ub4dc\ub85c\uc774\ub4dc\uc640 \uac19\uc740 \uc784\ubca0\ub514\ub4dc \uc7a5\uce58\ub97c \uc704\ud55c \uac00\ubccd\uace0 \uc26c\uc6b4 API\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \ub610\ud55c Android\ub294 \uc5ec\ub7ec \ubc84\uc804\uc758 OpenGL ES API\ub97c \uc81c\uacf5\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>Who should read?<\/h2>\n<p>\uc77c\ubc18\uc801\uc778 \uc571\uac1c\ubc1c\uc790\uac00 OpenGL\uae4c\uc9c0 \uc54c\uc544\uc57c \ud560 \ud544\uc694\ub294 \uc5c6\uc2b5\ub2c8\ub2e4. \uce74\uba54\ub77c \uc571 \uac1c\ubc1c\uc790, \uc774\ubbf8\uc9c0 \ud504\ub85c\uc138\uc2f1, \uac8c\uc784 \uac1c\ubc1c\uc790\uac00 \uc774 \ud3ec\uc2a4\ud305\uc744 \uc77d\ub294\uac83\uc744 \ucd94\ucc9c\ud569\ub2c8\ub2e4. \ub610\ub294 \uc548\ub4dc\ub85c\uc774\ub4dc\uc758 View\uac00 \ub0b4\ubd80\uc801\uc73c\ub85c \uc5b4\ub5bb\uac8c \ud654\uba74\uc744 \ud45c\ud604\ud558\ub294\uc9c0 \uad81\uae08\ud558\ub2e4\uba74 \ud55c\ubc88 \ucbe4 \uac00\ubccd\uac8c \uc77d\uc5b4\ubcf4\uc2dc\ub294\uac83\ub3c4 \uc88b\uc744 \uac83 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\uc65c OpenGL ES\ub97c \uc368\uc57c \ud560\uae4c\uc694?<\/h2>\n<p>\uac8c\uc784\uacfc \uac19\uc740 \ub192\uc740 \uc218\uc900\uc758 \uadf8\ub798\ud53d\uc744 \ube60\ub974\uac8c(30~60fps) \ud654\uba74\uc5d0 \uadf8\ub9ac\uae30 \uc704\ud574\uc11c\ub294 \uc77c\ubc18\uc801\uc778 \uc548\ub4dc\ub85c\uc774\ub4dc\uc758 \uc704\uc82f\uc73c\ub85c\ub294 \uad6c\ud604\ud558\ub294\ub370 \ud55c\uacc4\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub807\uae30 \ub54c\ubb38\uc5d0 \ube60\ub978\uc18d\ub3c4\uc758 \ubc18\ubcf5\ub41c \ud654\uba74 \ucd9c\ub825\uc774 \ud544\uc694\ud55c \uacbd\uc6b0\uc5d0\ub294OpenGL\uc744 \uc774\uc6a9\ud55c \ube60\ub974\uac8c \ud654\uba74 \uadf8\ub9ac\ub294 \uc791\uc5c5\uc744 \ud574\uc57c\ud558\uba70, GDI\uc4f0\ub808\ub4dc\uac00 \uc544\ub2cc \ubcc4\ub3c4\uc758 \uc4f0\ub808\ub4dc \uc0ac\uc6a9\uc774 \ubc18\ub4dc\uc2dc \ud544\uc694\ud569\ub2c8\ub2e4.\u00a0<\/p>\n<h2>\uc548\ub4dc\ub85c\uc774\ub4dc\uc5d0\uc11c \uc9c0\uc6d0\ud558\ub294 OpenGL ES \ubc84\uc804<\/h2>\n<ul>\n<li>OpenGL ES 1.0 \uacfc 1.1 &#8211; \uc548\ub4dc\ub85c\uc774\ub4dc 1.0 \uc774\uc0c1<\/li>\n<li>OpenGL ES 2.0 &#8211; \uc548\ub4dc\ub85c\uc774\ub4dc 2.0 (API Level 8) \uc774\uc0c1<\/li>\n<li>OpenGL ES 3.0 &#8211; \uc548\ub4dc\ub85c\uc774\ub4dc 4.3 (API Level 18) \uc774\uc0c1<\/li>\n<li>OpenGL ES 3.1 &#8211; \uc548\ub4dc\ub85c\uc774\ub4dc 5.0 (API Level 21) \uc774\uc0c1<\/li>\n<\/ul>\n<h2>OpenGL ES\ub97c \uc704\ud55c \ud504\ub85c\uc81d\ud2b8 \uc124\uc815\ud558\uae30<\/h2>\n<pre class=\"lang:xhtml decode:true\">&lt;!-- \uc2dc\uc2a4\ud15c\uc5d0\uac8c OpenGL ES 2.0\uc774 \ud544\uc694\ud558\ub2e4\ub294 \uac83\uc744 \uc54c\ub824\uc90d\ub2c8\ub2e4. --&gt;\r\n&lt;uses-feature android:glEsVersion=\"0x00020000\" android:required=\"true\" \/&gt;\r\n\r\n&lt;!-- \uc2dc\uc2a4\ud15c\uc5d0\uac8c OpenGL ES 3.0\uc774 \ud544\uc694\ud558\ub2e4\ub294 \uac83\uc744 \uc54c\ub824\uc90d\ub2c8\ub2e4. --&gt;\r\n&lt;uses-feature android:glEsVersion=\"0x00030000\" android:required=\"true\" \/&gt;\r\n\r\n&lt;!-- \uc2dc\uc2a4\ud15c\uc5d0\uac8c OpenGL ES 3.1\uc774 \ud544\uc694\ud558\ub2e4\ub294 \uac83\uc744 \uc54c\ub824\uc90d\ub2c8\ub2e4. --&gt;\r\n&lt;uses-feature android:glEsVersion=\"0x00030001\" android:required=\"true\" \/&gt;<\/pre>\n<p>\uc804\ubd80 \uba85\uc2dc\ud560 \ud544\uc694\ub294 \uc5c6\uc73c\uba70, \uc0ac\uc6a9\ud558\ub294 \ubc84\uc804 \ud558\ub098\ub9cc \ub9e4\ub2c8\ud398\uc2a4\ud2b8\uc5d0 \uba85\uc2dc\ud558\ub3c4\ub85d \ud569\ub2c8\ub2e4.<\/p>\n<h2>OpenGL\ub85c \uc0bc\uac01\ud615 \ub9cc\ub4e4\uae30<\/h2>\n<div style=\"width: 480px;\" class=\"wp-video\"><!--[if lt IE 9]><script>document.createElement('video');<\/script><![endif]--><br \/>\n<video class=\"wp-video-shortcode\" id=\"video-742-1\" width=\"480\" height=\"864\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2018\/09\/20180913_184416.mp4?_=1\" \/><a href=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2018\/09\/20180913_184416.mp4\">https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2018\/09\/20180913_184416.mp4<\/a><\/video><\/div>\n<p>\ubcf8 \ud504\ub85c\uc81d\ud2b8\ub294 <a href=\"https:\/\/github.com\/Charlezz\/OpenGLStudy\">github<\/a>\uc5d0\uc11c \ud655\uc778 \uac00\ub2a5\ud569\ub2c8\ub2e4.<\/p>\n<table border=\"1\" style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\">\n<p><strong>\uc5f0\uad00\ub41c \ud3ec\uc2a4\ud305 \ubaa9\ub85d<\/strong><\/p>\n<p>1. <a href=\"https:\/\/www.charlezz.com\/?p=742\">Android OpenGL ES 2.0\uc758 \uac1c\uc694<\/a><\/p>\n<p>2. <a href=\"https:\/\/www.charlezz.com\/?p=876\">Shader\uc640 Rendering pipeline<\/a><\/p>\n<p>3. <a href=\"https:\/\/www.charlezz.com\/?p=752\">\uc0bc\uac01\ud615 \ub9cc\ub4e4\uae30<\/a><\/p>\n<p>4. <a href=\"https:\/\/www.charlezz.com\/?p=894\">\ub3c4\ud615\uc744 \uadf8\ub9ac\ub294 \ubc29\uc2dd<\/a><\/p>\n<p>5. <a href=\"https:\/\/www.charlezz.com\/?p=892\">\uc0ac\uac01\ud615 \ub9cc\ub4e4\uae30<\/a><\/p>\n<p>6. <a href=\"https:\/\/www.charlezz.com\/?p=936\">Vector\uc640 \ub3d9\ucc28\uc88c\ud45c<\/a><\/p>\n<p>7. <a href=\"https:\/\/www.charlezz.com\/?p=934\">Matrix(\ud589\ub82c)<\/a><\/p>\n<p>8. <a href=\"https:\/\/www.charlezz.com\/?p=960\">MVP Matrix \ub9cc\ub4e4\uae30<\/a><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>OpenGL ES\ub780? Android\ub294 \ub192\uc740 \ud37c\ud3ec\uba3c\uc2a4\ub97c \ud544\uc694\ub85c \ud558\ub294 2D,3D \uadf8\ub798\ud53d\uc2a4\ub97c \uc704\ud574 OpenGL ES(Open Graphics Library for Embeded System)\ub97c \uc9c0\uc6d0\ud569\ub2c8\ub2e4. OpenGL\uc740 3D \uadf8\ub798\ud53d \ucc98\ub9ac \ud558\ub4dc\uc6e8\uc5b4\uc5d0 \ub300\ud55c \ud45c\uc900 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc9c0\uc815\ud558\ub294 \ud06c\ub85c\uc2a4 \ud50c\ub7ab\ud3fc \uadf8\ub798\ud53d API\uc774\uba70, OpenGL ES\ub294 \uc548\ub4dc\ub85c\uc774\ub4dc\uc640 \uac19\uc740 \uc784\ubca0\ub514\ub4dc \uc7a5\uce58\ub97c \uc704\ud55c \uac00\ubccd\uace0 \uc26c\uc6b4 API\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \ub610\ud55c Android\ub294 \uc5ec\ub7ec \ubc84\uc804\uc758 OpenGL ES API\ub97c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[24,5],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/742"}],"collection":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=742"}],"version-history":[{"count":7,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/742\/revisions"}],"predecessor-version":[{"id":979,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/742\/revisions\/979"}],"wp:attachment":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=742"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=742"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}