Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

MOONSUN

[게임 수학] 행렬 연산의 특징 : 비가환성, 역행렬, 전치(Transpose) 등.. 본문

D3D

[게임 수학] 행렬 연산의 특징 : 비가환성, 역행렬, 전치(Transpose) 등..

MoonSun_v 2025. 9. 19. 17:04

 

그래픽스에서 필수 요소인 행렬 연산의 특징들에 대해 간단하게 알아보자.

 

 

1. 곱셈의 비가환성 ( 순서 중요 )

행렬 곱셈은 두 행렬을 결합하여 하나의 변환을 만드는 연산이다.

즉, “먼저 이동 후 회전”과 “먼저 회전 후 이동”은 다른 결과를 만든다.

 

 

1-1. 행렬 곱셈 계산 방법

참고로 행렬의 곱셈 방법은 다음과 같음.

  • 첫 번째 행렬의 각 행과 두 번째 행렬의 각 열을 내적(dot product)하여 계산
  • 이 연산이 정의되기 위해서는 첫 번째 행렬의 열 개수가 두 번째 행렬의 행 개수와 같아야 함 

 

1-2. 비가환성 예시 

  • T =  x축으로 +5 이동
  • R 원점을 기준으로 90° 회전
  • 위 내용을 어떤 점 v=(1,0)에 적용해보면.
    • RTv (먼저 이동 후 회전) : (1,0) → (6,0) [이동] → (0,6) [회전]
      • 점이 이동하고 난 뒤, 그 위치를 기준으로 회전
    • TRv (먼저 회전 후 이동) : (1,0) → (0,1) [회전] → (5,1) [이동]  
      • 점이 먼저 회전하고 난 뒤, 회전된 방향으로 이동

결과가 다름 -> 행렬 곱은 순서가 바뀌면 달라진다. 

 

 

 

 

2. 역행렬 (Inverse)

행렬    : "변환" 이라는 의미

역행렬 : 그 "변환을 원래대로 되돌리는" 의미

정의 

역행렬 (순서 반대) 

여러 변환을 합쳤다면 되돌릴 때 순서를 거꾸로 해야 한다.

2-1. 역행렬 예시

  • 변환 : 스케일 후 회전 

  • 역변환 : 회전 취소 후 스케일 취소 

 

 

 

 

3. 전치 (Transpose)

전치 행렬을 행(row)과 열(column)을 뒤집은 행렬 이다. 

역시 곱의 순서가 뒤집힌다.

 

 

 

3-1. 회전 행렬과 전치

회전 행렬 R의 특징은 직교행렬(orthogonal matrix)이라는 점

  • 직교행렬 = 행렬의 열벡터(또는 행벡터)들이 서로 직각이고, 모두 길이가 1인 벡터로 이루어진 행렬

즉,

회전의 역행렬은 전치와 같다. 

이건 그래픽스에서 아주 중요한 성질!!! 

 

 

 

3-2. 벡터 내적과 행렬 전치

3-2-1. 벡터의 표현 방식

선형대수에서는 벡터를 보통 열벡터(column vector) 로 쓴다. 

이렇게 세로(열) 로 표현하는 게 기본

열벡터는 n×1 행렬이라고 보면 됨. 

 

 

3-2-2. 내적의 행렬 표현 

  • 내적은 다음과 같았다. (단순히 원소끼리 곱하고 더한 값) :

 

그런데, 행렬 곱셉을 하려면 첫 번째 행렬의 열 개수와 두 번째 행렬의 행 개수가 맞아야 하기 때문에,

그냥 u⋅v 는 (3×1)×(3×1) 이라서 곱할 수 없음.

 

그래서 u를 전치(Transpose) 해서 가로(행)으로 바꿔준다!! 

 

는 (1×3) × (3×1) = (1×1) = 1 

즉, 스칼라가 된다. (내적의 값도 스칼라로 나옴)

 

실제 계산은 다음과 같다.

바로 내적 !!!! 

 

 

 

3-2-3. 요약

 

  • 내적 = 원소끼리 곱하고 합.
  • 행렬 곱으로 표현하려면, 벡터 하나를 전치해서 “행 × 열” 꼴로 만들어야 함.
  • 그래서 다음과 같이 표준 공식처럼 씀:

 

즉, “전치”는 내적을 행렬 곱으로 표현하기 위한 ‘모양 맞추기 도구’라고 이해할 수 있다. 

 

 

 

4. 결합법칙

행렬 곱에서는 곱의 순서를 바꾸는 건 안 되지만, 괄호 묶는 방식(결합 법칙)은 바꿀 수 있다.

A B C 모두 행렬

결과는 항상 동일한 행렬.

 

4-1. 그래픽스에서 의미

  • 즉, 한 점 v에 여러 변환을 적용 해야할 때,

 

 

  • "3개의 변환 행렬을 미리 하나로 합쳐놓고"  정점 v에 한 번만 곱하면 됨.

(계산 횟수가 줄어들고, 성능 최적화 되는 장점)

 

 

 

 

 

5. 분배법칙 

한 행렬을 여러 행렬/벡터에 동시에 곱할 수 있다. 

5-1. 그래픽스에서 의미

  • 여러 점이나 벡터 v1,v2,v3 에 같은 변환 A를 적용할 때

 

  • 즉, 변환을 벡터마다 따로 적용해도 되고,
  • 먼저 합쳐서 한 번에 적용해도 결과가 동일하다.

(역시, 계산 횟수가 줄어들고, 성능 최적화 되는 장점)