{"id":16281,"date":"2025-09-24T21:05:48","date_gmt":"2025-09-24T12:05:48","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=16281"},"modified":"2025-09-24T21:06:53","modified_gmt":"2025-09-24T12:06:53","slug":"%ed%95%98%eb%82%98%ec%9d%98-%ec%a7%80%ec%98%a4%eb%a9%94%ed%8a%b8%eb%a6%ac%ec%97%90-%eb%8c%80%ed%95%9c-%eb%a7%a4%ec%8b%9c%ec%97%90-%ec%97%ac%eb%9f%ac-%ea%b0%9c%ec%9d%98-%ec%9e%ac%ec%a7%88-%eb%b0%98","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=16281","title":{"rendered":"\ud558\ub098\uc758 \uc9c0\uc624\uba54\ud2b8\ub9ac\uc5d0 \ub300\ud55c \ub9e4\uc2dc\uc5d0 \uc5ec\ub7ec \uac1c\uc758 \uc7ac\uc9c8 \ubc18\uc601\ud558\uae30"},"content":{"rendered":"<p>\ub9e4\uc2dc\ub294 \ud558\ub098\uc758 \uc9c0\uc624\uba54\ud2b8\ub9ac\uc640 2\uac1c \uc774\uc0c1\uc758 \uc7ac\uc9c8\ub85c \uc815\uc758\ub429\ub2c8\ub2e4. three.js \uc911\uae09 \uac1c\ubc1c\uc790\ub77c\uba74 \uba54\uc2dc\uac00 1\uac1c\uac00 \uc544\ub2cc 2\uac1c \uc774\uc0c1\uc758 \uc7ac\uc9c8\ub85c \uc815\uc758\ub41c\ub2e4\ub294 \uc810\uc5d0 \uc758\uad6c\uc2ec\uc744 \uac00\uc9c8 \uc218 \uc788\uc744\ud150\ub370\uc694. \ud558\uc9c0\ub9cc \ub9de\uc2b5\ub2c8\ub2e4. \ub9e4\uc2dc\ub294 2\uac1c \uc774\uc0c1\uc758 \uc7ac\uc9c8\uc744 \uac16\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc9c0\uc624\uba54\ud2b8\ub9ac\ub294 1\uac1c\uc785\ub2c8\ub2e4. \uc774\uc0c1\ud558\uc8e0? \uc9c0\uc624\uba54\ud2b8\ub9ac\uac00 1\uac1c\uba74 \uadf8\uc5d0 \ub300\ud55c \uc7ac\uc9c8\ub3c4 1\uac1c\uc5ec\uc57c \ub9de\ub294\uac70 \uac19\uc740\ub370 \ub9d0\uc774\uc8e0. \uadf8\ub798\uc11c \uc9c0\uc624\uba54\ud2b8\ub9ac\uc758 \uad6c\uc131 \uc88c\ud45c\ub97c \uadf8\ub8f9\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc7ac\uc9c8\uc774 2\uac1c\ub77c\uba74 2\uac1c\uc758 \uadf8\ub8f9\uc73c\ub85c \uc9c0\uc624\uba54\ud2b8\ub9ac\uc758 \uad6c\uc131 \uc88c\ud45c\ub97c \uad6c\uc131\ud558\ub294\uac70\uc8e0.<\/p>\n<p>\uc608\ub97c\ub4e4\uc5b4 \ub2e4\uc74c\uacfc \uac19\uc740 \uacb0\uacfc\ub97c \ubd05\uc2dc\ub2e4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/2025\/09\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2025-09-24-20.58.43.png\" alt=\"\" width=\"1628\" height=\"1440\" class=\"aligncenter size-full wp-image-16282\" \/><\/p>\n<p>SphereGeometry\ub85c \ub9cc\ub4e0 \ub9e4\uc2dc\uc785\ub2c8\ub2e4. \uadf8\ub7f0\ub370 \uc704 \uc544\ub798\ub85c \ub2e4\ub978 \uc7ac\uc9c8\uc774 \ubd80\uc5ec\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \ub9c8\uce58 2\uac1c\uc758 \ub9e4\uc2dc\ub97c \ubb4d\uc5ec \ub193\uc740 \uac83\ucc98\ub7fc\uc694.<\/p>\n<p>\uc544\ub798\ub294 \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nconst geom = new THREE.SphereGeometry(2);\r\n\r\nconst indexCount = geom.index.count;\r\nconst midIndex = Math.floor(indexCount \/ 2);\r\n\r\ngeom.clearGroups();\r\ngeom.addGroup(0, midIndex, 0);\r\ngeom.addGroup(midIndex, indexCount - midIndex, 1);\r\n\r\nconst mesh = new THREE.Mesh(geom, [\r\n    new THREE.MeshPhysicalMaterial({ metalness: 1, roughness: 0 }),\r\n    new THREE.MeshNormalMaterial()\r\n]);\r\n\r\nscene.add(mesh);\r\n<\/pre>\n<p>\uc9c0\uc624\uba54\ud2b8\ub9ac\uc5d0 \ub300\ud55c 2\uac1c\uc758 \uadf8\ub8f9\ud551, 2\uac1c\uc758 \uc7ac\uc9c8\uc744 \uc801\uc6a9\ud574 \ub9cc\ub4e0 \ub9e4\uc2dc\uc5d0 \ub300\ud55c \ucf54\ub4dc\uac00 \ubcf4\uc774\uc8e0? \uc9c0\uc624\uba54\ud2b8\ub9ac\uc5d0 \ub300\ud55c \uc815\uc810\uc758 \uadf8\ub8f9\ud551 \ub2e8\uc704\ub294 \uc778\ub371\uc2a4(\uc0bc\uac01\ud615\uc744 \uad6c\uc131\ud558\ub294 \uc778\ub371\uc2a4)\uc785\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uacbd\uc6b0\uc5d0 \ub530\ub77c\uc11c \uc778\ub371\uc2a4\uac00 \uc544\ub2cc \uc815\uc810 \ud558\ub098 \ud558\ub098\ub97c \uc9c0\uc815\ud574\uc11c \ub9cc\ub4e0 \ub10c-\uc778\ub371\uc2a4 \ubc29\uc2dd\ub3c4 \uc874\uc7ac\ud569\ub2c8\ub2e4. \uc544\ub798\ub294 \uacb0\uacfc\ub294 \ub3d9\uc77c\ud558\uc9c0\ub9cc \ub10c-\uc778\ub371\uc2a4 \ubc29\uc2dd\uc758 \uc9c0\uc624\uba54\ud2b8\ub9ac\uc5d0 \ub300\ud55c \uadf8\ub8f9\ud551 \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nlet geom = new THREE.SphereGeometry(2, 128, 64);\r\ngeom = geom.toNonIndexed(); \/\/ Non-indexed \uc9c0\uc624\uba54\ud2b8\ub9ac\r\n\r\nconst vertexCount = geom.getAttribute(\"position\").count;\r\nconst midVertex = Math.floor(vertexCount \/ 2);\r\n\r\ngeom.clearGroups();\r\ngeom.addGroup(0, midVertex, 0);\r\ngeom.addGroup(midVertex, vertexCount - midVertex, 1);\r\n\r\nconst mesh = new THREE.Mesh(geom, [\r\n    new THREE.MeshPhysicalMaterial({ metalness: 1, roughness: 0 }),\r\n    new THREE.MeshNormalMaterial()\r\n]);\r\n\r\nscene.add(mesh);\r\n<\/pre>\n<p>\uc774\ubc88\uc5d0\ub294 \uc9c0\uc624\uba54\ud2b8\ub9ac\uc5d0 \ub300\ud55c 2\uac1c\uc758 \uadf8\ub8f9\uc744 \ub9cc\ub4e4\uae30 \uc704\ud574 \ubc84\ud14d\uc2a4\uc5d0 \ub300\ud55c \uc778\ub371\uc2a4\ub97c \uc0ac\uc6a9\ud55c \uac83\uc744 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc5ec\ud2bc \uc9c0\uae08\uae4c\uc9c0 \ubd24\ub358 three.js\uc5d0\uc11c\uc758 \uc9c0\uc624\uba54\ud2b8\ub9ac\uc5d0 \ub300\ud55c \uadf8\ub8f9\ud551\uacfc \ub9e4\uc2dc\uc5d0 \uc5ec\ub7ec\uac1c\uc758 \uc7ac\uc9c8\uc744 \uc9c0\uc815\ud560 \uc218 \uc788\ub2e4\ub294 \uac83\uc744 \uc544\uc154\uc57c, 3D \ubaa8\ub378\ub9c1 \ud234\uc5d0\uc11c \ub9cc\ub4e4\uc5b4\uc9c4 \ubaa8\ub378\ub4e4\uc758 \uad6c\uc131\uc744 \uc774\ud574\ud560 \uc218 \uc788\uac8c \ub429\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ub9e4\uc2dc\ub294 \ud558\ub098\uc758 \uc9c0\uc624\uba54\ud2b8\ub9ac\uc640 2\uac1c \uc774\uc0c1\uc758 \uc7ac\uc9c8\ub85c \uc815\uc758\ub429\ub2c8\ub2e4. three.js \uc911\uae09 \uac1c\ubc1c\uc790\ub77c\uba74 \uba54\uc2dc\uac00 1\uac1c\uac00 \uc544\ub2cc 2\uac1c \uc774\uc0c1\uc758 \uc7ac\uc9c8\ub85c \uc815\uc758\ub41c\ub2e4\ub294 \uc810\uc5d0 \uc758\uad6c\uc2ec\uc744 \uac00\uc9c8 \uc218 \uc788\uc744\ud150\ub370\uc694. \ud558\uc9c0\ub9cc \ub9de\uc2b5\ub2c8\ub2e4. \ub9e4\uc2dc\ub294 2\uac1c \uc774\uc0c1\uc758 \uc7ac\uc9c8\uc744 \uac16\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc9c0\uc624\uba54\ud2b8\ub9ac\ub294 1\uac1c\uc785\ub2c8\ub2e4. \uc774\uc0c1\ud558\uc8e0? \uc9c0\uc624\uba54\ud2b8\ub9ac\uac00 1\uac1c\uba74 \uadf8\uc5d0 \ub300\ud55c \uc7ac\uc9c8\ub3c4 1\uac1c\uc5ec\uc57c \ub9de\ub294\uac70 \uac19\uc740\ub370 \ub9d0\uc774\uc8e0. \uadf8\ub798\uc11c \uc9c0\uc624\uba54\ud2b8\ub9ac\uc758 \uad6c\uc131 \uc88c\ud45c\ub97c \uadf8\ub8f9\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc7ac\uc9c8\uc774 2\uac1c\ub77c\uba74 2\uac1c\uc758 \uadf8\ub8f9\uc73c\ub85c \uc9c0\uc624\uba54\ud2b8\ub9ac\uc758 \uad6c\uc131 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=16281\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;\ud558\ub098\uc758 \uc9c0\uc624\uba54\ud2b8\ub9ac\uc5d0 \ub300\ud55c \ub9e4\uc2dc\uc5d0 \uc5ec\ub7ec \uac1c\uc758 \uc7ac\uc9c8 \ubc18\uc601\ud558\uae30&#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":[145],"tags":[],"class_list":["post-16281","post","type-post","status-publish","format-standard","hentry","category-three-js"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/16281","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=16281"}],"version-history":[{"count":5,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/16281\/revisions"}],"predecessor-version":[{"id":16287,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/16281\/revisions\/16287"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=16281"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=16281"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=16281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}