{"id":166,"date":"2006-09-30T12:10:08","date_gmt":"2006-09-30T12:10:08","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=166"},"modified":"2017-01-29T15:17:02","modified_gmt":"2017-01-29T06:17:02","slug":"exampleapplication%ec%9d%98-%ea%b0%9c%eb%85%90","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=166","title":{"rendered":"ExampleApplication\uc758 \uac1c\ub150"},"content":{"rendered":"<p>ExampleApplication \ud074\ub798\uc2a4\ub294 Ogre\uc5d0\uc11c \uae30\ubcf8\uc801\uc73c\ub85c \uc81c\uacf5\ud558\ub294 Framework \ud074\ub798\uc2a4\uc774\ub2e4. \uc774 \ud074\ub798\uc2a4\uac00 Framework\uac00 \ub420 \uc218 \uc788\ub294 \uc774\uc720\ub294 \uc774 \ud074\ub798\uc2a4\ub97c \uc0c1\uc18d \ubc1b\uc544 \uac00\uc0c1\ud568\uc218\ub97c \uad6c\ud604\ud558\uba74 \ud558\ub098\uc758 3D \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \ub9cc\ub4e4\uc5b4\uc9c0\uae30 \ub54c\ubb38\uc774\ub2e4. ExampleApplication \ud074\ub798\uc2a4\uc758 \uad6c\uc870\uc640 \ud750\ub984\uc744 \ud30c\uc545\ud55c\ub2e4\uba74, Ogre\uc758 \uc804\uccb4\uc801\uc778 \ud750\ub984\uae4c\uc9c0 \uc27d\uac8c \ud30c\uc545\ud560 \uc218 \uc788\uc744 \uac83\uc774\ubbc0\ub85c Ogre\uc758 \uccab\ubc88\uc9f8 \ubd84\uc11d\uc5d0 ExampleApplication\uc5d0 \ub300\ud574\uc11c \uc9d1\uc911\uc801\uc73c\ub85c \uc0b4\ud3b4\ubcf4\uc558\ub2e4. \uc544\ub798\ub294 ExampleApplication\uc758 \ud074\ub798\uc2a4 \uad00\uacc4\ub3c4\uc774\ub2e4. \ub9e4\uc6b0 \uc2ec\ud50c\ud55c \uad6c\uc870\uc778\uac83\uc744 \uc54c \uc218 \uc788\ub2e4. \uc2ec\ud50c\ud558\ub2e4\ub294 \uac83\uc740 \ud655\uc7a5\uc131\uc774 \ub6f0\uc5b4\ub098\ub2e4\ub294 \uac83\uc744 \uc758\ubbf8\ud558\uba70 \ub610 \uadf8\ub9cc\ud07c \uacac\uace0\ud558\ub2e4\ub294 \uc758\ubbf8\ub77c\uace0 \uc0dd\uac01\ub41c\ub2e4. (\ub108\ubb34 Ogre\ub97c \uc88b\uac8c\ub9cc \ubcf4\ub294\uac70 \uc544\ub2cc\uac00 \uc2f6\ub2e4)<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/1\/1137715707.gif\" alt=\"\" width=\"389\" height=\"314\" \/><\/p>\n<p>\uc704\uc758 \ud074\ub798\uc2a4 \uad00\uacc4\ub3c4\uc5d0\uc11c \ud30c\uc545\ud560 \uc218 \uc788\ub294 \uba87\uac00\uc9c0\ub97c \uc0b4\ud3b4\ubcf4\uba74, ExampleApplication \ud074\ub798\uc2a4\ub294 RenderWindow, Root, SceneManager, FrameListener, Camera\ub97c \uc18d\uc131\ub9f4\ubc84\ub85c \uac16\uace0 \uc788\ub2e4. (SceneNode\ub294 \uc544\ub2c8\ub2e4) \uc0dd\uc131\uacfc \uc18c\uba78\uc5d0 \uad00\ud55c Composition \uad00\uacc4\ub294 ExampleApplication\uc740 Root\uc640 FrameListener\ub97c \uc0dd\uc131\ud558\uba70 Root\uac00 RenderWindow\uc640 SceneManager\ub97c \uc0dd\uc131\ud55c\ub2e4. \uadf8\ub9ac\uace0 Camera\ub294 SceneManager\uac00 \uc0dd\uc131\ud558\uc5ec \uad00\ub9ac\ud55c\ub2e4. \uc77c\ub2e8 \uc5ec\uae30\uc11c \uac00\uc7a5 \uc911\uc694\ud55c FrameListener\uc640 SceneManager\uc5d0 \ub300\ud574 \uac04\ub2e8\ud788 \uc124\uba85\ud558\uba74, FrameListener\ub294 \uc0ac\uc6a9\uc790\uc758 Interaction\uc5d0 \ub300\ud574 \ub80c\ub354\ub9c1\ub420 \uac01 Frame\uc744 \ucee8\ud2b8\ub864\ud558\ub294 \uc5ed\ud65c\uc744 \ud55c\ub2e4. \uadf8\ub9ac\uace0 SceneManager\ub294 \ud654\uba74\uc0c1\uc5d0 \ub80c\ub354\ub9c1\ub420 SceneNode \ub4e4\uc744 \uad00\ub9ac\ud574\uc900\ub2e4.<\/p>\n<p>SceneNode\ub294 \uc9c1\uc811\uc801\uc73c\ub85c ExampleApplication\uacfc\ub294 \uad00\uacc4\uac00 \uc5c6\uc9c0\ub9cc Ogre\uc5d0\uc11c \ub9e4\uc6b0 \uc911\uc694\ud55c \uac1c\ub150(\ub300\ubd80\ubd84\uc758 3D\uc5d4\uc9c4\uc5d0\uc11c \uc911\uc694\ud55c \uc6a9\uc5b4\uc774\uba70 \uac1c\ub150\uc774\ub2e4)\uc774\ub2e4. Ogre\uc5d0\uc11c SceneNode\ub97c \ub9d0\ud558\ub824\uba74 Entity\ub3c4 \ud568\uaed8 \uc5b8\uae09\uc744 \ud574\uc57c\ud55c\ub2e4. Entity\ub294 3\ucc28\uc6d0 Geometry \uc88c\ud45c\ub85c \uad6c\uc131\ud55c Mesh\ub77c\uace0 \ud560 \uc218 \uc788\ub294\ub370, \uc774 Entity\uac00 SceneNode\uc5d0 \ubd99\uac8c\ub41c\ub2e4. SceneNode\ub294 \uc704\uce58\uc640 \ubc29\ud5a5 \uac12\uc744 \uac16\uace0 \uc788\uc73c\ubbc0\ub85c Entity\uc640 SceneNode\uac00 \ubd99\uac8c\ub418\uba74 \ud2b9\uc815 \uc704\uce58\uc640 \ubc29\ud5a5\uc73c\ub85c \ub193\uc774\uac8c \ub418\ub294 \ubb3c\uccb4\uac00 \uc815\uc758\ub418\ub294 \uac83\uc774\ub2e4. \uc5ec\uae30\uc11c \uc911\uc694\ud55c \uac83\uc740 \ud558\ub098\uc758 SceneNode\uc5d0\ub294 \uc5ec\ub7ec\uac1c\uc758 Entity\uac00 \ubd99\uc744 \uc218 \uc788\ub2e4\ub294 \uc810\uc774\ub2e4. \ucc38\uace0\ub85c \ube5b(Light)\ub3c4 SceneNode\uc5d0 \ubd99\uc77c \uc218 \uc788\ub2e4.<\/p>\n<p>\uad00\uacc4\ub3c4\uc5d0\uc11c \ud558\ub098 \ub354 \uc54c \uc218 \uc788\ub294 \uac83\uc740 ExampleApplication\uc758 \ubaa8\ub4e0 \ub9f4\ubc84 \ud568\uc218\ub294 \ucd94\uc0c1\ud568\uc218\ub77c\ub294 \uc810\uc774\ub2e4. \uc989, \uc55e\uc11c \uc5b8\uae09\ud55c\uac83\ucc98\ub7fc ExampleApplication\uc744 \uc0c1\uc18d\ubc1b\uc544 \ucd94\uc0c1\ud568\uc218\ub97c \uad6c\ud604\ud558\uac8c \ub418\uba74 \ud558\ub098\uc758 \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \ub9cc\ub4e4\uc5b4\uc9c4\ub2e4\ub294 \uac83\uc774\ub2e4.<\/p>\n<p>\uc774\uc81c ExampleApplication\uc758 \ucd94\uc0c1\ud568\uc218\ub4e4\uc758 \uc6a9\ub3c4\ub97c \uc0b4\ud3b4\ubcf4\uba74, \uc720\uc77c\ud55c \uacf5\uac1c(public) \ud568\uc218\uc778 go()\uc640 \ubcf4\ud638(protected) \uc811\uadfc\uc790 \ud568\uc218\uc778 \uadf8\uc678\uc758 \ud568\uc218\ub4e4\ub85c \uad6c\uc131\ub418\uba70 \uadf8 \ubaa9\uc801\uc740 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n<ul>\n<li><strong>go<\/strong> &#8211; WinMain\uc774\ub098 main, \ub610\ub294 Rendering Thread\uc5d0\uc11c \uc9c1\uc811 \ud638\ucd9c\ub418\uba70 SceneNode \ub4f1\uacfc \uac19\uc740 \uac83\uc744 \ud654\uba74\uc0c1\uc5d0 \ub80c\ub354\ub9c1 \ud55c\ub2e4. \ub0b4\ubd80\uc801\uc73c\ub85c setup \ud568\uc218\ub97c \ud638\ucd9c\ud558\uace0 \uc870\uac74\ubb34\ud55c\ub8e8\ud504 \ud568\uc218\uc778 Root\uc758 startRendering \ud568\uc218\ub97c \uc2e4\ud589\ud55c \ub4a4, destroyScene \ud568\uc218\ub97c \ud638\ucd9c\ud55c\ub4a4, \uc77c\ubc18\uc801\uc73c\ub85c \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \uc885\ub8cc\ub41c\ub2e4.<\/li>\n<li><strong>setup<\/strong> &#8211; \uac00\uc7a5 \ub9ce\uc740 \uc77c\uc744 \ud558\ub294 \ud568\uc218\ub85c, \ub9ac\uc18c\uc2a4 \ud30c\uc77c\uc744 \uc77d\uc5b4\ub4e4\uc774\uace0 Root \ud074\ub798\uc2a4\ub97c \ucd08\uae30\ud654\ud558\uba70 Root \ud074\ub798\uc2a4\ub97c \ud1b5\ud574 SceneManager\ub97c \uc0dd\uc131\uc2dc\ud0a8\ub2e4. \uadf8\uc678\uc5d0 \uce74\uba54\ub77c, \ubdf0\ud3ec\ud2b8, SceneNode\ub97c \uc0dd\uc131\uc744 \ub2f4\ub2f9\ud558\ub294 \ud568\uc218\ub4f1\uc744 \ucc28\ub840\ub85c \ud638\ucd9c\ud55c\ub2e4.<\/li>\n<li><strong>destroyScene<\/strong> &#8211; \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \uc885\ub8cc\ub418\uae30 \uc9c1\uc804\uc5d0 \ub354 \uc774\uc0c1 \ud544\uc694\ud558\uc9c0 \uc54a\uc744 SceneNode\ub97c \uba54\ubaa8\ub9ac\uc5d0\uc11c \uc81c\uac70\ud55c\ub2e4.<\/li>\n<li><strong>setupResources<\/strong> &#8211; \ub9ac\uc18c\uc2a4(\uc774\ubbf8\uc9c0, Mesh, \uc2a4\ud06c\ub9bd\ud2b8 \ub4f1)\uc758 \uacbd\ub85c\ub97c \uc678\ubd80 cfg\ub85c\ubd80\ud130 \uc77d\uc5b4\ub4e4\uc5ec \ucd94\ud6c4\uc5d0 \uc77d\uc5b4\ub4e4\uc77c \ub9ac\uc18c\uc2a4\uc758 \uacbd\ub85c\ub97c \ud30c\uc545\ud55c\ub2e4.<\/li>\n<li><strong>configure<\/strong> &#8211; \uc0ac\uc6a9\uc790\uc5d0\uac8c 3D API\ub85c OpenGL\uc774\ub098 Direct3D\ub97c \uc4f8\uac83\uc778\uc9c0\uc640 \ud574\uc0c1\ub3c4, \uc804\uccb4\ud654\uba74\uc5ec\ubd80\ub4f1\uc744 \uacb0\uc815\ud560 \uc218 \uc788\ub3c4\ub85d \ud558\uace0, \uacb0\uc815\ub41c \uc0ac\ud56d\uc744 \uae30\ubc18\uc73c\ub85c 3D \ud658\uacbd\uc744 \uc124\uc815\ud55c\ub2e4.<\/li>\n<li><strong>chooseSceneManager<\/strong> &#8211; sceneManager\ub97c \uc0dd\uc131\ud55c\ub2e4.<\/li>\n<li><strong>createCamera<\/strong> &#8211; \uce74\uba54\ub77c \uc0dd\uc131<\/li>\n<li><strong>createViewport<\/strong> &#8211; Viewport \uc0dd\uc131. Viewport\ub294 \uc2e4\uc81c \ub80c\ub354\ub9c1\ub420 \ucc3d(Window)\uc758 \ubc30\uacbd\uc0c9 \ubc0f \ud53d\uc140 \ub108\ube44\uc640 \ub192\uc774 \uac12\ub4f1\uc744 \uac00\uc9c0\uace0 \uc788\ub2e4.<\/li>\n<li><strong>createResourceListener <\/strong>&#8211; \ub9ac\uc18c\uc2a4\ub97c \uc2e4\uc81c\ub85c Loading\ud560\ub54c \uc0ac\uc6a9\uc790\uc5d0\uac8c \ud604\uc7ac \uc5bc\ub9c8\ub9cc\ud07c\uc758 \ub9ac\uc18c\uc2a4\uac00 Loading\ub418\uc5c8\ub294\uc9c0\ub97c \ud30c\uc545\ud560 \uc218 \uc788\ub294 Listener \ud074\ub798\uc2a4\ub97c \uc0dd\uc131\ud55c\ub2e4.<\/li>\n<li><strong>loadResources<\/strong> &#8211; \uc2e4\uc81c \ub9ac\uc18c\uc2a4\ub97c Loading \ud55c\ub2e4.<\/li>\n<li><strong>createScene<\/strong> &#8211; \ub2e4\ub978 \ucd94\uc0c1 \ud568\uc218\uc640\ub294 \ub2ec\ub9ac \uc21c\uc218 \ucd94\uc0c1\ud568\uc218\ub85c\uc368 \ud654\uba74\uc0c1\uc5d0 \ub80c\ub354\ub9c1\ud560 SceneNode\ub97c \uc0dd\uc131\ud55c\ub2e4.<\/li>\n<li><strong>createFrameListener<\/strong> &#8211; \uc0ac\uc6a9\uc790\uc758 Interaction\uc744 \ubc1b\uac70\ub098 \uadf8\uc678\uc758 \ub2e4\ub978 \uc774\uc720\ub97c \ud1b5\ud574 \ubcc0\uacbd\ub41c \uc0ac\ud56d\uc744 \ub9e4 Frame\uc5d0 \ubc18\uc601\ud560 \uc218 \uc788\ub3c4\ub85d\ud558\ub294 Listener\ub97c \uc0dd\uc131\ud55c\ub2e4. Ogre\ub97c \ubd84\uc11d\ub54c \ucc98\uc74c\uc5d0 ExampleApplication\uc744 \ubd84\uc11d\ud558\ub294 \uac83\ucc98\ub7fc \ub2e4\uc74c\uc5d0\ub294 ExampleFrameListener\ub97c \ubd84\uc11d\ud574 \ubcfc\uac83\uc774\ub2e4. \uc77c\ub2e8 \uc5ec\uae30\uc11c\ub294 \uac04\ub2e8\uc774 \uc55e\uc11c \uc5b8\uae09\ud55c \ub0b4\uc6a9\ub9cc \uc54c\uc544\ub3c4 \ucda9\ubd84\ud560 \uac83\uac19\ub2e4.<\/li>\n<\/ul>\n<p>\uc77c\ub2e8 ExampleApplication\uc5d0 \ub300\ud55c \uac1c\ub150\uc801\uc778 \uac83\uc744 \uc815\ub9ac\ud588\ub2e4. \ub2e4\uc74c\uc5d0\ub294 \uc2e4\uc81c\ub85c ExampleApplication\uc744 \uc0c1\uc18d\ubc1b\uc544 \ud654\uba74\uc0c1\uc5d0 \ud558\ub098\uc758 \ubaa8\ub378\uc744 \ub098\ud0c0\ub0b4\ub294 \uc608\uc81c\ub97c \ub9cc\ub4e4\uc5b4\ubcf4\ub294 \uac83\uc73c\ub85c \ud574\uc11c ExampleApplication\uc5d0 \ub300\ud55c \uc815\ub9ac\ub97c \ub9c8\ub8e8\ub9ac\ud560 \uac83\uc774\ub2e4.<\/p>\n<p>\uc5ec\uae30\uc11c ExampleApplication\uc758 \uc774\ub984\uc744 ExampleApplication\uc774\ub77c\uace0 \uc815\uc758\ud588\ub294\uc9c0 \uc0dd\uac01\ud574 \ubcfc \ud544\uc694\uac00 \uc788\uc744 \uac83 \uac19\ub2e4. ExampleApplication\uc740 \ub2e8\uc9c0 Ogre\uc5d0\uc11c \ucd5c\uc18c\ud55c \uc2e4\ud589\ub418\ub294 3D \ud504\ub85c\uadf8\ub7a8\uc774 \uac16\ucd94\uc5b4\uc57c\ud560 \uac83\ub4e4\ub9cc\uc744 \uac00\uc9c0\uace0 \uc788\ub294 \uc608\uc81c\uc5d0 \ubd88\uacfc\ud55c\uac83\uac19\ub2e4. \uc989, \ucc98\uc74c Ogre\uc5d0 \uc811\uadfc\ud558\ub294 \uac1c\ubc1c\uc790\ub4e4\uc5d0\uac8c ExampleApplication\uc744 \uc0c1\uc18d\ubc1b\uc544, \uc5bc\ub9c8\ub098 \uc27d\uac8c 3D \ud504\ub85c\uadf8\ub7a8\uc744 \uac1c\ubc1c\ud560 \uc218 \uc788\ub294\uc9c0\ub97c \ubcf4\uc5ec\uc8fc\uae30 \uc704\ud55c Example\uc5d0 \ubd88\uacfc\ud55c\uac83\uc774 \uc544\ub2cc\uac00 \uc2f6\ub2e4. \ubb3c\ub860 \uc608\uc0c1\uc77c\ubfd0\uc774\uc9c0\ub9cc \ub9d0\uc774\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>ExampleApplication \ud074\ub798\uc2a4\ub294 Ogre\uc5d0\uc11c \uae30\ubcf8\uc801\uc73c\ub85c \uc81c\uacf5\ud558\ub294 Framework \ud074\ub798\uc2a4\uc774\ub2e4. \uc774 \ud074\ub798\uc2a4\uac00 Framework\uac00 \ub420 \uc218 \uc788\ub294 \uc774\uc720\ub294 \uc774 \ud074\ub798\uc2a4\ub97c \uc0c1\uc18d \ubc1b\uc544 \uac00\uc0c1\ud568\uc218\ub97c \uad6c\ud604\ud558\uba74 \ud558\ub098\uc758 3D \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \ub9cc\ub4e4\uc5b4\uc9c0\uae30 \ub54c\ubb38\uc774\ub2e4. ExampleApplication \ud074\ub798\uc2a4\uc758 \uad6c\uc870\uc640 \ud750\ub984\uc744 \ud30c\uc545\ud55c\ub2e4\uba74, Ogre\uc758 \uc804\uccb4\uc801\uc778 \ud750\ub984\uae4c\uc9c0 \uc27d\uac8c \ud30c\uc545\ud560 \uc218 \uc788\uc744 \uac83\uc774\ubbc0\ub85c Ogre\uc758 \uccab\ubc88\uc9f8 \ubd84\uc11d\uc5d0 ExampleApplication\uc5d0 \ub300\ud574\uc11c \uc9d1\uc911\uc801\uc73c\ub85c \uc0b4\ud3b4\ubcf4\uc558\ub2e4. \uc544\ub798\ub294 ExampleApplication\uc758 \ud074\ub798\uc2a4 \uad00\uacc4\ub3c4\uc774\ub2e4. \ub9e4\uc6b0 \uc2ec\ud50c\ud55c \uad6c\uc870\uc778\uac83\uc744 \uc54c \uc218 \uc788\ub2e4. &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=166\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;ExampleApplication\uc758 \uac1c\ub150&#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":[12],"tags":[],"class_list":["post-166","post","type-post","status-publish","format-standard","hentry","category-opensource"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/166","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=166"}],"version-history":[{"count":1,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/166\/revisions"}],"predecessor-version":[{"id":3723,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/166\/revisions\/3723"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=166"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}