Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chap 7. 이벤트 동의대학교 멀티미디어공학과 김형석 /A25002 컴퓨터 그래픽스

Similar presentations


Presentation on theme: "Chap 7. 이벤트 동의대학교 멀티미디어공학과 김형석 /A25002 컴퓨터 그래픽스"— Presentation transcript:

1 Chap 7. 이벤트 동의대학교 멀티미디어공학과 김형석 163535/A25002 컴퓨터 그래픽스
Copyright ⓒ 2001 N Baek

2 사건의 이해 필드 타입 필드나 이벤트 필드가 가질 수 있는 변수의 성격
163535/A25002 컴퓨터 그래픽스 사건의 이해 필드 타입 필드나 이벤트 필드가 가질 수 있는 변수의 성격 Single Field(SF) , Multiple Field(MF) SFBool : TRUE, FALSE SFColor, MFColor : [r g b] SFFloat, MFFloat : 부동 소수값 SFImage : [ w h d] W : 가로 칸의 수, h : 세로 칸의 수, d : 성분의 수 d = 1 : 강도, d = 2 : 투명도, d = 3 : 색상 SFInt32, MFInt32 : 정수 SFNode, MFNode : VRML 노드 설명 SFRotation, MFRotation Copyright ⓒ 2001 N Baek

3 사건의 이해 필드 타입 SFRotation, MFRotation : 축과 회전값(라디안)
SFString, MFString : 문자열 SFTime, MFTime : 현재의 시간 값 SFVec2f, MFVec2f : 2차원 벡터 SFVec3f, MFVec3f : 3차원 벡터 사건을 만들 때, 같은 필드 타입을 연결해서 사건을 발생 Copyright ⓒ 2001 N Baek

4 사건의 이해 Sensor Target eventOut eventIn ROUTE 사건의 흐름 방문자의 행동에 의해서 사건 발생
마우스로 클릭, 위치 이동, 시간의 지남에 의한 것 Sensor에 의해서 사건을 인식 Route를 통해서 사건 전달 Target(일반 노드)의 필드 값의 변화 Sensor Target eventOut eventIn ROUTE 노드 필드 Copyright ⓒ 2001 N Baek

5 사건의 이해 Sensor 종류 TouchSensor 마우스의 이동이나 클릭 PlaneSensor
물체를 화면 안에서 드래깅 하고자 할 때 CylinderSensor 물체를 마우스 끌기로 주어진 축에 대한 회전 SphereSensor 물체를 모든 방향으로 회전하고자 할 때 ProximitySensor 특정 물체에 다가 서면 이벤트 발생 TimeSensor 특정한 시간이 되면 사건 발생 Copyright ⓒ 2001 N Baek

6 사건의 이해 기본 예제 : 예제 7.1 #VRML V2.0 utf8 Background { skyColor 0 0 0 }
DEF COL2 Background { skyColor } Transform { children [ Shape { geometry Sphere { radius 1 }} DEF TOUCH TouchSensor{} ] } ROUTE TOUCH.isActive TO COL2.set_bind Sensor와 Target 에서는 DEF을 이용하여 지정 TOUCH.isActive : TouchSensor의 하나의 필드 COL2.set_bind : Background의 하나의 필드 Copyright ⓒ 2001 N Baek

7 사건의 이해 Route 사용법 ROUTE A.B TO C.D A : Sensor를 칭하는 DEF 이름
B : eventOut 필드 이름 C : 사건이 발생하는 노드를 칭하는 DEF 이름 D : 그 노드의 eventIn 필드 이름 B와 D의 필드 타입이 동일하여야 한다. Sensor 가 부착된 물체 위에 커서를 위치시키면 커서 모양이 바뀜 Copyright ⓒ 2001 N Baek

8 TouchSensor TouchSensor { exposedField SFBool enabled TRUE
eventOut SFVec3f hitNormal_changed eventOut SFVec3f hitPoint_changed eventOut SFVec2f hitTexCoord_changed eventOut SFBool isActive eventOut SFBool isOver eventOut SFTime touchTime } Copyright ⓒ 2001 N Baek

9 TouchSensor enabled : 센서의 사용 가능 여부 설정
hitNormal_changed : 포인터 위치에서의 법선 벡터 hitPoint_changed : 포인터의 위치 좌표 hitTexCoord_changed : 포인터 위치에서의 질감 그림 좌표 isActive : 마우스의 누르고 있는 동안 이벤트 발생 isOver : 마우스가 머무르는 동안 이벤트 발생 touchTime : 마우스가 클릭될 때의 시간 Copyright ⓒ 2001 N Baek

