반응형

 

 

 

"빌보드(Billboard) 기법"

 

 

개발을 하다보면 나무/풀 같은 배경 오브젝트나, 

데미지 숫자나 이름표, 아이콘처럼 항상 카메라 쪽을 바라봐야 보기 좋은 요소를 만들게 된다.

 


그런데 이런 것들을 그냥 3D 모델로만 처리하면 멀리 있는 오브젝트까지 삼각형을 계속 그려야 해서 자원이 많이 들고, 

반대로 얇은 쿼드로 만들면 옆에서 볼 때 종이처럼 보이는 문제가 생긴다.

 


이럴 때 카메라 방향을 따라 자동으로 회전해서 정면을 유지하는 기법이 바로 빌보드(Billboard)다. 

Unity에서도 빌보드를 '카메라를 항상 향하도록 회전하는 2D 오브젝트'로 정의한다.

 


오늘은 유니티의 빌보드 기법이 뭐고 왜 쓰는지 간단하게 정리해볼 예정이다.

 

 

 


 

 

 

1) 빌보드 기법이란?


텍스처가 붙은 평면(쿼드)을 카메라 방향으로 계속 돌려서, 항상 정면처럼 보이게 만드는 기법이다.

 


그래서 멀리 있는 나무나 풀, 파티클, 월드 공간 UI 같은 것에 많이 쓰인다. 

 

 

특히, Unity에서 Billboard Renderer는 

복잡한 3D 메시를 멀리서 2D 빌보드 표현으로 대체하는 LOD 방식으로도 설명된다.

 

[빌보드 기법]
(옆에서 보면 얇은 판)             (카메라를 따라 회전)
   ┌───┐                             ┌───┐
   │   │   ← 쿼드(판)                │😀 │  ← 항상 정면처럼
   └───┘                             └───┘
      ↑                                   ↑
   카메라가 옆으로 오면              카메라 쪽으로 자동 회전

 

 

 


 

 

2) 빌보드 기법을  쓰는 이유는?

 

빌보드는 한마디로 '항상 정면처럼 보이게 + 가볍게 그리기' 위해 쓴다.



(a) 보기 좋아짐

옆에서 봐도 종이처럼 얇게 보이는 문제를 줄임

(항상 정면 유지)

 

데미지 숫자, 이름표, 아이콘처럼 카메라에서 잘 읽혀야 하는 요소는 각도에 따라 얇게 보이거나 안 보이면 불편하다. 

빌보드는 평면(쿼드)을 카메라를 향해 자동으로 회전시켜서 언제 봐도 정면처럼 보이게 만든다.

 


 

(b) 성능 최적화(LOD)

멀리 있는 복잡한 3D 모델을 2D로 바꿔 렌더링 부담을 줄일 수 있음

 

 

나무/풀 같은 배경 오브젝트는 멀리서까지 3D로 그리면 낭비가 커서, 

일정 거리 이후엔 2D 빌보드로 바꿔 그리면 성능에도 도움이 된다.

 



(c) 제작/운영이 쉬움

나무/풀/이펙트 같은 반복 오브젝트는 2D 텍스처 한 장으로 수량을 많이 깔기 좋음

 

 

 


 

 

 


3) 빌보드의 종류는?



빌보드는 어느 축까지 따라 돌릴 건지에 따라 느낌이 갈린다.

(Unity 파티클도 Render Mode로 제공한다.)

 

(Unity Particle System의 Billboard Render Mode 옵션들)

 

(**Billboard = Spherical Billboard**)

 

 

[빌보드의 종류]
Spherical  : 완전 따라봄 (상하/좌우)
Vertical   : 세로 고정, 좌우만
Horizontal : 바닥에 깔림
Stretched  : 따라보며 길게 늘어남

 


 

(1) Spherical Billboard (완전 빌보드)

카메라를 상하/좌우까지 모두 따라본다.

어떤 각도에서 보더라도 항상 정면처럼 보이게 만드는 방식이다.

