3D 화면을그리기위해필요한기본기 XNA 에서 2D 화면을그릴때는 SpriteBatch 하나면끝났지만, 3D를그리기위해서는행렬과 Model, BasicEffect 등여러가지를알아야한다. 이제부터하나씩확인해보자. 먼저 XNA 에서 3D Model 을화면에나타내려면아래의 4

Size: px
Start display at page:

Download "3D 화면을그리기위해필요한기본기 XNA 에서 2D 화면을그릴때는 SpriteBatch 하나면끝났지만, 3D를그리기위해서는행렬과 Model, BasicEffect 등여러가지를알아야한다. 이제부터하나씩확인해보자. 먼저 XNA 에서 3D Model 을화면에나타내려면아래의 4"

Transcription

1 Game Graphics XNA 를이용한모바일 3D 게임만들기 4 XNA 를이용한 Windows Phone 7 3D 게임만들기 3 지난 10월 11일. 드디어 windows Phone 7(WP7) 이세계시장에출시되었다. MS 가야심차게준비한 Windows phone 7이전체스마트폰시장에서어떤영향력을발휘할지사뭇궁금하다. 윈도우폰을통해게임을좋아하는사용자들은 XBox Live 에서즐기던게임들을 WP 환경에서도즐길수있게되었다. 이번시간은마지막시간으로지난강의에이어삼성전자 DMC 연구소의김동훈연구원이맡아진행하였다. 디자이너와같은프로그래밍에약한분들도쉽게따라가며 3D 게임을만들어볼수있는경험이되도록강의가구성되었다. 들어가며지난호에서는 2D게임제작에필요한기반기술과사운드출력, 크로스플랫폼프로젝트만들기등실전게임개발에필요한내용을설명했었다. 이번호는드디어 3D이다. Windows Phone 7을위해새롭게추가된 3D API 및 Effect 에대해설명하고, 예제를통해이를적용해보자. XNA 4.0 정식버전과 Platformer Starter Kit 4.0 필자가지난번에이야기한대로 9월 16일에 Windows Phone 7 정식개발환경과 XNA 4.0 정식버전이출시되었다. 이에따라 Platformer Starter Kit도 4.0 버전으로업그레이드되어 App Hub에서제공되고있다. Windows Phone 7 에서지원하는프레임워크, Silverlight 과 XNA 는사용목적이다르다. XNA 4.0 버전으로재탄생된 Platformer 예제. WP7 도당연히지원한다. App Hub는기존의 XNA Creators Club 이업그레이드된것으로 Windows Phone 7 개발자를위한통합개발자포털사이트이다. WP7 의 Application Framework 는 XNA와 Silverlight 로구성되기때문에 App Hub에서는 XNA와 Silverlight 관련자료를얻을수있으며, 99달러를지불하면 WP7 app을 5개까지만들어서세계에판매할수있다. 참고로 App Hub의 Community-Meet the MVPs 란을보면필자의이름과간단한프로필을확인할수있으니, 앞으로개발을하면서궁금한점이있을때필자에게부담없이메일을보내면되겠다. 새롭게개편된 App Hub 홈페이지 92 NOVEMBER 2010

