SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
Vector
  and   Matrix
         김성익(noerror@hitel.net)
                    2005.02.20
벡터
• 3D 카테시안 좌표계 3d cartesian coordinates
• 직교 좌표계
• x, y, z 스칼라 값 집합




• 왼손 좌표계
벡터 표현
• Direct3d 의 벡터형

• OpenGL 의 벡터형




• Direct3d vs OpenGL : 전치   transpose   된 형태
• 전치 : 행과 열을 바꿈
벡터 의미
• 공간   space   : 방향   direction   , 위치   position



• 명시적인 표현 제안




• afffine
벡터 합, 길이
• 벡터합   addition




• 벡터길이     length
벡터 내적
• 벡터내적 dotproduct
• A • B = |A|*|B|*cosΘ



• 내적 > 0 : 90도 이내 (같은 방향)
• 내적 = 0 : 직각
• 단위벡터 unit vector 끼리의 내적 : 두 벡터 사이의
  cos
벡터 프로젝션
• A • A = |A|2
• 프로젝션




• projAB   = (|B| * cosΘ) * (A / |A|)
           = {(A • B) / (A • A)} • A
슬라이딩 벡터
• 슬라이딩 벡터
• 벡터V를 두 벡터로 분해
• Vs = Vb = V – Va
• Va 는 N 벡터의 투영 벡터

• 반사벡터
• Vr = Vs – Va = V – Va * 2
벡터외적
• 벡터외적     crossproduct




• 오른손
• 직교 기저 orthogonal basis 벡터 (u, v)
  u
  vxu
  u x (v x u)
매트릭스
• 행렬 matrix
• 4 x 4 형태의 행렬




• 변환transform
  스케일scaling, 회전rotation, 이동translation
변환
• 동차좌표homogeneous coordinate
  (x / w, y / w, z / w) = (x, y, z, w)
• 벡터 매트릭스 곱 (가로벡터 Direct3D)
직각좌표계
• X축 ‘끝점 (1, 0, 0) - 시작점(0, 0, 0)’
• 변환해보면
  끝점 = (_11+_41, _12+42, _13+43)
  시작점 = (_41, _42, _43)
  x축의 방향 벡터 = (_11, _12, _13)

• 행렬의 각 요소는
  축의 좌표
바라보는 매트릭스
• z축은 바라보는 방향
• 외적을 이용한 직교 기저 벡터 공식
매트릭스성질
• 결합   Concatenation

• v1 = v • M1, v2 = v1 • M2
  M = M1•M2 , v3 = v • M
  v2 == v3
• (M1•M2)•M3 = M1•(M2•M3)=M1•M2•M3

• 교환 성질
• M1 • M2 != M2 • M1
매트릭스성질
• 단위벡터 : A • I = A
• I=



• 역행렬 : A • A-1 = I
  A가 직교orthogonal 행렬이면 AT = A-1
• (AB) -1 = B-1 A-1
스케일 매트릭스
• 벡터의 x, y, z 스케일scaling 매트릭스



• 계층적인 구조에서의 스케일 변환
회전 변환
• X축 회전rotation 매트릭스



• 다른 도메인의 회전 변환
  오일러 각 euler angle : Yaw(y축), Roll(z축),
  Pitch(x축)
  회전 각도와 회전 축 axis and angle
  사원수 quaternion
변환
• 이동translation 매트릭스



• 회전, 스케일 변환에서의 origin

• Rigid Body Transform :
  회전, 이동 변환
참고
•   Rick Parent, Computer Animation Algorithms and techniques,
    Morgan Kaufmann publishers, chapter 2.1 spaces and
    transformations
•   Issac Victor Kerlow, The art of 3-d computer animation and
    imaging, Wiley, pages 77-89
•   Eric Lengyel, Mathematics fo 3d game programming &
    computer graphics, charles river media, chapter 1, 2, 3
•   Gareth Williams, Linear algebra with applications
•   Math in Direct3DX,
    http://mormegil.wz.cz/prog/3dref/D3DXmath_en.htm

Mais conteúdo relacionado

Mais procurados

Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Esun Kim
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013devCAT Studio, NEXON
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현noerror
 
