• 검색 결과가 없습니다.

15장. 그래픽스 응용

N/A
N/A
Protected

Academic year: 2022

Share "15장. 그래픽스 응용"

Copied!
78
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

1

15장. 그래픽스 응용

학습목표

• 쿼드트리, 옥트리 등 공간 자료구조를 이해한다.

• 쿼드트리, KD 트리, BSP 트리의 차이점을 이해한다.

• 로프팅, CSG, 매스-스프링 모델, 마칭 큐브 등의 모델링 방법을 이해한다.

• 프랙탈 시스템, 파티클 시스템 등의 모델링 방법과 모핑의 기본원리를 이해한다.

• 애니메이션의 기본원리를 이해한다.

• 사원수, 그래픽 사용자 인터페이스, 가상현실 등의 개념을 이해한다.

• GLSL의 필요성, GLSL과 지엘 파이프라인과의 관계를 이해한다.

(2)

쿼드 트리(Quad Trees)

공간 자료구조(Spatial Data Structure)

• 저장 공간을 적게 차지하면서도 빠른 연산을 가능하게 하는 자료구조 쿼드 트리

• 연속적으로 4 개의 사각형으로 분할

• 사각형 내부가 모두 동일해져 단일 색이 될 때까지 반복

• 링크가 4 개라는 점에서 쿼드트리(Quad Tree)

• 공간적 응집성(Spatial Coherence)을 이용

(3)

3

옥트리(Octrees)

공간분할(Spatial Subdivision, Spatial Partition)

• 옥트리(8진트리, Octree, Octal Trees)는 3차원 공간을 분할

▪ cf. 쿼드트리: 2차원 공간을 분할

• x, y, z 방향 8개의 육면체로 분할

• 분할: 물체의 종류, 내부 색 등 여러 가지 속성을 기준으로 함.

가변 공간분할(Adaptive Spatial Subdivision)

• 일정 크기로 분할하지 않고, 필요한 부분만 지속적으로 분할

• 필요 부분만 작은 단위로 표현. 기타 부분은 큰 단위로 표현.

(4)

복셀(Voxel: Volume Element)

복셀

• 물체 자체를 표현. cf.옥트리는 물체를 포함하는 전체 장면

• 3차원 물체를 작은 크기의 육면체(복셀)의 집합으로 표현

• 복셀의 크기는 고정. cf. 옥트리의 육면체 분할

• 물체 표면보다는 내부구조를 모델링: 복셀 단위로 속성을 저장 경계부피(Bounding Volume)

• 주어진 물체를 둘러싸는 최소 부피의 육면체

• 경계부피에 대해 복셀 크기가 될 때까지 연속적으로 분할

(5)

5

공간분할(Spatial Subdivision)

기하 근접성 질의(Geometric Proximity Queries)

• 물체간의 교차, 이격 등을 판단

균등 공간분할(Uniform Spatial Subdivision)

• 일정 크기의 셀(Cell)로 분할. 셀 별로 물체정보를 저장

• A를 중심으로 점차로 주변의 모든 셀을 검색

차등 공간분할(Non-uniform Spatial Subdivision)

• 쿼드트리 또는 옥트리

• 트리 검색

(6)

트리의 균형성

쿼드 트리, 옥트리

• 불균형으로 인한 검색시간 증가

(7)

7

KD 트리와 BSP 트리

물체의 분포를 기준으로 분할

• KD: 수직, 수평 분할

• BSP(Binary Space Partition): 임의 방향 분할 BSP 트리

• 더 좋은 균형이므로 트리 높이 저하. 빠른 검색

• 사선을 기준으로 하는 상하판단에 시간을 소요

(8)

물체 모델링

로프팅

• 물체 단면과 경로를 지정함으로써 물체 표면을 모델링. 


CSG

• 기본 물체의 조합에 의해 새로운 물체를 모델링
 물리적 모델

• 물체 사이에 교환되는 힘의 상호작용을 물리적으로 표현한 모델

• 예: 매스-스프링 모델(Mass-Spring Model) 
 부피 가시화 모델

• 물체 표면은 물론 물체 내부를 포함하여 하나의 부피로서 표현 프러시져 모델

• 프로그램에 의해서 물체 정점 좌표를 계산하는 방법

(9)

9

로프팅(Lofting)

2차원 형상(Shape)과 3차원 경로(Path)를 제시

형상을 경로를 따라 끌고다님 = 스위핑(Sweeping: 쓸고 지나가기)

