슬라이드 1

Similar documents
슬라이드 1

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

슬라이드 1

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

슬라이드 1

슬라이드 1

<4D F736F F F696E74202D20C1A63134B0AD202D20BBE7BFF8BCF6BFCD20C8B8C0FC>

<4D F736F F F696E74202D20C1A63137B0AD202D20C1F6C7FCC3E6B5B9C3B3B8AE>

(Microsoft PowerPoint - \301\24615\260\255 - \303\346\265\271\303\263\270\256)

슬라이드 1

<4D F736F F F696E74202D20C1A63037B0AD202D20B1A4BFF8B0FA20B1D7B8B2C0DA>

슬라이드 1

슬라이드 1

(Microsoft PowerPoint - \301\24608\260\255 - \261\244\277\370\260\372 \300\347\301\372)

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

슬라이드 1

<4D F736F F F696E74202D20C1A63130B0AD202D20C1F6C7FCB0FA20C7CFB4C3C0C720B7BBB4F5B8B5>

(Microsoft PowerPoint - \301\24611\260\255 - \276\326\264\317\270\336\300\314\274\307)

슬라이드 1

유니티 변수-함수.key

K&R2 Reference Manual 번역본

PowerPoint Presentation

실감미디어 제작 전문인 과정 1기 결과보고서

PowerPoint 프레젠테이션

Lab 3. 실습문제 (Single linked list)_해답.hwp

Microsoft PowerPoint - Java7.pptx

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

제 1 장 기본 개념

슬라이드 1


Microsoft PowerPoint - 07-Data Manipulation.pptx

JUNIT 실습및발표

Spring Boot

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

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

Microsoft Word - cg07-midterm.doc

PowerPoint 프레젠테이션

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

PowerPoint Presentation

crazyflie2 code reading subak.io

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

Contents. 1. PMD ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 2. Metrics ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 3. FindBugs ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 4. ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ

Chapter 4. LISTS

PowerPoint 프레젠테이션

Microsoft PowerPoint - es-arduino-lecture-03

untitled

03장

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

PowerPoint 프레젠테이션

PowerPoint Presentation

rmi_박준용_final.PDF

chap 5: Trees

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

UI TASK & KEY EVENT

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

PowerPoint 프레젠테이션

JMF3_심빈구.PDF

PowerPoint Presentation

설계란 무엇인가?

Inhalt01_Teil1

Microsoft PowerPoint - 06-Body Data Class.pptx

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

PowerPoint 프레젠테이션

비긴쿡-자바 00앞부속

초보자를 위한 C# 21일 완성

Microsoft PowerPoint - C++ 5 .pptx

chap10.PDF

기본자료형만으로이루어진인자를받아서함수를결과값으로반환하는고차함수 기본자료형과함수를인자와결과값에모두이용하는고차함수 다음절에서는여러가지예를통해서고차함수가어떤경우에유용한지를설명한다. 2 고차함수의 예??장에서대상체만바뀌고중간과정은동일한계산이반복될때함수를이용하면전체연산식을간 단

1. 클래스와배열 int 형배열선언및초기화 int ary[5] = 1, 2, 3, 4, 5 ; for (int i = 0; i < 5; i++) cout << "ary[" << i << "] = " << ary[i] << endl; 5 장클래스의활용 1

Microsoft PowerPoint - 04-UDP Programming.ppt

C프로-3장c03逞풚

BMP 파일 처리

JMF2_심빈구.PDF

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

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

PowerPoint 프레젠테이션

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

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft PowerPoint - ch12 - Graph, Graph Algorithms

부산, 글로벌과 로컬의 사이에서

쉽게 풀어쓴 C 프로그래밍

신림프로그래머_클린코드.key

PowerPoint 프레젠테이션

PowerPoint Presentation

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Microsoft PowerPoint - 13prac.pptx

03_queue

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

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

Microsoft PowerPoint 상 교류 회로