동기화 시대를 뛰어넘는 비동기 프로그래밍
동기화 시대를 뛰어넘는 비동기 프로그래밍동기화 시대를 뛰어넘는 비동기 프로그래밍
동기화 시대를 뛰어넘는 비동기 프로그래밍명신 김
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018devCAT Studio, NEXON
 
그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기Yongha Kim
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기현철 조
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012devCAT Studio, NEXON
 
C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발흥배 최
 
06_게임엔진구성
06_게임엔진구성06_게임엔진구성
06_게임엔진구성noerror
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019devCAT Studio, NEXON
 
게임수학 강의노트 1부
게임수학 강의노트 1부게임수학 강의노트 1부
게임수학 강의노트 1부Young-Min kang
 
게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴예림 임
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템QooJuice
 
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013Ryo Sakamoto
 
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리강 민우
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버Heungsub Lee
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCHo Gyu Lee
 

Mais procurados (20)

Ndc12 2
Ndc12 2Ndc12 2
Ndc12 2
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
동기화 시대를 뛰어넘는 비동기 프로그래밍
동기화 시대를 뛰어넘는 비동기 프로그래밍동기화 시대를 뛰어넘는 비동기 프로그래밍
동기화 시대를 뛰어넘는 비동기 프로그래밍
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
 
그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
 
C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발
 
06_게임엔진구성
06_게임엔진구성06_게임엔진구성
06_게임엔진구성
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
게임수학 강의노트 1부
게임수학 강의노트 1부게임수학 강의노트 1부
게임수학 강의노트 1부
 
게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
 
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABC
 

Destaque

파이썬 확률과 통계 기초 이해하기
파이썬 확률과 통계 기초 이해하기파이썬 확률과 통계 기초 이해하기
파이썬 확률과 통계 기초 이해하기Yong Joon Moon
 
python 수학이해하기
python 수학이해하기python 수학이해하기
python 수학이해하기Yong Joon Moon
 
2014년 무학과 학생들을 위한 수리과학과 설명회
2014년 무학과 학생들을 위한 수리과학과 설명회2014년 무학과 학생들을 위한 수리과학과 설명회
2014년 무학과 학생들을 위한 수리과학과 설명회Hang Park
 
해커에게 전해들은 머신러닝 #1
해커에게 전해들은 머신러닝 #1해커에게 전해들은 머신러닝 #1
해커에게 전해들은 머신러닝 #1Haesun Park
 