p(u) 곡선의 제어점을 q(v)를 따라서 일정 간격으로 이동 형상 오리엔테이션은 경로에 수직 또는 변화

(10)

로프팅(Lofting)

회전표면(Surface of Revolution) 또는 레이드(Lathe)

• 형상 = 프로파일(옆모습, Profile), 경로 = 회전

(11)

11

로프팅(Lofting)

회전표면

• 경로를 따라가며 크기변화

(12)

CSG(Constructive Solid Geometry)

집합 연산에 의해 새로운 물체를 만들어 냄

• 합집합(Union), 교집합(Intersection), 차집합(Subtraction)

• 기본물체(Primitive Object)의 조합 = 불리언 복합물(Boolean Compound).캐드(CAD: Computer Aided Design)에 주로 사용

(13)

13

CSG 트리

CSG 트리(CSG Tree)

• 내부 노드(Internal Node)에는 연산의 종류

• 외부 노드(External Node)에 기본 물체를 표시한 이진트리 네스트 구조(Nested Structure)

• 트리의 루트(Root)로 갈수록 더 상위 레벨의 복합물

(14)

매스-스프링 모델

매스-스프링 모델(Mass-Spring Model)

• 물리적 모델링(Physically-based Modeling)의 일종

• 힘의 상호작용을 감안한 모델. 천의 각 부분사이에 당기는 힘이 존재한다고 간주 하고 스프링의 탄성계수 값을 조정

(15)

15

매스-스프링 모델

매스 사이에 정지 상태의 스프링 길이를 보존

• 정점 사이의 간선(Edge)의 길이를 보존

• 인근 매스로 힘이 전파됨.

(16)

부피 가시화 모델 부피 가시화(Volume Visualization)

• 또는 부피 재구성(Volume Reconstruction)

• 주어진 3차원 데이터로부터 동일한 스칼라 양을 지닌 등고면(Iso-Surface, Equi-potential Surface)을 다각형의 집합으로 표현

예: CT 영상의 재구성

• 2차원 편면 영상(Slice Images)을 조합하여 3차원 부피로 재구성

• 1-5mm 간격으로 촬영된 50 개 정도의 2차원 편면 영상

(17)

17

마칭 스퀘어(Marching Square)

2차원 등고선 추정

• 어떤 점에서의 밀도가 구하고자 하는 등고선 밀도보다 작다면 이는 추정하고자 하는 등고선보다 바깥쪽.

• 영상일 경우 회색도(灰色度, Gray Level)가 밀도에 해당

• 동일 회색도를 지닌 부분의 등고선을 추출

(18)

마칭 스퀘어(Marching Square)

내부점에서 외부점으로 나가는 선분의 중앙을 등고선이 지나간다고 가정 둘째그림: 좌하단 모서리만 내부점이고 나머지 모두 외부점일 경우

4 개의 모서리 각각이 내부점 또는 외부점일 수 있으므로 24 = 16 가지 경우가 존재

(19)

19

마칭 큐브(Marching Cube)

두 개의 편면 영상 사이 간격을 채우는 육면체

큐브의 8 모서리에서 밀도가 등고면의 밀도보다 큰지 작은지를 판단

• 28 = 256 가지가 존재. 대칭적인 경우를 감안하면 15개의 경우

(20)

프랙탈 이론(Fractal Theory) 프랙탈 차원(Fractal Dimension)

• 1967년 만델브로트(Mandelbrot) “영국의 해안선 길이는 얼마인가?”

• 스페인과 포르투갈의 국경선의 길이: 스페인 사전- 616 마일, 포르투갈 사전- 758 마일

해안선 길이측정

• 정밀히 측정할수록 더욱 늘어남. cf. 인위적 경계선

(21)

21

프랙탈 이론(Fractal Theory)

프랙탈 차원

• 소수차원(Fractal Dimension): 1.3차원, 2.2차원

• cf. 유클리드 기하학의 정수차원(Integer Dimensions)

• 수많은 선의 굴곡이 모여서 마치 면과도 유사. 1차원보다 크고 2차원보다 작은 소수 차원

• 


측정 복잡도(Measurement Complexity)

• 측정 결과 길이가 늘어나는 비율

• 굴곡이 심할수록 크기가 커짐

• 유클리드 차원 + 측정 복잡도 = 프랙탈 차원

(22)

반복 시스템(Iterative System) 변환 결과에 또다른 변환을 가하기를 반복

• 변환은 결정적(Deterministic) 또는 비결정적(Non-Deterministic)