2 3D 화면을그리기위해필요한기본기 XNA 에서 2D 화면을그릴때는 SpriteBatch 하나면끝났지만, 3D를그리기위해서는행렬과 Model, BasicEffect 등여러가지를알아야한다. 이제부터하나씩확인해보자. 먼저 XNA 에서 3D Model 을화면에나타내려면아래의 4가지과정은반드시거쳐야한다. QuickTime 을실행해서 FBX 파일을열고확인하는자세한과정은다음의주소에서확인하면된다. ( 1. Content Project 에 Model 데이터추가및로딩 2. Model 에적용할 World, View, Projection 행렬을설정 3. Model 의변환행렬을얻어냄 4. Model 이가지고있는 mesh 의 effect 에 2번에서설정한 world, view, projection 행렬, 변환행렬 (Bone), 빛 (Light) 을적용 딱 4단계다. 여기에 BasicEffect, SkinnedEffect 등여러가지 Effect 를적용하면서몇가지의과정이더추가되기에, 위에서설명한 4가지과정은모든 Effect 의기본이된다. 이번호예제로제공되는파일을받아압축을풀면 spaceship.fbx 파일과 enemy.tga 파일이있을것이다. spaceship.fbx 파일은 3D 모델파일로, Maya 나 3ds Max 에서쉽게 fbx 로 export 가가능한포맷이다. 다만 XNA 에서사용하기위해서는최신버전의 FBX Exporter 를이용하므로아래의사이트에서각자버전에맞는 Exporter 를설치하도록하자. 예제파일다운로드 ( Autodesk FBX 홈페이지에서는다양한버전의 Maya 와 3ds Max를지원한다. 3ds Max, Maya 에서모델을 export 하는과정은생략한다. 이와관련된내용은 Naver XNA 카페에있는자료를통해공부할수있다. ( Export 가끝났다면 3D 모델데이터가제대로 export 되었는지를확인해야된다. 이를위해 Autodesk 에서는 QuickTime 에서사용할수있는 FBX Viewer Plugin 을제공하고있다. Viewer 설치파일은같은사이트하단에서찾을수있다. QuickTime Viewer 를통해 fbx 파일을로딩한화면 대부분의 FBX Exporter 관련문의를보면 export 한모델이제대로 XNA 화면에서나오지않는경우가많은데, 이럴때 QuickTime FBX Viewer 를통해미리확인한다면고생할일이반으로줄어든다. FBX 파일등록및 View, Projection 행렬설정하기자, 이제 spaceship.fbx 파일을 Content Project 에등록하고코드에서읽어보자. Content Project 에등록하는것은기존과같은방법으로 FBX 파일을 Content Project 에추가하면된다. 단! 텍스처파일은추가하지않는다. Content Project 가추가된 FBX 파일을빌드하면서관련된텍스처파일을자동으로찾기때문이다. 텍스처를제외한 fbx 파일만추가한다. Viewer 를설치하기전에반드시 QuickTime 을먼저설치해야한다. NOVEMBER

3 이렇게프로젝트에추가된파일을아래와같은코드로읽어들이면된다. Model spaceshipmodel; protected override void LoadContent() // SpriteBatch 초기화 spritebatch = new SpriteBatch(GraphicsDevice); 먼저, View 행렬을만들어보자. 이미위에서설명한대로 View 행렬을만들기위해서는현재카메라의위치와바라보는지점의좌표가필요하다. 이에추가적으로 Up Vector 라는것이필요한데, 여기서는월드좌표계에서의기준 Up Vector 인 (0,1,0) 을사용할것이다. Up Vector 와관련된자세한내용은여기서는생략하도록한다. 필자의블로그에서카메라관련내용을검색해보면확인할수있다. 이를바탕으로 View 행렬을만들어보면아래와같다. // 우주선모델 spaceshipmodel = Content.Load<Model>("spaceship"); Model 클래스는 XNA에서 3D Model 을그리기위해제공하는것으로 FBX 나 X파일등을읽어서로딩하면 Model 클래스데이터로변환되어로딩된다. Model 클래스는아래와같이단순하게정의되어있다. Vector3 cameraposition = new Vector3(0, 20, 100); Vector3 cameralookatposition = new Vector3(0, 0, 0); Matrix cameraviewmatrix = Matrix.CreateLookAt(cameraPosition, cameralookatposition, Vector3.Up); (0,1,0) 의 Up 벡터를쉽게쓰기위해 Vector3.Up 을이용하였다는것을제외하면생각보다간단하다. 위코드의의미는 (0, 20, 100) 에위치한카메라가 (0,0,0) 을바라보고있다는것이다. 자, 이제 Projection 행렬이다. Projection 은차원을줄인다는의미로 3차원이 2차원이되게만들어주는행렬이되겠다. 위에서계산된 View 행렬을어떻게 2D 화면에잘맞춰서보여줄수있을까? 이를위해아래절두체그림을보도록하자. Model Class 이제 Model 에적용할 world, view, projection 행렬을설정해보자. World 행렬은 3D 공간상에위치한절대적위치를말한다.( 상대적위치가아님 ). 또한위치뿐만아니라스케일, 회전도같이적용한행렬형태로사용된다. Spaceship model을 (100,100,100) 으로이동하고, 반으로크기를줄이고, Y축으로 50도바라보게하는행렬을만들면아래와같다. Matrix scalemat = Matrix.CreateScale(0.5f); Matrix rotationmat = Matrix.CreateRotationY(MathHelper.ToRadians(50)); Matrix translationmat = Matrix.CreateTranslation(100,100,100); Matrix worldmat = scalemat * rotationmat * translationmat; 참고로행렬은반드시 Scale * Rotation * Translation 순으로곱해야한다. 3ds Max나 Maya 에서 3D Camera 를다뤄봤다면이미툴을통해화면을구성해보았으므로 Camera 에익숙할것이다. 3D 프로그래밍적으로본다면 3D 화면은 View, Projection 행렬로구성된다. View행렬의의미는 3D 공간에서 Camera 가위치한지점 (Position) 에서특정지점을바라보는것 (LookAt) 을의미한다. Projection 행렬의의미는 Camera 가바라보는화면을화면해상도에맞게 2D 평면으로만들어주는것을의미한다. 절두체 (View Frustum) 뭔가복잡해보이는그림이나왔다. 결론을먼저이야기해보자. Angle, aspect ratio, near/far clip이필요하다는것이다. 그림에서 near, far clip 은거리를의미한다. Near 가 10일경우, 9인위치에있는물체는보이지않는것이고, far 가 1000 인경우, 1001 에위치한물체는화면에보이지않는다. Aspect Ratio( 종횡비 ) 는말그대로화면의너비를높이로나눈것을말하고, Field of view angle ( 시야각 ) 은보통 45도를쓰는데, 시야각수치를이것저것바꾸어보면재미있는샷이나온다. 꼭해보기를권장한다. 이를바탕으로 Projection 행렬을만들어보면아래와같다. float near = 10; float far = 1000; float aspectratio = GraphicsDevice.Viewport.AspectRatio; Matrix projection = Matrix.CreatePerspectiveFieldOfView(MathHelper. ToRadians(45), aspectratio, near, far); 94 NOVEMBER 2010

4 Matrix.CreatePerspectiveFieldOfView() 함수는시야각을 degree 가아닌 radian 으로입력받기때문에 50도를 radian 으로바꿔서입력하였고, 종횡비는 GraphicsDevice.Viewport 가 AspectRatio 를이미알고있기에이값을사용하였다. 이제, 위에서설정한 View, Projection 행렬을이용하여화면에그려보자. 3D Model 을화면에그리기 Model 을화면에그리기위해서는 Effect 를사용해야한다. XNA 4.0 에서는총 5개의 Effect 가사용목적에따라제공되며, 이중기본 3D Model 을그리는데사용되는 BasicEffect 와스키닝애니메이션을위해제공되는 SkinnedEffect 에대해알아보도록하자. BasicEffect 를통해 Fog, light 등의속성편집을통해효과적인 3D 장면을만들수있다. WP7 에서는 5 개의 Effect 들이제공된다. SkinnedEffect는스키닝애니메이션에서다루기로하고, 먼저 BasicEffect 부터알아보자. Effect는이미 3D Model을 Content Project 에추가할때설정할수있었다.( 디폴트설정이 BasicEffect 임 ) protected override void Draw(GameTime gametime) GraphicsDevice.Clear(Color.CornflowerBlue); // 우주선모델의 root 변환행렬을설정, 월드좌표계적용 // 우주선이너무커서 scale을 0.01f로설정, 100배작아짐 // 행렬은 SRT 순으로곱해야한다. Scale*Rotation*Translation spaceshipmodel.root.transform = Matrix.CreateScale(0.01f); // model 의변환행렬을 bonetransform 에복사. Matrix[] bonetransforms = new Matrix[spaceshipModel.Bones.Count]; spaceshipmodel.copyabsolutebonetransformsto(bonetransforms); // Draw the model. foreach (ModelMesh mesh in spaceshipmodel.meshes) foreach (BasicEffect effect in mesh.effects) // 변환행렬중현재 bone index에해당하는행렬을 effect.world에설정 effect.world = bonetransforms[mesh.parentbone.index]; // View 행렬을만든다. (0,20,100) 에서원점을바라본다. effect.view = Matrix.CreateLookAt(new Vector3(0,20,100), Vector3. Zero, Vector3.Up); Fbx 파일의속성편집. BasicEffect 를비롯한 5 개의 Effect 중선택할수있다. Content Processor 의 Default Effect 를 BasicEffect 로설정할경우, 화면에그릴때반드시 BasicEffect를이용해그려야만한다. BasicEffect 는대략 20개정도의멤버변수및함수를제공하고있다. 대부분은이름만봐도의미를이해할수있을정도이며, 이중가장중요한 4 개에대해서알아보자. (4개만으로도화면출력이가능 ) // Projection 행렬을만든다. 시야각은 45도, 종횡비는 AspectRatio가알려준다, 근거리는 10, 원거리는 1000으로설정 // 10 미만, 1000 초과인사물은보이지않게된다. effect.projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45), GraphicsDevice.Viewport.AspectRatio, 10, 1000); // 디폴트로빛을설정한다.( 기본으로 3점조명이들어간다 ) NOVEMBER

5 effect.enabledefaultlighting(); mesh.draw(); ParentBone.Index] 을대입하는이유이며, Mesh.draw() 에서 effect. world 와정점을곱하게된다. 그리고자동차모델의 Root 변환행렬자체를변경하여자동차모델이가지고있는변환행렬에변화를주는코드가아래의코드이다. base.draw(gametime); 위에서설명한 View, Projection, World 가적용된위치를확인하자. EnableDefaultLighting() 함수를호출하면 BasicEffect 가제공하는디폴트빛이설정된다. 위의코드가화면을그릴때가장기본적인코드이고, 앞으로계속위의코드를기반으로쓰일테니반드시이해하도록하자. 이제 Model 과 BasicEffect 의관계에대해조금더자세히생각해보자. Model Class 는여러개의 submesh 를가지고있을수있고, 해당 submesh 는화면에그려지는방식 (Effect) 이다를수있다. 가령자동차를생각해보면, 자동차는몸체와문짝, 바퀴 4개로이뤄지는데, 이들은각각 submesh 이고, 텍스처나재질이다르고화면에보여지는위치등이다를것이다. spaceshipmodel.root.transform = Matrix.CreateScale(0.01f); Root.Transform 을설정하면, spaceshipmodel.copyabsolutebonet ransformsto(bonetransforms); 을통해값을얻을때내부의변환행렬들이 Root.Transform 과곱해져서월드좌표의값이나온다. 자, 이제예제를실행해보자, 아래와같은화면이나올것이다. 3D 우주선과의첫만남이다! 기본예제실행 : 3d 우주선 ( 회전없음 ) 실행해보면, 아무런반응이없는데생동감을주기위해 Y축회전과키보드입력을통한이동을구현하자. 자동차 3D 모델은바퀴, 문짝등의여러개의 submesh 로구성됨 using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Input.Touch; using Microsoft.Xna.Framework.Media; 자동차라는하나의몸체에붙어있다하더라도각각부품을화면에그리기위해서는 world 좌표계에서보여지는최종위치를얻어야하므로자신의부모의 world 행렬을얻어내는것이다. 이부모의 world 행렬과자신의행렬을곱하면 world 행렬로변환된다. 왜부모의 world 행렬과자신의행렬을곱하면 world 행렬로변환될까? 엄마뱃속에있는아이를생각해보면쉽다. 아이는항상엄마의중심에서일정한거리에위치해있다 ( 상대적위치 ). 이때엄마가어디론가간다고했을때, 아이의입장에서자신의 World 위치는엄마의절대위치더하기자신과엄마의상대적인위치가될것이다. ( 행렬은곱하기로모든것을말한다.) 위에서설명한과정이코드에서 effect.world 에 bonetransform[mesh. namespace example3 public class Game1 : Microsoft.Xna.Framework.Game GraphicsDeviceManager graphics; SpriteBatch spritebatch; Model spaceshipmodel; public Game1() graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; 96 NOVEMBER 2010

6 // Frame rate is 30 fps by default for Windows Phone. TargetElapsedTime = TimeSpan.FromTicks(333333); protected override void Initialize() base.initialize(); protected override void LoadContent() spritebatch = new SpriteBatch(GraphicsDevice); spaceshipmodel = Content.Load<Model>("spaceship"); GraphicsDevice.Clear(Color.CornflowerBlue); degreey++; // 360도이상이면다시 0도로만듦 if (degreey > 360) degreey = 0; // 우주선모델의 root 변환행렬을설정, 월드좌표계적용 // 우주선이너무커서 scale을 0.01f로설정, 100배작아짐 // 행렬은 SRT 순으로곱해야한다. Scale*Rotation*Translation spaceshipmodel.root.transform = Matrix.CreateScale(0.01f) * Matrix. CreateRotationY(MathHelper.ToRadians(degreeY)) * Matrix.CreateTranslation(vSpacePosition); protected override void UnloadContent() Vector3 vspaceposition = Vector3.Zero; protected override void Update(GameTime gametime) // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState. Pressed) this.exit(); // XNA 4.0 정식버전이나오면서, 키보드가제대로지원된다. // 키보드를 enable시키기위해서는에뮬레이터화면에서 [Page Up] 키를누르면된다. // emulator-simulating-the-accelerometer.aspx KeyboardState keyboard = Keyboard.GetState(); if (keyboard.iskeydown(keys.left)) vspaceposition.x--; if (keyboard.iskeydown(keys.right)) vspaceposition.x++; if (keyboard.iskeydown(keys.up)) vspaceposition.y++; if (keyboard.iskeydown(keys.down)) vspaceposition.y--; base.update(gametime); int degreey = 0; protected override void Draw(GameTime gametime) // model의변환행렬을 bonetransform에복사. Matrix[] bonetransforms = new Matrix[spaceshipModel.Bones.Count]; spaceshipmodel.copyabsolutebonetransformsto(bonetransforms); // Draw the model. foreach (ModelMesh mesh in spaceshipmodel.meshes) foreach (BasicEffect effect in mesh.effects) // 변환행렬중현재 bone index에해당하는행렬을 effect.world에설정 effect.world = bonetransforms[mesh.parentbone.index]; // View행렬을만든다.(0,20,100) 에서원점을바라본다. effect.view = Matrix.CreateLookAt(new Vector3(0,20,100), Vector3. Zero, Vector3.Up); // Projection 행렬을만든다. 시야각은 45도, 종횡비는 AspectRatio가 // 알려준다, 근거리는 10, 원거리는 1000으로설정 // 10 미만, 1000 초과인사물은보이지않게된다. effect.projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45), GraphicsDevice.Viewport.AspectRatio, 10, 1000); // 디폴트로빛을설정한다.(3점조명이들어간다 ) effect.enabledefaultlighting(); mesh.draw(); base.draw(gametime); XNA 4.0 정식버전에서는키보드를제대로지원하게되었다. 키보드를사용하기위해서는반드시에뮬레이터에서키를눌러 야한다. 예제를실행해서도만약방향키를눌렀는데이동하지않는다면, 키를눌러보기바란다. NOVEMBER

7 // 행렬은 SRT 순으로곱해야한다. Scale*Rotation*Translation dudemodel.root.transform = Matrix.CreateScale(0.5f); // model 의변환행렬을 bonetransform 에복사. Matrix[] bonetransforms = new Matrix[dudeModel.Bones.Count]; dudemodel.copyabsolutebonetransformsto(bonetransforms); 기본예제실행 : 3D 우주선 (Y축회전및키보드이동지원 ) 필자의샘플이외에도 App Hub 사이트에서 3D 모델과 2D Interface 가혼합된형태의예제를찾을수있다. 특히아래의주소예제에서는 BasicEffect 에서의 light 처리등을배울수있다. ( // Draw the model. foreach (ModelMesh mesh in dudemodel.meshes) foreach (BasicEffect effect in mesh.effects) effect.setbonetransform(bonetransforms); // View행렬을만든다. (0,20,100) 에서원점을바라본다. effect.view = Matrix.CreateLookAt(new Vector3(0,20,100), Vector3. Zero, Vector3.Up); // Projection 행렬을만든다. 시야각은 45도, 종횡비는 AspectRatio 가알려준다, // 근거리는 10, 원거리는 1000으로설정 // 10 미만, 1000 초과인사물은보이지않게된다. effect.projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45), GraphicsDevice.Viewport.AspectRatio, 10, 1000); // 디폴트로빛을설정한다.(3점조명이들어간다 ) effect.enabledefaultlighting(); 3D Graphcis 예제, 2D 와 3D 를혼합하는방법에대해배울수있다. 스키닝애니메이션처리하기자, 이번호의대미는스키닝애니메이션으로마무리해보자. 이미설명한대로스키닝애니메이션은 SkinnedEffect 를사용한다. 부록으로제공되는 dude.fbx 파일을 Content Project 에추가하고 Content Processor 에서 Default Effect 를 SkinnedEffect 로설정한다. Default Effect 를 SkinnedEffect 로변경 mesh.draw(); base.draw(gametime); 기존코드와큰차이가없다. Effect.SetBoneTransform(boneTransforms) 을하는이유는기존에는 sub mesh 에대해서직접부모의월드행렬을꺼내서대입을해줬는데, 스키닝애니메이션에서는하나의정점이여러개의변환행렬에영향을받을수있기때문에이와관련된계산은내부에서처리하도록전체변환행렬리스트를넘기는것이다. SkinnedEffect 내부에서 Blending Weight 값들을이용한계산을할것이다. 자실행해보자. 어떻게나오는가? 그리고위에서설명했던대로비슷하게 Draw 코드를아래와같이작성한다. protected override void Draw(GameTime gametime) GraphicsDevice.Clear(Color.CornflowerBlue); // 너무커서 scale 을 0.01f 로설정, 100 배작아짐 스키닝이제대로적용되지않아 3D 모델이깨지는현상 98 NOVEMBER 2010

8 허걱, 완전깨져서나온다. 이문제가생긴이유는무엇일까? 바로스키닝데이터를기반으로한변환행렬정보가만들어지지않았기때문이다. SkinnedEffect 는화면에그리는역할만하지, 애니메이션행렬의계산을하지않는다. 따라서 dude 의걷는동작을애니메이션하기위해뭔가가필요하다. 이를위해 App Hub에있는스키닝예제는 AnimationPlayer 와 SkinnedModelPipeline 을제공한다. ( 이두개의파일을예제프로젝트폴더에복사하자. 2개의 dll 파일을필자가만든예제폴더에복사한다. 그리고 SkinnedModelPipeline.dll 은 Content Project 에참조로추가하고, SkinnedModel.dll 은코드관련프로젝트에참조로추가한다. 스키닝을위해 App Hub 에서는예제를제공한다. 위예제에나온방법은 XNA 4.0 에기본탑재된내용이아니기때문에, 여러개의프로젝트로구성되어있으며, 코드가공개되어있어커스터마이징이가능하다. 필자가평소에사용하는방법으로예제프로젝트에서스키닝애니메이션을구현하는과정을설명하겠다. 먼저, App Hub에서제공하는 Skinning Sample 을받아서압축을풀고프로젝트를열어서전체빌드한다. 프로젝트 - 참조 - 찾아보기를통해 dll 을추가할수있다. 모든과정이완료되면아래와같은프로젝트구성을확인할수있다. App Hub 에서제공되는예제프로젝트구성 예제는총 5개의프로젝트로구성되어있지만우리에게필요한것은 SkinnedModelPhone, SkinnedModelPipeline 프로젝트이다. 전체빌드가성공적으로끝났다면 SkinnedModelPipeline 프로젝트빌드결과로 SkinnedModelPipeline.dll 파일이생성되고, SkinnedModelPhone 프로젝트빌드결과로 SkinnedModel.dll 파일이생성되게된다. 생성위치는아래와같다. (1) Skinning_4_0\SkinnedModel\bin\Windows Phone\Debug\ SkinnedModel.dll (2) Skinning_4_0\SkinnedModelPipeline\bin\x86\Debug\ SkinnedModelPipeline.dll 스키닝을위한프로젝트참조설정완료 이제 dude.fbx 의속성중 Content Processor 를 SkinnedModelPipeline 으로변경한다. NOVEMBER

9 // 모델에서스키닝데이터를얻는다. SkinningData skinningdata = dudemodel.tag as SkinningData; 3D 모델파일의 Content Processor 를 SkinnedModelProcessor 로변경이제준비작업은다끝났다. AnimationPlayer 가적용된풀소스를보도록하자. using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Input.Touch; using Microsoft.Xna.Framework.Media; using SkinnedModel; // AnimationPlayer을위해 namespace 추가 namespace example3_1 public class Game1 : Microsoft.Xna.Framework.Game GraphicsDeviceManager graphics; SpriteBatch spritebatch; Model dudemodel; AnimationPlayer animationplayer; public Game1() graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; // Frame rate is 30 fps by default for Windows Phone. TargetElapsedTime = TimeSpan.FromTicks(333333); protected override void Initialize() base.initialize(); protected override void LoadContent() spritebatch = new SpriteBatch(GraphicsDevice); // 스키닝데이터에있는애니메이션 Set 중 Take 001 애니메이션을얻는다. // Take 001은 FBX 파일을 Export를하면생성되는기본애니메이션이름이다. // 여기서는 walk 애니메이션을나타낸다. AnimationClip clip = skinningdata.animationclips["take 001"]; // 스키닝데이터를바탕으로 AnimationPlayer를생성한다. animationplayer = new AnimationPlayer(skinningData); // walk 애니메이션시작 animationplayer.startclip(clip); protected override void UnloadContent() float rotatioy = 0.0f; protected override void Update(GameTime gametime) // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState. Pressed) this.exit(); // 주어진시간에맞게애니메이션을갱신시킨다. // 너무커서 scale을 0.5f로설정, 2배로작아짐 // 행렬은 SRT 순으로곱해야한다. Scale*Rotation*Translation // AnimationPlayer에 world 행렬을적용하는것은아래와같다. KeyboardState keyboard = Keyboard.GetState(); if (keyboard.iskeydown(keys.left)) rotatioy -= 0.1f; if (keyboard.iskeydown(keys.right)) rotatioy += 0.1f; Matrix worldmat = Matrix. CreateScale( 0. 5f ) * Matrix. CreateRotationY(rotatioY); animationplayer.update(gametime.elapsedgametime, true, worldmat); base.update(gametime); protected override void Draw(GameTime gametime) GraphicsDevice.Clear(Color.CornflowerBlue); // 스키닝이적용된변환행렬리스트를얻어낸다. Matrix[] bones = animationplayer.getskintransforms(); dudemodel = Content.Load<Model>("dude"); // Render the skinned mesh. 100 NOVEMBER 2010

10 foreach (ModelMesh mesh in dudemodel.meshes) foreach (SkinnedEffect effect in mesh.effects) effect.setbonetransforms(bones); // View행렬을만든다. (0,0,-100) 에서 (0,30,0) 을바라본다. effect.view = Matrix.CreateLookAt(new Vector3(0, 40, -60), new Vector3(0,20,0), Vector3.Up); effect.enabledefaultlighting(); // Specular 색깔을설정하고, 반사도를결정한다.( 없어도무방 ) effect.specularcolor = new Vector3(0.5f); effect.specularpower = 16; mesh.draw(); // Projection 행렬을만든다. 시야각은 45도, 종횡비는 AspectRatio가알려준다. 근거리는 10, 원거리는 1000으로설정 // 10 미만, 1000 초과인사물은보이지않게된다. effect.projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45), GraphicsDevice.Viewport.AspectRatio, 10, 1000); base.draw(gametime); 실행하면아래와같이 dude 가걷는모습을볼수있을것이다. 추가로왼쪽오른쪽화살표를누르면 dude 가 Y축으로회전하는것을확인할수있다. BasicEffect 와 SkinnedEffect 를비롯한 WP7에서추가된 5개의 Effect 와관련된설명및적용방법은필자의블로그 ( pe.kr) 에서확인할수있다. Dude 의스키닝애니메이션적용된모습 (Y 축회전적용 ) 맺음말이번호에서는 Windows Phone 7에서 3D Model 을화면에출력하고스키닝애니메이션을적용하였다. 이로서 WP7 소개에서부터 3D 게임까지의 3개월연재를마치게되었다. 이번연재통해독자여러분께서 WP7 게임개발을시작하는데도움이되었으면한다. 항상질문에목말라있는필자다. 주저없이문의주시길 ~! ( 지금까지수고해주신김동훈님께다시한번감사의말씀을전합니다.) 김동훈 삼성전자 DMC 연구소연구원, Microsoft XNA/DirectX MVP 블로그 fly33499@gmail.com NOVEMBER

persona

persona 1 위 nagi ( 김희중 ) n_agi@naver.com [Web100] 맥도리아 1+1 쿠폰을구매하자 쿠폰을구매해서이제는더이상 naver 살수없는맥도리아 1+1 쿠폰을사면된다. 거래내역목록에 search할수있는방법이있는데, 이는 SQL Injection이가능하다. 맨처음해본게 union이라 union을이용해키를가져오려고일단칼럼개수를맞춰주기위해 1' union

More information

Game Graphics XNA를 이용한 모바일 3D 게임 만들기 [2] XNA를 이용한 Windows Phone 7 3D 게임 만들기 1 스마트폰에 들어가는 앱(App) 중에 가장 많은 부분을 차지하는 영역이 바로 게임분 야로서 이번 시간은 Windows Phone

Game Graphics XNA를 이용한 모바일 3D 게임 만들기 [2] XNA를 이용한 Windows Phone 7 3D 게임 만들기 1 스마트폰에 들어가는 앱(App) 중에 가장 많은 부분을 차지하는 영역이 바로 게임분 야로서 이번 시간은 Windows Phone Game Graphics XNA를 이용한 모바일 3D 게임 만들기 [2] XNA를 이용한 Windows Phone 7 3D 게임 만들기 1 스마트폰에 들어가는 앱(App) 중에 가장 많은 부분을 차지하는 영역이 바로 게임분 야로서 이번 시간은 Windows Phone 7(이하 WP 7)에서 XNA를 이용한 본격적인 게임을 만들기 위한 그 첫 번째 시간으로서

More information

Microsoft PowerPoint - GameProgramming7-Model [호환 모드]

Microsoft PowerPoint - GameProgramming7-Model [호환 모드] Overview Model Model class represents a 3D model composed of multiple ModelMesh objects which may be moved independently. ModelMesh class represents a mesh that is part of a Model. 305890 Spring 2012 4/16/2012

More information

Microsoft PowerPoint - GameProgramming7-Model.ppt [호환 모드]

Microsoft PowerPoint - GameProgramming7-Model.ppt [호환 모드] Overview Model Model class represents a 3D model composed of multiple ModelMesh objects which may be moved independently. ModelMesh class represents a mesh that is part of a Model. 305890 Spring 2014 4/08/2014

More information

임베디드 시스템 소프트웨어

임베디드 시스템 소프트웨어 13 주차강대기 3D 프로그래밍을위해서는 3D 그래픽에대핚기초이롞을알아두어야하므로, XNA 프레임워크상에서개발하는데꼭알아야핛기초지식을학습함 XNA 프레임워크는다양핚입력장치를통해사용자입력을처리하므로, XNA 게임스튜디오 4.0 에서제공하는대부분의입력장치를지원하는 Microsoft.Xna.Framework.Input 네임스페이스를학습함 게임에서필수적읶사운드처리를위핚기법학습

More information

(Microsoft PowerPoint - \301\24613\260\255 - oFusion \276\300 \261\270\274\272)

(Microsoft PowerPoint - \301\24613\260\255 - oFusion \276\300 \261\270\274\272) 게임엔진 제 13 강 ofusion 씬구성 이대현교수 한국산업기술대학교게임공학과 학습목차 Ofusion 을이용한 export Export 된씬의재현 씬노드애니메이션을이용한수동카메라트래킹 ofusion OGRE3D 엔진용 3D MAX 익스포터 http://www.ofusiontechnologies.com ofusion 의특징 Realtime Viewport 3D

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

Game Graphics XNA를 이용한 모바일 3D 게임 만들기 3 XNA를 이용한 Windows Phone 7 3D 게임 만들기 2 Windows Phone 7(WP 7)의 출시가 임박해지자, WP 7을 준비하고 있는 DELL, LG, Asus 등 제조사들의 발걸음

Game Graphics XNA를 이용한 모바일 3D 게임 만들기 3 XNA를 이용한 Windows Phone 7 3D 게임 만들기 2 Windows Phone 7(WP 7)의 출시가 임박해지자, WP 7을 준비하고 있는 DELL, LG, Asus 등 제조사들의 발걸음 Game Graphics XNA를 이용한 모바일 3D 게임 만들기 3 XNA를 이용한 Windows Phone 7 3D 게임 만들기 2 Windows Phone 7(WP 7)의 출시가 임박해지자, WP 7을 준비하고 있는 DELL, LG, Asus 등 제조사들의 발걸음이 바빠졌다. 단순히 스마트폰에만 머무르지 않고 여러 플랫폼에서의 접근성을 강화하려고 하는

More information

슬라이드 1

슬라이드 1 한국산업기술대학교 제 5 강스케일링및회전 이대현교수 학습안내 학습목표 3D 오브젝트의확대, 축소및회전방법을이해한다. 학습내용 3D 오브젝트의확대및축소 (Scaling) 3D 오브젝트의회전 (Rotation) 변홖공갂 (Transform Space) SceneNode 의크기변홖 (Scale) void setscale ( Real x, Real y, Real z)

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2> 게임엔진 제 4 강프레임리스너와 OIS 입력시스템 이대현교수 한국산업기술대학교게임공학과 학습내용 프레임리스너의개념 프레임리스너를이용한엔터티의이동 OIS 입력시스템을이용한키보드입력의처리 게임루프 Initialization Game Logic Drawing N Exit? Y Finish 실제게임루프 오우거엔진의메인렌더링루프 Root::startRendering()

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 유니티와아두이노를활용한 VR 컨트롤러개발 Part 06 헬로앱스코딩교육 김영준 공학박사, 목원대학교겸임교수前 Microsoft 수석연구원 splduino@gmail.com http://www.helloapps.co.kr 키보드로물체생성하기 키보드로물체생성하기 public GameObject CubeObject; public GameObject MyCamera;

More information

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

More information

임베디드 시스템 소프트웨어

임베디드 시스템 소프트웨어 14 주차강대기 게임에적용핛 2D 와 3D 애니메이션처리기법들에대해학습함. 애니메이션의기본원리와홗용법은게임의완성도를더하는중요핚요소이니잘익혀야함. XNA 프레임워크에서충돌처리방식은정밀도는떨어지지만, 갂결하고보다빠른충돌감지알고리즘을사용함. 2D 및 3D 모두 Intersects 함수를이용하여충돌여부를확읶핛수있음 지금까지의내용으로는게임을개발하는데필수적이지만충분하지않을수있음.

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace

More information

임베디드 시스템 소프트웨어

임베디드 시스템 소프트웨어 12 주차강대기 2006 년처음발표된 XNA 는 PC 는물롞 Xbox 360 과우리가배우고있는윈도우폮 7 에서실행할수있는게임을개발할때홗용할수있음 XNA 를통해크로스플랫폰 (cross-platform) 에서보다쉽게원하는게임을맊드는방법에대해알아봄 XNA 4.0 XNA 게임스튜디오 4.0 의특징 XNA 게임스튜디오 4.0 의설치및개발홖경 XNA 4.0 프로젝트젂체분석

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

MVVM 패턴의 이해

MVVM 패턴의 이해 Seo Hero 요약 joshua227.tistory. 2014 년 5 월 13 일 이문서는 WPF 어플리케이션개발에필요한 MVVM 패턴에대한내용을담고있다. 1. Model-View-ViewModel 1.1 기본개념 MVVM 모델은 MVC(Model-View-Contorl) 패턴에서출발했다. MVC 패턴은전체 project 를 model, view 로나누어

More information

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 개발환경구조및설치순서 JDK 설치 Eclipse 설치 안드로이드 SDK 설치 ADT(Androd Development Tools) 설치 AVD(Android Virtual Device) 생성 Hello Android! 2 Eclipse (IDE) JDK Android SDK with

More information

(Hyunoo Shim) 1 / 24 (Discrete-time Markov Chain) * 그림 이산시간이다연쇄 (chain) 이다왜 Markov? (See below) ➀ 이산시간연쇄 (Discrete-time chain): : Y Y 의상태공간 = {0, 1, 2,..., n} Y n Y 의 n 시점상태 {Y n = j} Y 가 n 시점에상태 j 에있는사건

More information

노트북 IT / 모바일 데스크탑 34 올인원PC 35 PC 소프트웨어 포터블SSD / SSD / 메모리카드 36 태블릿 37 휴대폰 39 PC 솔루션 IT / 모바일 IT / 모바일 노트북 29 삼성전자는 Windows 를 권장합니다. 삼성전자만의 편리하고 다양한 소프트웨어를 통해 초보자도 보다 쉽고 빠르게 이용 가능합니다. Easy Settings 삼성 패스트

More information

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

More information

Microsoft PowerPoint - 13prac.pptx

Microsoft PowerPoint - 13prac.pptx Viewing 1 th Week, 29 OpenGL Viewing Functions glulookat() Defining a viewing matrix glortho() Creating a matrix for an orthographic parallel viewing i volume glfrustum() Creating a matrix for a perspective-view

More information

제8장 자바 GUI 프로그래밍 II

제8장 자바 GUI 프로그래밍 II 제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로

More information

Open GL

Open GL Graphics Basic Windows & OpenGL Programming 컴퓨터그래픽스연구실 OpenGL 관련참고사이트 OpenGL 공식사이트 http://www.opengl.org/ Khronos Group http://www.khronos.org/ Nehe Productions http://nehe.gamedev.net/ OpenGL 파일설정 압축을푼후다음경로로파일을복사

More information

Vector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표

Vector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표 Vector Differential: 벡터 미분 Yonhee Lee October 7, 08 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표기법을 정의하는 방법이다 보통 스칼라(scalar)에 대한 미분은 일분수 함수 f : < < 또는 다변수 함수(function

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 03 모델변환과시점변환 01 기하변환 02 계층구조 Modeling 03 Camera 시점변환 기하변환 (Geometric Transformation) 1. 이동 (Translation) 2. 회전 (Rotation) 3. 크기조절 (Scale) 4. 전단 (Shear) 5. 복합변환 6. 반사변환 7. 구조변형변환 2 기하변환 (Geometric Transformation)

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

3D MAX + WEEK 9 Hansung Univ. Interior Design

3D MAX + WEEK 9 Hansung Univ. Interior Design 3D MAX + WEEK 9 Hansung Univ. Interior Design 3D MAX + UNREAL ENGINE 4 4 4 이용하여 애니메이션 만들기 Max에서 준비하기 공간 만들기 Max에서 준비하기 박공지붕 만들기: 5000mm만큼 올리기 Max에서 준비하기 창만들기: 한쪽 벽만 창 제작 Max에서 준비하기 벽체 분리:Detach Max에서 준비하기

More information

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

Windows 10 General Announcement v1.0-KO

Windows 10 General Announcement v1.0-KO Windows 10 Fuji Xerox 장비와의호환성 v1.0 7 July, 2015 머리말 Microsoft 는 Windows 10 이 Windows 자동업데이트기능을통해예약되어질수있다고 6 월 1 일발표했다. 고객들은 윈도우 10 공지알림을받기 를표시하는새로운아이콘을알아차릴수있습니다. Fuji Xerox 는 Microsoft 에서가장최신운영시스템인 Windows

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

서강대학교 공과대학 컴퓨터공학과 CSE4170 기초 컴퓨터 그래픽스 중간고사 (1/7) [CSE4170: 기초 컴퓨터 그래픽스] 중간고사 (담당교수: 임 인 성) 답은 연습지가 아니라 답안지에 기술할 것. 답 안지 공간이 부족할 경우, 답안지 뒷면에 기술 하고, 해당

서강대학교 공과대학 컴퓨터공학과 CSE4170 기초 컴퓨터 그래픽스 중간고사 (1/7) [CSE4170: 기초 컴퓨터 그래픽스] 중간고사 (담당교수: 임 인 성) 답은 연습지가 아니라 답안지에 기술할 것. 답 안지 공간이 부족할 경우, 답안지 뒷면에 기술 하고, 해당 (/7) [CSE47: 기초 컴퓨터 그래픽스] 중간고사 (담당교수: 임 인 성) 답은 연습지가 아니라 답안지에 기술할 것. 답 안지 공간이 부족할 경우, 답안지 뒷면에 기술 하고, 해당 답안지 칸에 그 사실을 명기할 것.. 2차원 아핀변환인 이동변환 T (t, t ), 크기변환 S(s, s ), 그리고 회전변환 R(θ)에 대한 3행 3열 행렬들을 고려하자.

More information

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD> 2006 년 2 학기윈도우게임프로그래밍 제 8 강프레임속도의조절 이대현 한국산업기술대학교 오늘의학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용한다. FPS(Frame Per Sec)

More information

ALTIBASE 사용자가이드 Templete

ALTIBASE 사용자가이드 Templete Real Alternative DBMS ALTIBASE, Since 1999 WINDOWS ADO.NET 환경의 ALTIBASE 개발가이드 2010. 09 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved. Document Control Change Record Date Author Change

More information

슬라이드 1

슬라이드 1 2007 년 2 학기윈도우게임프로그래밍 제 7 강프레임속도의조절 이대현 핚국산업기술대학교 학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용핚다. FPS(Frame Per Sec)

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345]) 클래스의응용 클래스를자유자재로사용하자. 이장에서다룰내용 1 객체의치환 2 함수와클래스의상관관계 01_ 객체의치환 객체도변수와마찬가지로치환이가능하다. 기본예제 [7-1] 객체도일반변수와마찬가지로대입이가능하다. 기본예제 [7-2] 객체의치환시에는조심해야할점이있다. 복사생성자의필요성에대하여알아보자. [ 기본예제 7-1] 클래스의치환 01 #include

More information

Microsoft PowerPoint - lecture11-ch5.ppt [호환 모드]

Microsoft PowerPoint - lecture11-ch5.ppt [호환 모드] Viewing Viewing 329 24 년봄학기 5//24 박경신 관측의기본요소 객체 (Objects) 관측자 (Viewer) 투영선 (Projector) 투영면 (Projection plane) 투영중심 (Center of Projection: COP) COP가유한한경우 투시관측 (Perspectie iews) COP가무한한경우 평행관측 (Parallel

More information

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - [2009] 02.pptx 원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 11 장상속 1. 상속의개념을이해한다. 2. 상속을이용하여자식클래스를작성할수있다. 3. 상속과접근지정자와의관계를이해한다. 4. 상속시생성자와소멸자가호출되는순서를이해한다. 이번장에서만들어볼프로그램 class Circle { int x, y; int radius;... class Rect { int x, y; int width, height;... 중복 상속의개요

More information

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D> VHDL 프로그래밍 D. 논리합성및 Xilinx ISE 툴사용법 학습목표 Xilinx ISE Tool 을이용하여 Xilinx 사에서지원하는해당 FPGA Board 에맞는논리합성과정을숙지 논리합성이가능한코드와그렇지않은코드를구분 Xilinx Block Memory Generator를이용한 RAM/ ROM 생성하는과정을숙지 2/31 Content Xilinx ISE

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이타베이스 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2013.05.15. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다 이장에서사용되는 MATLAB 명령어들은비교적복잡하므로 MATLAB 창에서명령어를직접입력하지않고확장자가 m 인 text 파일을작성하여실행을한다. 즉, test.m 과같은 text 파일을만들어서 MATLAB 프로그램을작성한후실행을한다. 이와같이하면길고복잡한 MATLAB 프로그램을작성하여실행할수있고, 오류가발생하거나수정이필요한경우손쉽게수정하여실행할수있는장점이있으며,

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT 2007. 2. 5 PLATFORM TEAM 정용학 차례 CONTAINER & WIDGET SPECIAL WIDGET 질의응답및토의 2 Container LCD에보여지는화면한개 1개이상의 Widget을가짐 3 Container 초기화과정 ui_init UMP_F_CONTAINERMGR_Initialize UMP_H_CONTAINERMGR_Initialize

More information

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우. 소프트웨어매뉴얼 윈도우드라이버 Rev. 3.03 SLP-TX220 / TX223 SLP-TX420 / TX423 SLP-TX400 / TX403 SLP-DX220 / DX223 SLP-DX420 / DX423 SLP-DL410 / DL413 SLP-T400 / T403 SLP-T400R / T403R SLP-D220 / D223 SLP-D420 / D423

More information

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

PathEye 공식 블로그 다운로드 받으세요!!   지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye Mobile Ver. 0.71b 2009. 3. 17 By PathEye 공식 블로그 다운로드 받으세요!! http://blog.patheye.com 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye 설치 1/3 최종 배포 버전을 다 운로드 받습니다. 다운로드된 파일은 CAB 파일입니다. CAB 파일에는

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

KNK_C_05_Pointers_Arrays_structures_summary_v02

KNK_C_05_Pointers_Arrays_structures_summary_v02 Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",

More information

JDK이클립스

JDK이클립스 JDK 와이클립스설치 A. JDK 다운로드, 설치및환경설정 지금부터 JDK를다운로드받아설치하고 JDK를윈도우에서활용할수있도록환경을설정하는전과정을소개한다. 다운로드 www.oracle.com 사이트에접속하여 Downloads 메뉴를선택한후 [ 그림 1] 과같이 "Java for Developers" 를클릭한다. [ 그림 1] www.oracle.com 사이트

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television

More information

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 UI 이벤트 Event listener Touch mode Focus handling Notification Basic toast notification Customized toast notification Status bar notification 2 사용자가인터랙션하는특정 View

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

스마트월드캠퍼스 교육교제

스마트월드캠퍼스 교육교제 LG Smart TV SDK 활용법 Contents 1. Using LG Smart TV SDK 2. Testing & Publishing 3. UX Guideline Using LG Smart TV SDK LG Smart TV SDK 구성 Open API IDE* App 구현을 위한 LG Smart TV 인터페이스 제공 Media playback, TV 제어,

More information

API 매뉴얼

API 매뉴얼 PCI-TC03 API Programming (Rev 1.0) Windows, Windows2000, Windows NT, Windows XP and Windows 7 are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations

More information

Studuino소프트웨어 설치

Studuino소프트웨어 설치 Studuino 프로그래밍환경 Studuino 소프트웨어설치 본자료는 Studuino 프로그래밍환경설치안내서입니다. Studuino 프로그래밍 환경의갱신에따라추가 / 수정될수있습니다. 목차 1. 소개... 1 2. Windows... 2 2.1. 프로그래밍환경설치... 2 2.1.1. 웹설치버전설치방법... 2 2.2. Studuino 프로그래밍환경실행...

More information

Microsoft Word - cg07-midterm.doc

Microsoft Word - cg07-midterm.doc 중간고사 담당교수 : 단국대학교멀티미디어공학전공박경신 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. 답에는반드시네모를쳐서확실히표시할것. 답안지에학과, 학번, 이름외에본인의암호를기입하면성적공고시학번대신암호를사용할것임. 1. 맞으면 true, 틀리면 false를적으시오.

More information

슬라이드 1

슬라이드 1 한국산업기술대학교 제 4 강프레임리스너 (Frame Listener) 이대현교수 학습안내 학습목표 프레임리스너를이용하여게임루프를구현하는방법을이해한다. 오우거엔짂의키입력처리방식을이해한다. 학습내용 프레임리스너의개념프레임리스너를이용한게임캐릭터의이동캐릭터의이동속도조절 OIS 입력시스템을이용한키보드입력의처리 기본게임루프 Initialization Game Logic

More information

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap04-연산자.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에

More information

data

data 3D Game Programming 11 - ASE Animation afewhee@gmail.com 0. 목차 ASE 구조 Geometry Parsing Geometry Texture Parsing Material Texture Rigid Body Animation Scene Animation X-File Animation 1. ASE 구조 ASE Parsing

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터 운영체제실습 Raspbian 설치 2017. 3 표월성 wspyo74@naver.com cherub.sungkyul.ac.kr 목차 Ⅰ. 설치 1. 라즈비안 (Raspbian 설치 ) 2. 설치후, 설정 설정사항 Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로

More information

JUNIT 실습및발표

JUNIT 실습및발표 JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected

More information

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a 6 장복사생성자 객체의생성과대입객체의값에의한전달복사생성자디폴트복사생성자복사생성자의재정의객체의값에의한반환임시객체 C++ 프로그래밍입문 1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y;

More information

서현수

서현수 Introduction to TIZEN SDK UI Builder S-Core 서현수 2015.10.28 CONTENTS TIZEN APP 이란? TIZEN SDK UI Builder 소개 TIZEN APP 개발방법 UI Builder 기능 UI Builder 사용방법 실전, TIZEN APP 개발시작하기 마침 TIZEN APP? TIZEN APP 이란? Mobile,

More information

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문 4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문 1. 클래스와객체 추상데이터형 : 속성 (attribute) + 메서드 (method) 예 : 자동차의속성과메서드 C++ : 주로 class

More information

Chap 6: Graphs

Chap 6: Graphs 그래프표현법 인접행렬 (Adjacency Matrix) 인접리스트 (Adjacency List) 인접다중리스트 (Adjacency Multilist) 6 장. 그래프 (Page ) 인접행렬 (Adjacency Matrix) n 개의 vertex 를갖는그래프 G 의인접행렬의구성 A[n][n] (u, v) E(G) 이면, A[u][v] = Otherwise, A[u][v]

More information

Łø·ŸÕ=¤ ¬ ÇX±xÒ¸ 06 - Èpº– 1

Łø·ŸÕ=¤ ¬ ÇX±xÒ¸ 06 - Èpº– 1 그래픽스강의노트 06 - 조명 1 강영민 동명대학교 2015 년 2 학기 강영민 ( 동명대학교 ) 3D 그래픽스프로그래밍 2015 년 2 학기 1 / 25 음영 계산의 필요성 음영(陰影) 계산, 혹은 셰이딩(shading)은 어떤 물체의 표면에서 어두운 부분과 밝은 부분을 서로 다른 밝기로 그려내는 것 모든 면을 동일한 색으로 그리면 입체감이 없다. 2 /

More information

슬라이드 1

슬라이드 1 Software Verification #3 정적분석도구, 단위 / 시스템테스트도구 Software Verification Team 4 강 정 모 송 상 연 신 승 화 1 Software Verification #3 정적분석도구, 단위 / 시스템테스트도구 CONTENTS 01 Overall Structure 02 Static analyzer SonarQube

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

1 경영학을 위한 수학 Final Exam 2015/12/12(토) 13:00-15:00 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오. 1. (각 6점) 다음 적분을 구하시오 Z 1 4 Z 1 (x + 1) dx (a) 1 (x 1)4 dx 1 Solut

1 경영학을 위한 수학 Final Exam 2015/12/12(토) 13:00-15:00 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오. 1. (각 6점) 다음 적분을 구하시오 Z 1 4 Z 1 (x + 1) dx (a) 1 (x 1)4 dx 1 Solut 경영학을 위한 수학 Fial Eam 5//(토) :-5: 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오.. (각 6점) 다음 적분을 구하시오 4 ( ) (a) ( )4 8 8 (b) d이 성립한다. d C C log log (c) 이다. 양변에 적분을 취하면 log C (d) 라 하자. 그러면 d 4이다. 9 9 4 / si (e) cos si

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 9 강. 클래스의활용목차 멤버함수의외부정의 this 포인터 friend 선언 static 멤버 임시객체 1 /17 9 강. 클래스의활용멤버함수의외부정의 멤버함수정의구현방법 내부정의 : 클래스선언내에함수정의구현 외부정의 클래스선언 : 함수프로토타입 멤버함수정의 : 클래스선언외부에구현

More information

<4D F736F F D20BECBB1E220BDACBFEE20BAA4C5CD2C20C1C2C7A5B0E82C20C1C2C7A5BAAFC8AFC7E0B7C4>

<4D F736F F D20BECBB1E220BDACBFEE20BAA4C5CD2C20C1C2C7A5B0E82C20C1C2C7A5BAAFC8AFC7E0B7C4> 벡터, 좌표계, 좌표값, 그리고좌표변환행렬 이형근한국항공대학교항공전자및정보통신공학부 제어및로봇응용에서다양한좌표계와이를기반으로한벡터의좌표값이활용되고있다. 이는운동을수반하는대다수의지능시스템에있어서시스템의현재위치및자세정보가미래의동작을결정하고제어하는데필수불가결한정보로인식되기때문이다. 다양한응용분야에활용되는중요성에도불구하고, 필자의경험에의하면, 벡터및좌표계관련사항들은입문자가처음접하는단계에서큰부담을느끼는부분으로이해된다.

More information

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인 표준프레임워크로구성된컨텐츠를솔루션에적용하는것에문제가없는지확인 ( S next -> generate example -> finish). 2. 표준프레임워크개발환경에솔루션프로젝트추가. ( File -> Import -> Existring Projects into

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 CHAPTER 11. 자바스크립트와캔버스로게임 만들기 캔버스 캔버스는 요소로생성 캔버스는 HTML 페이지상에서사각형태의영역 실제그림은자바스크립트를통하여코드로그려야한다. 컨텍스트객체 컨텍스트 (context) 객체 : 자바스크립트에서물감과붓의역할을한다. var canvas = document.getelementbyid("mycanvas"); var

More information

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=http://schemas.android.com/apk/res/android 2 xmlns:tools=http://schemas.android. 10 차시파일처리 1 학습목표 내장메모리의파일을처리하는방법을배운다. SD 카드의파일을처리하는방법을배운다. 2 확인해볼까? 3 내장메모리파일처리 1) 학습하기 [ 그림 10-1] 내장메모리를사용한파일처리 2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1

More information

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다.

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다. Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/2015 1. Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다. 2. Installation 2.1. For Debian GNU/Linux 국내에서사용되는컴퓨터들의

More information

슬라이드 1

슬라이드 1 프로세싱 광운대학교로봇학부박광현 프로세싱실행 2 C:\processing-3.2.1 폴더 창나타내기 실행 정지 3 폭 높이 600 400 도형그리기 배경칠하기 5 background(255, 255, 255); R G B background(255, 0, 0); background(255, 122, 0); 선그리기 6 background(255, 122, 0);

More information

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을 (structures) 구조체정의 구조체선언및초기화 구조체배열 구조체포인터 구조체배열과포인터 구조체와함수 중첩된구조체 구조체동적할당 공용체 (union) 1 구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined

More information

Microsoft Word - cg12-midterm-answer

Microsoft Word - cg12-midterm-answer 중간고사 담당교수 : 단국대학교멀티미디어공학전공박경신 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. 답에는반드시네모를쳐서확실히표시할것. 답안지에학과, 학번, 이름외에본인의암호를기입하면성적공고시학번대신암호를사용할것임.. 맞으면 true, 틀리면 false를적으시오.

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 3 장함수와문자열 1. 함수의기본적인개념을이해한다. 2. 인수와매개변수의개념을이해한다. 3. 함수의인수전달방법 2가지를이해한다 4. 중복함수를이해한다. 5. 디폴트매개변수를이해한다. 6. 문자열의구성을이해한다. 7. string 클래스의사용법을익힌다. 이번장에서만들어볼프로그램 함수란? 함수선언 함수호출 예제 #include using

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

<4D6963726F736F667420576F7264202D20BDBAB8B6C6AE545620BCD3BFA1BCADC0C720534E5320C6F7C1F6BCC5B4D720B9D720C0FCB7AB5FBCDBB9CEC1A42E646F63>

<4D6963726F736F667420576F7264202D20BDBAB8B6C6AE545620BCD3BFA1BCADC0C720534E5320C6F7C1F6BCC5B4D720B9D720C0FCB7AB5FBCDBB9CEC1A42E646F63> 스마트 TV 속에서의 SNS 포지셔닝 및 전략 1. 들어가는 말 송 민 정 KT 경제경영연구소, mzsong@kt.com 지난 호에서는 SNS 시장 트렌드 및 경쟁구도를 전망하였다. 먼저 진화모델을 제시하였고 스마트폰 등장이 개방형 SNS (Social Networking Service) 시장에 촉매제 역할을 하게 되었음을 강조하였다. SNS 경쟁구도는 현재

More information

Microsoft PowerPoint - Week04_DirectX9 프로그래밍의 기초2.pptx

Microsoft PowerPoint - Week04_DirectX9 프로그래밍의 기초2.pptx DirectX9 프로그래밍의기초 2 목 차 파일포맷 ID3DXBuffer 사용하기 경계볼륨 애니메이션및게임실습 2 3D Modeler 3DS Max LightWave 3D Maya 메쉬데이터 기하정보 재질 애니메이션 애니메이션및게임실습 3 .X DirectX 에서사용하는파일포맷 파일처리함수를 DirectX 가제공 파일종류 ASCII Binary Binary

More information

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information