Structure and Interpretation of Computer Programs: Assignment 3 Seung-Hoon Na October 4, George (아래 3개의 문제에 대한 구현이 모두 포함된 george.rkt파일을 제출하시오.

OCW_C언어 기초

Lab 5. 실습문제 (Double linked list)-1_해답.hwp

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - lecture11-ch4.ppt

?

Microsoft PowerPoint - lecture11-ch4

11강-힙정렬.ppt

Transcription:

한국산업기술대학교 제 5 강스케일링및회전 이대현교수

학습안내 학습목표 3D 오브젝트의확대, 축소및회전방법을이해한다. 학습내용 3D 오브젝트의확대및축소 (Scaling) 3D 오브젝트의회전 (Rotation) 변홖공갂 (Transform Space)

SceneNode 의크기변홖 (Scale) void setscale ( Real x, Real y, Real z) void setscale ( const Vector3 & scale ) 씬노드에속해있는엔터티들의크기확장및축소. 씬노드의절대적스케일값을설정.

SceneNode 의크기변홖 (Scale) void scale ( Real x, Real y, Real z) void scale ( const Vector3 & scale ) 씬노드에속해있는엔터티들의크기확장및축소. 이미크기변홖된노드에적용하면앞서했었던크기변홖의위에적용됨. scale(vector3(2,2,2)) 를두번적용하면, setscale(vector3(4,4,4)) 와같음.

SceneNode 의크기변홖 (Scale) void setinheritscale ( bool inherit ) 장면노드의하위자식노드에게도크기변화가적용되는지결정. 디폴트값은 true

실습 Scale 엔터티크기변환

main.cpp (1) class LectureApp { 중략 실습 public: void go(void) { } 중략 Entity* entity1 = mscenemgr->createentity("professor", "DustinBody.mesh"); SceneNode* node1 = mscenemgr->getrootscenenode()-> createchildscenenode("professor", Vector3(0.0f, 0.0f, 0.0f)); node1->attachobject(entity1); Entity* entity2 = mscenemgr->createentity("ninja", "ninja.mesh"); SceneNode* node2 = node1->createchildscenenode("ninja", Vector3(100.0f, 0.0f, 0.0f)); node2->attachobject(entity2); 후략

main.cpp (2) bool framestarted(const FrameEvent &evt) { if (mkeyboard->iskeydown(ois::kc_1)) mprofessornode->setscale(1.0f, 1.0f, 1.0f); else if (mkeyboard->iskeydown(ois::kc_2)) mprofessornode->setscale(2.0f, 1.0f, 1.0f); else if (mkeyboard->iskeydown(ois::kc_3)) mprofessornode->setscale(3.0f, 1.0f, 1.0f); else if (mkeyboard->iskeydown(ois::kc_e)) mprofessornode->scale(1.1f, 1.0f, 1.0f); else if (mkeyboard->iskeydown(ois::kc_i)) mninjanode->setinheritscale(!mninjanode->getinheritscale()); 실습 } return true;

실행화면 키이입력 1,2,3,E,I 에따라다양한스케일실험.

if (mkeyboard->iskeydown(ois::kc_1)) mprofessornode->setscale(1.0f, 1.0f, 1.0f); else if (mkeyboard->iskeydown(ois::kc_2)) mprofessornode->setscale(2.0f, 1.0f, 1.0f); else if (mkeyboard->iskeydown(ois::kc_3)) mprofessornode->setscale(3.0f, 1.0f, 1.0f); else if (mkeyboard->iskeydown(ois::kc_e)) mprofessornode->scale(1.1f, 1.0f, 1.0f); else if (mkeyboard->iskeydown(ois::kc_i)) mninjanode->setinheritscale(!mninjanode->getinheritscale());

SceneNode 의회전 (Rotation) void pitch (const Radian &angle, TransformSpace relativeto=ts_local) x 축을회전축으로하여주어진각도만큼회전. Y Z X

SceneNode 의회전 (Rotation) void yaw (const Radian &angle, TransformSpace relativeto=ts_local) y 축을회전축으로하여주어진각도만큼회전. Y Z X

SceneNode 의회전 (Rotation) void roll (const Radian &angle, TransformSpace relativeto=ts_local) z 축을회전축으로하여주어진각도만큼회전. Y Z X

변홖공간

실습 Rotate 캐릭터회전

main.cpp bool framestarted(const FrameEvent &evt) { static SceneNode *curnode = mprofessornode; 실습 if (mkeyboard->iskeydown(ois::kc_p)) curnode->pitch(degree(1.0f)); else if (mkeyboard->iskeydown(ois::kc_y)) curnode->yaw(degree(1.0f)); else if (mkeyboard->iskeydown(ois::kc_r)) curnode->roll(degree(1.0f)); else if (mkeyboard->iskeydown(ois::kc_1)) curnode = mprofessornode; else if (mkeyboard->iskeydown(ois::kc_2)) curnode = mninjanode; } return true;

실행결과 키이입력 p,y,r,1,2 에따라다양한회전실험

yaw 씬노드자신의 y 축을회전축으로하여회전

pitch

roll

static SceneNode *curnode = mprofessornode; if (mkeyboard->iskeydown(ois::kc_p)) curnode->pitch(degree(1.0f)); else if (mkeyboard->iskeydown(ois::kc_y)) curnode->yaw(degree(1.0f)); else if (mkeyboard->iskeydown(ois::kc_r)) curnode->roll(degree(1.0f)); else if (mkeyboard->iskeydown(ois::kc_1)) curnode = mprofessornode; else if (mkeyboard->iskeydown(ois::kc_2)) curnode = mninjanode;

실습 Rotate Ramdom Axis 회전변환 ( 임의축 )

main.cpp 실습 bool framestarted(const FrameEvent &evt) { Vector3 axis(1.0f, 1.0f, 0.0f); axis.normalise(); mprofessornode->rotate(axis, Degree(1.0f)); } return true;

실행결과 : x = y 축을회전축으로회전

Vector3 axis(1.0f, 1.0f, 0.0f); axis.normalise(); mprofessornode->rotate(axis, Degree(1.0f));

학습정리 3D 오브젝트의확대및축소 setscale() 엔터티의절대크기 ( 원래모델의크기를기준 ) 설정 scale() 현재엔터티의크기를기준으로한상대적크기설정 3D 오브젝트의회전 기본축을중심으로한회전 yaw(), roll(), pitch() 임의축을중심으로한회전 - rotate