• 예: 코흐곡선(Koch Curve)

▪ 변환규칙, 변환과정, 최종결과

• 하나의 선분이 4 부분으로 나뉘었으므로 Number of Parts = 4. 나뉜 선분 의 길이는 원래 선분의 길이의 1/3이므로 Scale Factor = 3. 코흐 곡선의 차 원 = 1(직선) + D(0.26) = 1.26 차원

(23)

23

카오스 게임(Chaos Game)

중점의 궤적(Locus)이 어떤 모습일지를 예측하라.

카오스 이론 = “무질서(Chaotic, Random)하고 불규칙적(Irregular)으로 보 이는 현상이 지속적으로 가해질 때 최종 결과는 결코 무질서하지 않고, 오히려 질서 정연한(Orderly, Regular) 규칙을 지닌 결정적(Deterministic) 모습이 된다”

(24)

유인체(Attractor)

다중 축소복사(MRCM: Multiple Reduction Copy Machine) 이론

• 원래의 영상을 축소복사. 예를 들어 삼각형 형태로 조합

유인체(Attractor) = 최종모습

• 초기영상을 점차로 끌어 당겨 최종적으로 자기 모습을 닮도록 함.

• 예: 시어핀스키 가스켓(Sierpinski Gasket)

(25)

25

다중 축소복사

어파인 변환

(26)

자기 유사성(Self-Similarity)

자기유사성: 자기 자신의 모습을 축소하여 자신의 부분 부분에 반복하여 적용함으로 써 더욱 세부적인 모습을 생성

다중 축소복사 = 반복함수 시스템(IFS: Iterative Function System)

식물문법(Plant Grammar)

• 1. S -> a

• 2. S -> [ S[b]S]

• 3. S -> [ S[c] S[c] S]

• 예:

• S ➝ [ S[c] S[c] S ] ➝ [ [S[b]S] [c] [S[b]S] [c] [S[b]S] ] ➝

(27)

27

프랙탈 영상압축

영상 내부의 자기 유사성을 활용

부분간의 크기조절 인수나 회전각 등 선형 변환 계수만을 저장 최대 200 - 2000배의 압축을

• cf. JPEG 압축: 최대 20 - 50배

• 예: 마이크로소프트 사의 엔카르타 사전(Encarta Dictionary)의 정지영상과 동영상

(28)

프랙탈 산(Fractal Mountain)

터레인 모델링(Terrain Modeling)

Rand(0, 1) 함수: 0에서 1 사이의 난수. 산의 높이가 비 결정적(Non- deterministic)

(29)

29

프랙탈 패턴 복소수에 대한 변환함수

프랙탈 패턴

• 유인체가 수렴하는 초기점 위치와 발산하는 초기점 위치 사이의 경계

• 예: 변환함수 = 제곱 함수, 변환함수 = 임의함수

(30)

만델브로트 프랙탈(Mandelbrot Fractal)

수렴 또는 발산의 속도를 기준으로 컬러링 순차적 부분확대 모습

(31)

31

줄리아 프랙탈(Julia Fractal)

(32)

파티클 시스템(Particle System)

불꽃, 연기, 구름, 분수, 반사된 물결 등 비정형(Amorphous) 물체를 여러 개의 작은 입자를 사용하여 근사적으로 표현

(33)

33

파티클 시스템(Particle System)

점묘법을 사용: 물체 윤곽이 뿌옇게 보이기에 Fuzzy Object 입자 속성

• 모습(Shape), 위치(Position), 속도(Velocity), 색(Color), 온도 (Temperature), 수명(Lifetime), 질량(Mass)

입자의 생명주기(Life Cycle)

• 생성(Generation), 활동(Movement), 소멸(Death) for each frame { 프레임 별로

generate new particles; 새로운 입자 생성 remove old particles; 오랜 입자 소멸

for each particle { 개별 입자에 대해

resolve forces by vector addition; 여러 힘의 합력을 구함 calculate a, v, x; 가속도, 속도, 위치를 구함 apply rendering algorithm; 렌더링

} }

(34)

파티클 시스템(Particle System)

집단 시스템(Flocking System)

• 하나의 입자 속성이 다른 입자의 행위(Behavior)에 영향

(a) 나머지 모든 새가 날아가는 속도의 평균 속도를 취함

• 모든 새들이 같은 방향으로 날아야 함.

(b) 전체 새 무리의 중심을 향함

• p가 무리를 벗어나지 않아야 함.