2.supervised learning(epoch#2)-2
2.supervised learning(epoch#2)-22.supervised learning(epoch#2)-2
2.supervised learning(epoch#2)-2Haesun Park
 
[PYCON KOREA 2017] Python 입문자의 Data Science(Kaggle) 도전
[PYCON KOREA 2017] Python 입문자의 Data Science(Kaggle) 도전[PYCON KOREA 2017] Python 입문자의 Data Science(Kaggle) 도전
[PYCON KOREA 2017] Python 입문자의 Data Science(Kaggle) 도전Mijeong Park
 

Destaque (7)

선형 대수학
선형 대수학선형 대수학
선형 대수학
 
파이썬 확률과 통계 기초 이해하기
파이썬 확률과 통계 기초 이해하기파이썬 확률과 통계 기초 이해하기
파이썬 확률과 통계 기초 이해하기
 
python 수학이해하기
python 수학이해하기python 수학이해하기
python 수학이해하기
 
2014년 무학과 학생들을 위한 수리과학과 설명회
2014년 무학과 학생들을 위한 수리과학과 설명회2014년 무학과 학생들을 위한 수리과학과 설명회
2014년 무학과 학생들을 위한 수리과학과 설명회
 
해커에게 전해들은 머신러닝 #1
해커에게 전해들은 머신러닝 #1해커에게 전해들은 머신러닝 #1
해커에게 전해들은 머신러닝 #1
 
2.supervised learning(epoch#2)-2
2.supervised learning(epoch#2)-22.supervised learning(epoch#2)-2
2.supervised learning(epoch#2)-2
 
[PYCON KOREA 2017] Python 입문자의 Data Science(Kaggle) 도전
[PYCON KOREA 2017] Python 입문자의 Data Science(Kaggle) 도전[PYCON KOREA 2017] Python 입문자의 Data Science(Kaggle) 도전
[PYCON KOREA 2017] Python 입문자의 Data Science(Kaggle) 도전
 

Semelhante a 05_벡터와 매트릭스

노말 맵핑(Normal mapping)
노말 맵핑(Normal mapping)노말 맵핑(Normal mapping)
노말 맵핑(Normal mapping)QooJuice
 
Chapter 2, 선형 변환과 행렬 1/2
Chapter 2, 선형 변환과 행렬 1/2Chapter 2, 선형 변환과 행렬 1/2
Chapter 2, 선형 변환과 행렬 1/2Thisisone Lee
 
컴퓨터 그래픽스 2015-2019년 기말시험
컴퓨터 그래픽스 2015-2019년 기말시험컴퓨터 그래픽스 2015-2019년 기말시험
컴퓨터 그래픽스 2015-2019년 기말시험Lee Sang-Ho
 
Linear algebra for quantum computing
Linear algebra for quantum computingLinear algebra for quantum computing
Linear algebra for quantum computingssuserd0f07b
 
[0528 석재호]게임을위한기초수학과물리
[0528 석재호]게임을위한기초수학과물리[0528 석재호]게임을위한기초수학과물리
[0528 석재호]게임을위한기초수학과물리Jaeho Seok
 
입문 Visual SLAM 14강 - 3장 3d rigid body transform
입문 Visual SLAM 14강 - 3장 3d rigid body transform입문 Visual SLAM 14강 - 3장 3d rigid body transform
입문 Visual SLAM 14강 - 3장 3d rigid body transformjdo
 
3D Graphics Transform
3D Graphics Transform3D Graphics Transform
3D Graphics Transform문익 장
 
파이썬 Numpy 선형대수 이해하기
파이썬 Numpy 선형대수 이해하기파이썬 Numpy 선형대수 이해하기
파이썬 Numpy 선형대수 이해하기Yong Joon Moon
 
02.선형변환과 행렬
02.선형변환과 행렬02.선형변환과 행렬
02.선형변환과 행렬JaeHong Park
 
GameMath-Chapter 04 사원수
GameMath-Chapter 04 사원수GameMath-Chapter 04 사원수
GameMath-Chapter 04 사원수Mark Choi
 

Semelhante a 05_벡터와 매트릭스 (12)

노말 맵핑(Normal mapping)
노말 맵핑(Normal mapping)노말 맵핑(Normal mapping)
노말 맵핑(Normal mapping)
 
Chapter 2, 선형 변환과 행렬 1/2
Chapter 2, 선형 변환과 행렬 1/2Chapter 2, 선형 변환과 행렬 1/2
Chapter 2, 선형 변환과 행렬 1/2
 
컴퓨터 그래픽스 2015-2019년 기말시험
컴퓨터 그래픽스 2015-2019년 기말시험컴퓨터 그래픽스 2015-2019년 기말시험
컴퓨터 그래픽스 2015-2019년 기말시험
 
Linear algebra for quantum computing
Linear algebra for quantum computingLinear algebra for quantum computing
Linear algebra for quantum computing
 
[0528 석재호]게임을위한기초수학과물리
[0528 석재호]게임을위한기초수학과물리[0528 석재호]게임을위한기초수학과물리
[0528 석재호]게임을위한기초수학과물리
 
입문 Visual SLAM 14강 - 3장 3d rigid body transform
입문 Visual SLAM 14강 - 3장 3d rigid body transform입문 Visual SLAM 14강 - 3장 3d rigid body transform
입문 Visual SLAM 14강 - 3장 3d rigid body transform
 
벡터
벡터벡터
벡터
 
3D Graphics Transform
3D Graphics Transform3D Graphics Transform
3D Graphics Transform
 
파이썬 Numpy 선형대수 이해하기
파이썬 Numpy 선형대수 이해하기파이썬 Numpy 선형대수 이해하기
파이썬 Numpy 선형대수 이해하기
 
점, 선, 면
점, 선, 면점, 선, 면
점, 선, 면
 
02.선형변환과 행렬
02.선형변환과 행렬02.선형변환과 행렬
02.선형변환과 행렬
 
GameMath-Chapter 04 사원수
GameMath-Chapter 04 사원수GameMath-Chapter 04 사원수
GameMath-Chapter 04 사원수
 

Mais de noerror

15_TextureAtlas
15_TextureAtlas15_TextureAtlas
15_TextureAtlasnoerror
 
11_웹서비스활용
11_웹서비스활용11_웹서비스활용
11_웹서비스활용noerror
 
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집noerror
 
KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법noerror
 
11_통계 자료분석 입문
11_통계 자료분석 입문11_통계 자료분석 입문
11_통계 자료분석 입문noerror
 
11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템noerror
 
11_SH를 이용한 실시간 투명 근사법
11_SH를 이용한 실시간 투명 근사법11_SH를 이용한 실시간 투명 근사법
11_SH를 이용한 실시간 투명 근사법noerror
 
ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법noerror
 
08_Marching Cube Terrains
08_Marching Cube Terrains08_Marching Cube Terrains
08_Marching Cube Terrainsnoerror
 
08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드noerror
 
08_플래시 맛보기
08_플래시 맛보기08_플래시 맛보기
08_플래시 맛보기noerror
 
08_애니메이션고등학교 게임과 특강
08_애니메이션고등학교 게임과 특강08_애니메이션고등학교 게임과 특강
08_애니메이션고등학교 게임과 특강noerror
 
08_Wxwidgets 소개
08_Wxwidgets 소개08_Wxwidgets 소개
08_Wxwidgets 소개noerror
 
07_PhysX 강체물리 입문
07_PhysX 강체물리 입문07_PhysX 강체물리 입문
07_PhysX 강체물리 입문noerror
 
07_스케일폼 소개
07_스케일폼 소개07_스케일폼 소개
07_스케일폼 소개noerror
 
07_Visual Shader Editor
07_Visual Shader Editor07_Visual Shader Editor
07_Visual Shader Editornoerror
 
06_HDR 소개
06_HDR 소개06_HDR 소개
06_HDR 소개noerror
 
06_게임엔진 활용팁
06_게임엔진 활용팁06_게임엔진 활용팁
06_게임엔진 활용팁noerror
 
06_자동차물리입문(1)
06_자동차물리입문(1)06_자동차물리입문(1)
06_자동차물리입문(1)noerror
 
06_앰비언트어클루전 소개
06_앰비언트어클루전 소개06_앰비언트어클루전 소개
06_앰비언트어클루전 소개noerror
 

Mais de noerror (20)

15_TextureAtlas
15_TextureAtlas15_TextureAtlas
15_TextureAtlas
 
11_웹서비스활용
11_웹서비스활용11_웹서비스활용
11_웹서비스활용
 
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
 
KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법
 
11_통계 자료분석 입문
11_통계 자료분석 입문11_통계 자료분석 입문
11_통계 자료분석 입문
 
11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템
 
11_SH를 이용한 실시간 투명 근사법
11_SH를 이용한 실시간 투명 근사법11_SH를 이용한 실시간 투명 근사법
11_SH를 이용한 실시간 투명 근사법
 
ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법
 
08_Marching Cube Terrains
08_Marching Cube Terrains08_Marching Cube Terrains
08_Marching Cube Terrains
 
08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드
 
08_플래시 맛보기
08_플래시 맛보기08_플래시 맛보기
08_플래시 맛보기
 
08_애니메이션고등학교 게임과 특강
08_애니메이션고등학교 게임과 특강08_애니메이션고등학교 게임과 특강
08_애니메이션고등학교 게임과 특강
 
08_Wxwidgets 소개
08_Wxwidgets 소개08_Wxwidgets 소개
08_Wxwidgets 소개
 
07_PhysX 강체물리 입문
07_PhysX 강체물리 입문07_PhysX 강체물리 입문
07_PhysX 강체물리 입문
 
07_스케일폼 소개
07_스케일폼 소개07_스케일폼 소개
07_스케일폼 소개
 
07_Visual Shader Editor
07_Visual Shader Editor07_Visual Shader Editor
07_Visual Shader Editor
 
06_HDR 소개
06_HDR 소개06_HDR 소개
06_HDR 소개
 
06_게임엔진 활용팁
06_게임엔진 활용팁06_게임엔진 활용팁
06_게임엔진 활용팁
 
06_자동차물리입문(1)
06_자동차물리입문(1)06_자동차물리입문(1)
06_자동차물리입문(1)
 
06_앰비언트어클루전 소개
06_앰비언트어클루전 소개06_앰비언트어클루전 소개
06_앰비언트어클루전 소개
 

05_벡터와 매트릭스

  • 1. Vector and Matrix 김성익(noerror@hitel.net) 2005.02.20
  • 2. 벡터 • 3D 카테시안 좌표계 3d cartesian coordinates • 직교 좌표계 • x, y, z 스칼라 값 집합 • 왼손 좌표계
  • 3. 벡터 표현 • Direct3d 의 벡터형 • OpenGL 의 벡터형 • Direct3d vs OpenGL : 전치 transpose 된 형태 • 전치 : 행과 열을 바꿈
  • 4. 벡터 의미 • 공간 space : 방향 direction , 위치 position • 명시적인 표현 제안 • afffine
  • 5. 벡터 합, 길이 • 벡터합 addition • 벡터길이 length
  • 6. 벡터 내적 • 벡터내적 dotproduct • A • B = |A|*|B|*cosΘ • 내적 > 0 : 90도 이내 (같은 방향) • 내적 = 0 : 직각 • 단위벡터 unit vector 끼리의 내적 : 두 벡터 사이의 cos
  • 7. 벡터 프로젝션 • A • A = |A|2 • 프로젝션 • projAB = (|B| * cosΘ) * (A / |A|) = {(A • B) / (A • A)} • A
  • 8. 슬라이딩 벡터 • 슬라이딩 벡터 • 벡터V를 두 벡터로 분해 • Vs = Vb = V – Va • Va 는 N 벡터의 투영 벡터 • 반사벡터 • Vr = Vs – Va = V – Va * 2
  • 9. 벡터외적 • 벡터외적 crossproduct • 오른손 • 직교 기저 orthogonal basis 벡터 (u, v) u vxu u x (v x u)
  • 10. 매트릭스 • 행렬 matrix • 4 x 4 형태의 행렬 • 변환transform 스케일scaling, 회전rotation, 이동translation
  • 11. 변환 • 동차좌표homogeneous coordinate (x / w, y / w, z / w) = (x, y, z, w) • 벡터 매트릭스 곱 (가로벡터 Direct3D)
  • 12. 직각좌표계 • X축 ‘끝점 (1, 0, 0) - 시작점(0, 0, 0)’ • 변환해보면 끝점 = (_11+_41, _12+42, _13+43) 시작점 = (_41, _42, _43) x축의 방향 벡터 = (_11, _12, _13) • 행렬의 각 요소는 축의 좌표
  • 13. 바라보는 매트릭스 • z축은 바라보는 방향 • 외적을 이용한 직교 기저 벡터 공식
  • 14. 매트릭스성질 • 결합 Concatenation • v1 = v • M1, v2 = v1 • M2 M = M1•M2 , v3 = v • M v2 == v3 • (M1•M2)•M3 = M1•(M2•M3)=M1•M2•M3 • 교환 성질 • M1 • M2 != M2 • M1
  • 15. 매트릭스성질 • 단위벡터 : A • I = A • I= • 역행렬 : A • A-1 = I A가 직교orthogonal 행렬이면 AT = A-1 • (AB) -1 = B-1 A-1
  • 16. 스케일 매트릭스 • 벡터의 x, y, z 스케일scaling 매트릭스 • 계층적인 구조에서의 스케일 변환
  • 17. 회전 변환 • X축 회전rotation 매트릭스 • 다른 도메인의 회전 변환 오일러 각 euler angle : Yaw(y축), Roll(z축), Pitch(x축) 회전 각도와 회전 축 axis and angle 사원수 quaternion
  • 18. 변환 • 이동translation 매트릭스 • 회전, 스케일 변환에서의 origin • Rigid Body Transform : 회전, 이동 변환
  • 19. 참고 • Rick Parent, Computer Animation Algorithms and techniques, Morgan Kaufmann publishers, chapter 2.1 spaces and transformations • Issac Victor Kerlow, The art of 3-d computer animation and imaging, Wiley, pages 77-89 • Eric Lengyel, Mathematics fo 3d game programming & computer graphics, charles river media, chapter 1, 2, 3 • Gareth Williams, Linear algebra with applications • Math in Direct3DX, http://mormegil.wz.cz/prog/3dref/D3DXmath_en.htm