데미지 숫자, 월드 아이콘, 이름표, 먼 거리 임포스터(나무/배경)에서 주로 사용된다.

카메라 방향 (Pitch/Yaw) 모두 따라감
→ "정면 유지" 최우선

 


 

 

(2) Cylindrical / Vertical Billboard (세로 고정 빌보드)



Y축(세로)은 고정하고, 좌우 회전만 카메라를 따라간다.
위아래로 기울지 않아서 서 있는 대상이 자연스럽다.

 


나무/캐릭터 2D 스프라이트, 세워진 이펙트(연기 기둥 등)에서 주로 사용된다.

상하 기울기 X
좌우(Y축)만 회전
→ "서 있는 느낌" 유지


 




(3) Horizontal Billboard (바닥 빌보드)



빌보드 평면이 바닥에 깔려 있는 형태다.
위에서 내려다봐도 자연스럽게 보이도록 설계한다.

 


마법진, 바닥 타겟 표시, 바닥 연기/안개 연출에서 주로 사용된다.

 

바닥과 평행
→ "바닥에 깔리는 효과"용

 

 




(4) Stretched Billboard (늘어나는 빌보드)



기본적으로는 빌보드처럼 카메라를 향하지만,
속도/방향에 따라 길게 늘려 잔상/궤적 느낌을 만든다.

 


Unity 파티클 시스템의

Stretched Billboard는 특히 빠른 움직임을 강조할 때 자주 사용된다.

 


총알 궤적, 스피드 라인, 빠르게 튀는 불꽃/파편에서 주로 사용된다.

카메라를 향함 + 길게 늘림
→ "속도감" 연출

 

 

 


 

 

4) Unity에서 빌보드가 쓰이는 곳은?

 


(1) Particle System

Particle System의 Renderer 모듈에서 Render Mode가 

Billboard / Stretched / Horizontal / Vertical 등으로 나뉘어 있다.

 


 


(2) Terrain 풀/디테일(Grass)

Terrain의 Grass Texture(잔디 쿼드)에는 카메라를 향하도록 회전하는 빌보드 옵션이 있다.
(참고로 풀을 듬성듬성 깔면 개별 풀 덩어리가 돌아가는 것이 눈에 띄어 어색할 수 있다)

 




(3) Terrain 나무 LOD

Terrain 설정에는 나무가 일정 거리 이후 빌보드 이미지로 바뀌는 시작 거리(Billboard Start)가 있다.

(멀리서 빌보드로 전환)

 




(4) Billboard Renderer + Billboard Asset 

Unity의 Billboard Renderer는 Billboard Asset을 렌더링하며,

 SpeedTree 등에서 생성된 Billboard Asset을 가져오거나 직접 만들 수도 있다.

(LOD/SpeedTree)

 

 

 


 

 

 

5) 완전 빌보드(Spherical) 간단하게 구현해보기

 


완전 빌보드(Spherical)

(카메라를 그대로 바라보기)

 

using UnityEngine;

public class Billboard_Spherical : MonoBehaviour
{
    Camera cam;

    void Awake()
    {
        cam = Camera.main;
    }

    void LateUpdate()
    {
        if (!cam) return;

        // 완전 빌보드: 카메라를 그대로 바라봄
        // LateUpdate()에 두면 카메라 이동/회전이 반영된 뒤 따라가서 흔들림이 덜함
        transform.LookAt(cam.transform);
    }
}

Billboard_Spherical.cs

 

 

위 스크립트를 '나를 바라봐야 하는 오브젝트'에 추가하자.

 

 

 

 

내 움직임에 따라 나를 바라보는 오브젝트(Enemy)들을 확인할 수 있다.

 

 

 


 

 

6) 오늘의 한 줄 요약

 


빌보드(Billboard) 기법은 2D 쿼드를 카메라 방향으로 자동 회전시켜 항상 정면처럼 보이게 만드는 방법이다.

반응형

+ Recent posts