(35)

35

파티클 시스템(Particle System)

단순화된 렌더링

• 입자 수가 많아 정밀한 렌더링에 한계

• 은면제거를 가하지 않음

• 앞물체가 뒷 물체를 가리면 블렌딩을 사용

• 에일리어싱을 방지하기 위해 여러 입자를 겹쳐서 칠함.

(36)

스프레이 렌더링(Spray Rendering)

플래쉬 렌더링(Flash Rendering), 프로우브 렌더링(Probe Rendering)

• 렌더링을 적용하는 방법

• 보고자 하는 부분만을 골라서 가시화하는 기법

• 스프레이를 뿌린 부분만 렌더링을 가함.

• 파티클 시스템과 결합되어 사용

• 자연과학 분야의 데이터 가시화(Scientific Visualization) 


(37)

37

모핑(Morphing)

상호 혼합(Cross Dissolving)

• 두 영상의 화소 컬러를 보간

• 두 화소 색이 서로 섞여 중간 프레임을 만들냄.

• 형상의 구조적인 특징이 변해 가는 모습을 파악하기 어려움.

• 두 개의 얼굴의 중간 프레임은 전혀 얼굴같지 않을 수 있음.

(38)

모핑(Morphing)

메쉬 워핑(Mesh Warping)

• 형상의 특징적인 위치를 제어점으로 정의. 형상이 변화

• 4개의 제어점으로 구성된 사각형 메쉬가 사변형 메쉬로 변환

• 화소가 변하는 것이 아니라 제어점이 이동

제어점의 이동

• 선형 보간법: A = (1, 1)에서 A' = (5, 5)로 변환될 때 중간에 하나의 프레

(39)

39

모핑(Morphing)

제어점 A(1, 1)가 A'(5, 5)로 갈 경우 A에 인접한 화소 B(2, 2)는 어디로?

워핑 함수(Warping Function)

• A와 B 사이의 거리에 가중치를 부여해서 B'을 A' 부근에 위치시킴.

• 가중치 적용방식을 결정하는 함수.

▪ 예: 거리에 비례, 거리 제곱에

• 주어진 화소와 제어점간의 결합력을 표시

• 워핑 함수의 종류에 따라 모핑 결과가 달라짐.

(40)

모핑(Morphing)

16개의 정점 쌍(Vertex Pair)을 명시

(41)

41

애니메이션(Animation)

애니메이션

• 애니메이션(Animation)= Bringing to Life

• 프레임(Frame, Still Frame): 정지된 상태의 그림

• 약 1/16초 동안의 잔상

• 영화: 초당 약 24 프레임(동일 프레임을 2번 반복), 비디오 필름:초당 30 프레 임. TV: 초당 60개의 반 프레임(Half Frame).

(42)

수작업 애니메이션(Hand-Drawn Animation) 개별 프레임을 카메라 필름으로 캡쳐

• 프레임 비율(Frame Rate): 느린 속도를 요할 때는 단위 시간에 더욱 많은 프 레임을 보여주어야 함

• 레지스트레이션(Registration): 프레임 간에 상대적인 위치를 고정하는 작업.

페그(Peg)를 사용. 조명 테이블(Light Table) 에 의해 이전 물체의 상대적인 위치를 확인

셀 애니메이션(Cell Animation)

• 셀로판지(Celluloid Plastic Sheets).별도의 레이어를 최종적으로 중첩시 킴. 변하지 않는 부분을 그릴 필요가 없음.

• 애니메이터(Animator): 스케치, 잉커(Inker): 셀에 윤곽선 추적, 컬러리스 트(Colorist): 색칠

(43)

43

로토 스코우핑(Rotoscoping)

“애니메이션을 위해 실제 움직임을 추적하는 작업”

• 비디오 카메라를 사용한 동작 캡쳐(Motion Capture)

• 캐릭터의 윤곽을 추적(Tracing)

“실제 움직임과 애니메이션을 소프트웨어에 의해 결합하는 작업”

(44)

애니메이션

프레임 기반 애니메이션(Frame-Based Animation)

• 미리 생성된 정지영상. 배경과 객체가 서로 섞여서 하나의 정지영상

• 그래픽 객체(Graphical Object)라는 개념이 없음.

캐스트 기반 애니메이션(Cast-Based Animation)

• 레이어에 의해 배경과 그래픽 객체를 별도로 취급.