10 TouchSensor Background{ eventIn SFBool set_bind
exposedField MFFloat groundAngle [] # [0, /2] exposedField MFColor groundColor [] # [0,1] exposedField MFString backUrl [] exposedField MFString bottomUrl [] exposedField MFString frontUrl [] exposedField MFString leftUrl [] exposedField MFString rightUrl [] exposedField MFString topUrl [] exposedField MFFloat skyAngle [] # [0, ] exposedField MFColor skyColor # [0,1] eventOut SFBool isBound } Copyright ⓒ 2001 N Baek

11 TouchSensor isActive, isOver TouchSensor 의 Bool 타입의 eventOut 필드
Backgound 의 Bool 타입의 eventIn 필드 Set_bind ROUTE TOUCH.isActive TO COL2.set_bind Touch sensor 가 부착된 물체 위에서 마우스 클릭을 하면 이벤트가 발생하여 COL2 라는 이름을 가진 노드가 가상환경과 결합 마우스 오버 : 예제 7.2 마우스를 따라 다니는 물체 : 예제 7.3 ROUTE의 다른 적용 : 예제 7.4 , 예제 7.5 Question) 당신의 이름을 마우스를 따라 움직이도록 합시다. Copyright ⓒ 2001 N Baek

12 TouchSensor Question) 당신의 이름을 마우스를 따라 움직이도록 합시다. 예제 7.6
163535/A25002 컴퓨터 그래픽스 TouchSensor Question) 당신의 이름을 마우스를 따라 움직이도록 합시다. 예제 7.6 동영상 파일 시작 시간 조절 예제 7.7 사운드 파일 시작 시간 조절 ???? Copyright ⓒ 2001 N Baek

13 PlaneSensor PlaneSensor { exposedField SFBool autoOffset TRUE
exposedField SFBool enabled TRUE exposedField SFVec2f maxPosition # (- , ) exposedField SFVec2f minPosition 0 0 # (- , ) exposedField SFVec3f offset # (- , ) eventOut SFBool isActive eventOut SFVec3f trackPoint_changed eventOut SFVec3f translation_changed } Copyright ⓒ 2001 N Baek

14 PlaneSensor PlaneSensor 설치 : 예제 7.8 범위 지정 : 예제 7.9 주의) xy 평면에서만 적용
칠교 놀이 : 예제 7.91 Copyright ⓒ 2001 N Baek

15 CylinderSensor CylinderSensor { exposedField SFBool autoOffset TRUE
exposedField SFFloat diskAngle # (0, /2) exposedField SFBool enabled TRUE exposedField SFFloat maxAngle -1 # [-2 ,2 ] exposedField SFFloat minAngle 0 # [-2 ,2 ] exposedField SFFloat offset 0 # (- , ) eventOut SFBool isActive eventOut SFRotation rotation_changed eventOut SFVec3f trackPoint_changed } Copyright ⓒ 2001 N Baek

16 CylinderSensor 센서가 설치된 물체를 마우스로 드래그하여 회전 Y 축 회전
163535/A25002 컴퓨터 그래픽스 CylinderSensor 센서가 설치된 물체를 마우스로 드래그하여 회전 Y 축 회전 CylinderSensor 설치 : 예제 7.10 범위 지정 : 예제 7.11 diskAngle 지정 : 예제 7.12 ( ? ) Z 축 회전 : 예제 7.13 센서가 설치된 물체와 Target이 되는 물체가 다른 경우 예제 7.14 조명 위치 변화에 따라 물체에 빛이 영향 받는 효과 예제 7.15 Copyright ⓒ 2001 N Baek

17 SphereSensor SphereSensor { exposedField SFBool autoOffset TRUE
exposedField SFBool enabled TRUE exposedField SFRotation offset # [-1,1],(- , ) eventOut SFBool isActive eventOut SFRotation rotation_changed eventOut SFVec3f trackPoint_changed } Copyright ⓒ 2001 N Baek

18 SphereSensor 물체를 모든 방향으로 회전시킬 수 있는 센서 SphereSensor 설치 : 예제 7.16
163535/A25002 컴퓨터 그래픽스 SphereSensor 물체를 모든 방향으로 회전시킬 수 있는 센서 SphereSensor 설치 : 예제 7.16 SpotLight 추가 : 예제 7.17 센서가 설치된 물체와 Target이 되는 물체가 다른 경우 예제 7.18 Copyright ⓒ 2001 N Baek

19 ProximitySensor ProximitySensor {
163535/A25002 컴퓨터 그래픽스 ProximitySensor ProximitySensor { exposedField SFVec3f center # (- , ) exposedField SFVec3f size # [0, ) exposedField SFBool enabled TRUE eventOut SFBool isActive eventOut SFVec3f position_changed eventOut SFRotation orientation_changed eventOut SFTime enterTime eventOut SFTime exitTime } Copyright ⓒ 2001 N Baek

20 ProximitySensor 공간을 이동하다 특정 물체에 다가가면 사건 발생
163535/A25002 컴퓨터 그래픽스 ProximitySensor 공간을 이동하다 특정 물체에 다가가면 사건 발생 ProximitySensor 설치 : 예제 7.19 과제 1. 칠교 놀이에서 회전운동을 삽입할 것. 과제 2. 물체에 근접하면 동영상을 상영하게 할 것. Copyright ⓒ 2001 N Baek


Download ppt "Chap 7. 이벤트 동의대학교 멀티미디어공학과 김형석 /A25002 컴퓨터 그래픽스"

Similar presentations


Ads by Google