갬장장이
[Mathematics] 7. Billboarding
갬장장이
갬장장이의 코드 대장간
갬장장이
전체
오늘
어제
  • 분류 전체보기
    • 게임 연구소
    • 게임 제작
      • Banditors (2024~)
      • Rovenhell (2023)
      • Geophyte (2020~2021)
      • 아드레날린 러시 (2021)
      • Treadmill (2019)
      • 습작들 (2019~)
      • 그 외 (~2018)
    • 개발
      • 언리얼 엔진
      • 수학
      • 네트워크
      • 그래픽스
      • OpenGL
      • DirectX
    • 일상
    • 기타 제작

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • [공지] 블로그 안내

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.
개발/수학

[Mathematics] 7. Billboarding

2022. 2. 1. 18:45

 

둠이나 단간론파처럼 스프라이트가 2D이지만 게임 저체는 3D인 환경에서 스프라이트가 항상 플레이어를 바라보도록 하려면 어떻게 해야할까?

플레이어, 그리고 스프라이트의 3차원 상의 위치가 주어졌다고 가정하자. (E, P)

일단 스프라이트에서 플레이어로 향하는 방향을 구하면 F = P - E 이다.

이걸 구하면 우리는 플레이어의 시야와 스프라이트가 우측으로 90도를 이루는 R벡터를 구할 수 있다. 어떤 두 벡터를 외적하면 그 두 벡터 모두에 수직인 벡터를 구할 수 있다는 것을 우리는 이미 한 차례 다뤘었다.
R = F x (0,1,0)

(여기서 F와 외적중인 벡터가 (0,1,0), 즉 global한 up vector임을 기억하자. U벡터는 스프라이트 자체의 상대좌표계상에서의 up벡터를 의미한다.)

이제 F와 R을 외적하는 것으로 F와 R 모두에 수직인 U 벡터를 구할 수 있다.
이제 U와 R벡터, 그리고 스프라이트의 위치인 P를 이용해 스프라이트가 그려질 좌표계를 표현할 수 있다.

U,R,P는 게임 공간에 대한 기저 벡터(Basis vector)이다. 즉 1. URP는 서로 수직이고(Orthogonal), 2.URP에 각각 실수배를 해주는 것으로 게임 공간의 모든 위치를 표현할 수 있다.(Span)
같은 의미로 U와 R은 스프라이트 표면 좌표계에 대한 기저 벡터이다.


스프라이트가 사각형이라고 가정했을때, P에 U와 R을 더하거나 빼는 것으로 4개의 꼭짓점을 모두 표현할 수 있다.

텍스쳐를 사각형의 좌표에 렌더링하는 코드








'개발 > 수학' 카테고리의 다른 글

[Mathematics] 9. Scaling  (0) 2022.02.07
[Mathematics] 8. 좌표계 변환  (0) 2022.02.06
[Mathematics] 6. 총알 소리 (Bullet whizzes)  (0) 2022.01.23
[Mathematics] 5. AABB Intersection  (0) 2022.01.23
[Mathematics] 4. Interpolation  (0) 2022.01.20
'개발/수학' 카테고리의 다른 글
  • [Mathematics] 9. Scaling
  • [Mathematics] 8. 좌표계 변환
  • [Mathematics] 6. 총알 소리 (Bullet whizzes)
  • [Mathematics] 5. AABB Intersection
갬장장이
갬장장이
갬장장이의 코드 대장간갬장장이 님의 블로그입니다.
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.