• 스프라이트(Sprite): 캐스트(배우, Cast)에 해당하는 객체. 위치, 속도, 가시 성 등의 속성과 상호 작용에 관한 메쏘드(Method)를 지님.

• 페이스(Face): 상황 별로 서로 다른 모습의 스프라이트

(45)

45

키 프레임 애니메이션

키 프레임(原畵, Key Frame)

• 특징적인 프레임. 동작이나 표정 등에서 급격한 변화가 일어나는 곳 인 비튄 프레임(動畫, Inbetween Frame)

• 키 프레임을 채우는 중간 프레임. 컴퓨터에 의해 생성 가능 동작 경로(Motion Path)

• 물체나 인물의 동선.동선을 따라가되 움직임의 중간 중간에 가장 중요한 포인트 가 되는 위치에 키 프레임을 그림.

(46)

트위닝

트위닝(Tweening)

• 원화로부터 동화를 채우는 작업. 일종의 보간작업

• 데이터 압축효율을 높이기 위해서 원화는 그림 전체를, 동화는 직전 원화와의 차 이만을 저장하기도 함. 벡터 그래픽 형식으로 표현하는 것이 유리(정점에 대한 보간)

• 예: 플래쉬 애니메이션

(47)

47

트위닝

색, 크기, 회전각 가속과 감속 제어

(48)

스토리 보딩(Story Boarding) 애니메이션의 요소

• 전달하고자 하는 스토리

▪ 조직적이고 또 그물같이 얽혀진 시나리오

• 중요 장면을 스케치한 스토리 보드

▪ 장면(Scene), 행동(Action), 장면의 전환(Scene Transition) 등의 관점에서 볼 때 중요한 부분으로 나눔.

▪ 빠른 속도로 진행. 몇 커트의 스케치로 흐름을 표현

• 액션, 음향효과 등을 위한 스크립트

▪ 예: 1) 도입 장면. 주인공이 절벽 위에 멈춰 선다. (0초에서 4초간, 프레임 1-60) 2) 비가 내린다. (4초에서 9초간, 프레임 61-120)

(49)

49

물체의 회전 애니메이션에서 물체의 오리엔테이션

• 위치뿐만 아니라 오리엔테이션이 변화

• 이동 경로는 스플라인에 의해 제어 가능

• 오리엔테이션은 회전변환. 적절한 보간이 이루어져야 함

4가지 표현방법

• 회전행렬 (Rotation Matrix)

• 오일러 각 표현 (Euler Angle)

• 축-각 표현 (Axis-Angle)

• 사원수 (Quarternion)

(50)

회전행렬 표현 예: (3차원 회전. 동차좌표 생략)

정규직교성(Orthonormality)

• 정규성(定規, Normality): 컬럼 벡터 = 단위 벡터

• 직교성(直交, Orthogonality): 컬럼 벡터 간의 내적은 0 자유도(DOF: Degree of Freedom) 3

• 3 ☓ 3 행렬에 모두 9 개의 계수.

• 정규직교성으로 인한 6 개의 제약조건

• 3의 자유도를 9개의 계수로 나타냄. 비효율

(51)

51

회전행렬 표현

우변 행렬은 더 이상 회전행렬이 아님.

• 정규직교성을 만족하지 못함.

• 크기조절이나 전단변환이 가해져 강체모습을 상실 표류(Drift)

• 각도를 조금씩 증가하면서 연속된 회전

• 새로운 회전행렬을 이전행렬에 곱해서 새로운 복합행렬 생성

• 부동소수 연산으로 인한 오류로 인해 정규직교성 상실

(52)

오일러 각 표현

3개의 각도만으로 회전을 표현

• z 축 기준의 회전각을 롤(Roll), x 축 기준의 회전각을 피치(Pitch), y 축 기준 의 회전각을 요(Yaw)

• 자유도 3에 3개의 계수를 저장하므로 저장 공간 면에서 유리

• 회전각 자체를 그대로 저장하므로 표류의 문제 없음.

• 최종적으로는 회전행렬로 변환

회전각 α, β, γ일때 x, y, z 축을 기준의 순차적 회전결과

(53)

53

오일러 각 표현

오일러 각에 의한 회전

• 항상 현 시점에서의 모델 좌표계를 기준으로 회전.

• 회전의 결과 좌표축 방향이 바뀐다는 점에 유의

• 처음 z 축 기준 회전 결과 모델 좌표계의 x, y 축 방향이 이전과는 달라짐.

• 회전을 적용하는 순서가 중요함. 교환법칙이 성립하지 않음

(54)

오일러 각 표현

단점 1. 복합 변환의 결과를 예측하기 어려움.

• 오리엔테이션을 보간하기 위해서 오일러 각 자체를 보간

• 오일러 각 (10, 20, 30)에 의해 회전하고 회전결과를 기준으로 (40, 50, 60) 에 의해 회전하면, 원래 물체를 (50, 70, 90)에 의해 회전한 것과는 다름. 첫 번째 회전 결과 좌표축 방향이 변해 버리기 때문

단점 2. 김벌락(Gimbal Lock) 현상

• x 축 기준으로 그림에 표시된 방향으로 일정 각도를 회전. 이어서 z 축을 기준으 로 90도 회전하면 x 축과 y 축이 나란해 짐

• 현재 상태에서 y 축을 기준으로 회전을 가하면 이전에 x 축 기준으로 이미 회전 한 각도에 영향을 미침. 회전결과 x, y, z 축이 독립성을 잃을 수 있음

(55)

55

오일러 각 표현

단점 3: 오리엔테이션이 변하는 경로가 유일하지 않음

• y축을 기준 180도 회전

▪ z축을 기준으로 180도 회전 + x축을 기준으로 180도 회전

• 회전각을 직접적으로 보간해서는 오리엔테이션이 변하는 경로를 예측하기 어려 움.

(56)

축-각 표현

회전축과 회전각을 사용: 회전축은 단위벡터로 나타냄

(57)

57

사원수(Quaternion)

축-각 표현을 수학적으로 개선

• 축 관련 변수 3개와 회전각 관련 변수 1개를 하나의 4차원 변수로

• w = 스칼라 부(Scalar Part) 또는 실수 부(Real Part), v = 벡터 부 (Vector Part) 또는 허수 부(Imaginary Part). 단위 4원수: 벡터의 길이 (노름, Norm) = 1

• 단위 사원수(Unit Quaternion)만이 회전에 사용됨.

축각 표현과의 관계

(58)

사원수 연산

단위 사원수 노름 값은 1이므로 공액 사원수 자체가 역 사원수

(59)

59

사원수 연산

공액 곱셈(Conjugate Product)

• 사원수 q를 사용하여 실제로 회전을 가하는 작업

• 원점으로부터 물체 위의 점 p를 향한 벡터 P

• P 앞쪽에 q를 곱하고 뒤쪽에 q의 공액 사원수를 곱하여 계산

• P는 3차원 벡터. 이를 사원수로 만들려면 스칼라 부분인 w를 0으로 


(60)

사원수에 의한 보간

사원수 q1, q2 에 의해 연속적으로 회전하였다면 그 결과는 원래의 물체에 대해 사원 수 q1*q2 으로 회전한 것과 동일

예:사원수 q에 의해 회전하고 그 결과를 다시 에 의해 회전

(61)

61

4차원 가상원구(Hypersphere)

사원수 q는 물체 위치가 아니라 물체 오리엔테이션을 의미 물체 오리엔테이션의 보간

• 원구면을 따라가면서 사원수를 선택

• 오일러 각에 의해 보간할 경우 그림 (a)와 유사.

▪ 오리엔테이션의 변화가 매우 부자연스러움.

(62)

LERP

러프(LERP: Linear intERPolation)

(63)

63

SLERP

슬러프(SLERP: Spherical Linear intERPolation)

• LERP의 경우 오리엔테이션이 바뀌는 속력이 변화함

• 중심각 θ를 일정하게 증가시키면서 보간 .

(64)

사원수의 보간

중복성

• 완전히 동일한 회전을 의미함.

원구 표면을 따라가면서 최단경로를 택했을 때 가장 자연스러움

• 그림의 경우 q2을 선택

• 벡터 내적에 의해 선택가능

(65)

65

가상현실

Virtual Reality — a three dimensional, computer generated

simulation in which one can navigate around, interact with, and be immersed in another environment

(John Briggs - The Futurist) 가상현실 - 컴퓨터에 의해 생성된 3차원 시뮬레이션. 사람은 또 다른 환경에 몰입하 여 돌아다니거나 상호작용을 할 수 있음.

(존 브릭스 - 미래학자)

Virtual Reality — the use of computer technology to create the effect of an interactive three-dimensional world in which the objects have a sense of spatial presence.

(Steve Bryson - NASA Ames) 가상현실 - 컴퓨터 기술을 사용하여 상호작용이 가능한 3차원 세계를 생성하는 것.

생성된 세계의 내부 물체는 마치 현실공간에 존재하는 느낌을 줌.

(스티브 브라이슨 - 미 항공 우주국 에임즈 연구센터)

(66)

가상현실

가상현실(VR: Virtual Reality) 또는 가상환경(Virtual Environment)

• 원격 조작에서 출발

• 방사능에 오염된 지역의 폐기물을 처리

• 작업자는 현장에서 멀리 떨어져 있음.

• 실제 현장 작업은 로봇이나 자동제어 기계가 처리

• 조작자가 마치 현장에 있는 것처럼 느끼면서 작업을 제어 현실감(Reality) 또는 원격 현장감(Tele-presence)

• 가상현실의 핵심

• 작업자가 정말로 현장에 있는 것과 똑같이 느끼게 하는 것이 중요

• 현실감이 증폭될수록 인간의 인식이나 직관 또는 판단이 제대로 동작

(67)

67

현실감 증폭

HMD(Headmount Display)

• 입체영상, 넓은 시야각, 경량

전방향 입체음향

• 360도 원구의 모든 방향에서 분리된 소리 데이터 글로브

• 출력장치: 촉각

• 입력장치: 제어부피 내에서 사용자 움직임을 지정

(68)

가상현실

가상현실 = 감각환경(Sensory Environment)

가상현실 = 합성환경(Synthetic Environment, Artificial Environment)

• "실제로 존재하지 않음“

가상현실 = 대화환경(Interactive Environment)

• 끊임없이 사용자와의 상호작용을 하면서 변화.

▪ cf. 일반적 시뮬레이션

• 가상보행(Virtual Walkthrough)

(69)

69

GLSL

"오픈지엘은 프로그램 언어가 아니다. 어떤 작업을 활성화/비활성화 하거나 작업의 파 라미터를 명시하는 정도이지 렌더링 알고리즘은 본질적으로 고정되어 있다. 이렇게 하 는 이유 중 하나는 효율이다. 그래픽 하드웨어는 일반적으로 어떤 작업을 정해진 순서 에 따라 실행함으로써 효율 향상을 기한다. 따라서 이러한 작업 과정을 임의의 알고리 즘으로 대체하기는 어렵다. 결국 프로그램 가능성(Programmability)은 하드웨어 를 최대한 활용하는 API와는 서로 모순된다."

Seal and Akeley,

"The Design of the OpenGL Graphics Interface," 1994

(70)

GLSL(GL Shading Language)

지엘• 파이프라인마다 고정된 알고리즘을 그래픽 처리의 속도를 향상

• 그래픽 카드가 지원하는 한 지엘 확장 기능(ARB Extension)을 사용가능. 지 엘의 설계목적인 프로그램의 이식성(Portability)을 저해

지엘 셰이딩 언어(GLSL: GL Shading Language)

• 사용자 프로그램에 의해 파이프라인 일부를 대체

• 호환성을 확보하기 위해 셰이딩 언어는 하드웨어에 무관한 고급언어

• 지엘 코드와 섞여서 동작

• 고정된 파이프라인을 사용치 않기 때문에 속도 면에 유의. 셰이딩 언어 또는 컴파 일러는 병렬처리를 최대한 활용

ARB-GL2 워크 그룹

• 2003년초 드래프트 오픈지엘 셰이딩 언어

• 새로운 컴파일러에 의해 "C" 언어와 유사한 고급언어로 코딩

(71)

71

파이프라인 프로세스의 대체

정점 셰이더(Vertex Shader)

프래그먼트 셰이더(Fragment Shader)

(72)

정점 셰이더와 프래그먼트 셰이더

정점 셰이더

• 입력: 정점의 위치, 색, 법선벡터 등

• 델뷰 행렬과 투상행렬을 사용하여 정점의 위치를 변환하거나 법선벡터를 변환하 고 재 정규화

• 지엘의 상태변수를 접근할 수 있기 때문에 텍스쳐와 조명에 활용

• 텍스쳐 영상을 직접 이용할 수 있음.

프래그먼트 셰이더

• 입력: 정점의 위치, 색, 법선벡터 등을 보간한 값

• 안개효과, 컬러 섬, 화소 확대, 텍스쳐 접근 등의 기능을 대신

• 시저 테스트, 알파 테스트, 깊이 테스트, 스텐실 테스트, 디더링 등 파이프라인 기능은 대체할 수 없음.

(73)

73

openGL ES

(74)

openGL ES

openGL ES의 특징

• 1) 기본요소 렌더링에 있어서 openGL에서 사용하는 glBegin...glEnd를 없 애는 대신 정점 배열(Vertex Array)를 사용하였다.

• 2) 대부분의 임베디드 프로세서가 부동소수 연산 기능이 없는 점을 감안하여 정 점의 좌표를 표현하는데 있어서 고정소수 타입(Fixed Point Type: 예를 들어 GL의 경우 0.05=0.5e-1, ES의 경우 0.05=0.05)을 사용하도록 하였다.

• 3) 경량 인터페이스를 제공하기 위해 쿼드(Quad)/폴리곤(Polygon) 기본요 소, 폴리곤 모드, 앤티에일리아스를 적용한 다각형 렌더링, 폴리곤 스티플

(Polygon Stipple), 프런트 버퍼 드로잉(Front Buffer Drawing), 이밸 류에이터(Evaluator), 비트맵, 3D 텍스쳐, A 버퍼, 화소 복사, 디스플레이 리스트(Display List), 사용자 정의 절단 다각형(User-defined Clipping Plane), 컬러 인덱스 모드 등 많은 기능을 제거하였다.

• 4) GLshort, GLbyte, GLubyte, 함수 접미어를 사용하지 않으며 float, short, byte 자료형만 사용이 가능하다.

(75)

75

openGL ES

OpenGL ES 1.1

• 1) 멀티 텍스쳐링(Multitexturing)

• 2) 자동 밉맵 생성(Automatic MipMap Generation)

• 3) 고정소수 연산 및 부동소수 연산(Fixed Point and Floating Point Profiles)

• 4) 사용자 정의 절단 다각형(User-defined Clipping Plane)

• 5) 점 렌더링 기능(Point Rendering)

현재로서 구글 운영체제인 안드로이드(Android 1.6)가 OpenGL ES 1.1을 지 원한다.

(76)

openGL ES

OpenGL ES 2.0

• 렌더링 파이프라인에 의한 대부분의 고정 렌더링 기능을 제거하는 대신 지엘의 셰이딩 언어에 해당하는 GLSL ES를 사용하여 이를 프로그램 할 수 있도록 한 것이다. 예를 들어 조명에 있어서 물체 정의 및 광원 파라미터 등을 정의하는 대 신 프로그래머가 작성한 셰이더가 작동하도록 한 것이다.

• 1) 정점/프래그먼트 셰이더(Vertex/Fragment Shader) 사용

• 2) 고급 언어(GLSL ES) 지원

• 3) 광원 속성(Light Attributes) 사용

• 4) 텍스쳐(Texture), 의존 텍스쳐(Dependent Texture), 큐브 맵(Cube Maps)

• 5) 프레임 버퍼 오브젝트(Frame Buffer Object) 사용

(77)

77

openGL ES

Fixed Function Pipeline

(78)

openGL ES

Programmable Pipeline

참조

Outline

관련 문서

그러나 모든 문화는 너무 자연스러워 마치 자연인 것처럼 생각됨.. 문화의

공감적 이해는 상대방의 내면 속에 들어가 마치 자신이 상대방인 것처럼 생각 하고 느끼고 행동하는 것이라 할 수 있다. 내담자가 진술하고 표현한 것을 언어적..

• Electrical mobility of spherical particles much larger than the mean free path of the molecules of the medium is inversely proportional to the diameter of the

• ‘git checkout’ 명령에 ‘<원격 저장소 이름>/<원격 저장소의 브랜치 이름>’ 인자로 줘서 특정 원격 저장소의 특정 브랜치 파일 워킹 스페이스로 가져올 수

• 인공호흡으로 혈액을 순환시켜 조직으로 산소를 공급 함으로써 뇌의 손상 또는 사망을 지연시키고자 현장에 서 신속하게

• 사회복지급여 지급사유가 없음에도 불구하고 있는 것처럼 하여 사회복지급여를 지급받 는 행위 , 낮은 정도의 사회복지급여 지급사유에도 불구하고 높은 정도의

풍경이 풍경을 반성하지 않는 것처럼 곰팡이 곰팡을 반성하지 않는 것처럼 여름이 여름을 반성하지 않는 것처럼 속도가 속도를 반성하지 않는 것처럼.. 졸렬과 수치가

• 렌더링 알고리즘은 많은 명령을 수행하고 많은 픽셀값들을 계산하기 때문에 처리 시간이 오래 걸림. • 현재 대부분의 그래픽 시스템들은 렌더링