[1] 디지털 라이트의 분류
당연하게도 실제 세상의 빛을 그대로 컴퓨터 그래픽으로 표현하는 것은 많은 무리가 따릅니다.
특히나 실시간으로 연산해야하는 게임에서 빛을 가볍게 처리하면서도 상대적으로 품질이 떨어지지 않을 것이냐는 매우 중요한 문제입니다.
또한, 게임에서는 상당히 많은 종류의 하드웨어에서 구동되기 때문에 쉐이더를 작성하는 사람들은 하드웨어 기기의 특성까지 파악해두어야 합니다.
우선 먼저 알아야할 것은 컴퓨터 그래픽에서 처리하는 라이트의 종류와 특성입니다.
대부분의 3D 프로그램이나 엔진은 다음 3가지 종류의 라이트를 기본적으로 지원합니다.
하나씩 알아보겠습니다.
- 디렉셔널 라이트 (Directional light)
- 포인트 라이트 (Point light)
- 스팟 라이트 (Spot light)
1. 디렉셔널 라이트 (Directional light)
- 디렉셔널 라이트는 직진성을 가진 조명입니다.
이 라이트가 가지고 있는 정보는 라이트의 강도와 컬러 등의 정보를 제외하면 '방향' 밖에 없습니다.
시작점도 없고 끝점도 없으며 라이트를 조사하는 넓이의 개념조차 없기 때문에 라이팅 계산에서 가장 가벼운 라이트로 통합니다. 그래서 게임에서 가장 가벼운 라이트를 하나만 써야 한다면 디렉셔널 라이트일 확률이 가장 높습니다.
2. 포인트 라이트 (Point light)
- 포인트 라이트는 점(Point) 모양의 광원입니다.
사방으로 뻗어 나가는 특성이 있기 때문에 둥근 모양의 라이트 혹은 일정 범위의 국지적 분위기를 표현하기 위한 목적으로 많이 사용됩니다. 디렉셔널 라이트보다 무겁기 때문에 성능에 신경을 쓰면서 작업해야합니다.
3. 스팟 라이트 (Spot light)
- 말 그대로 스팟 라이트입니다.
특정한 부분을 강조하거나 표현할 때 사용하며, 역시 성능을 생각하면서 사용해야하는 라이트입니다.
이외에도 각 엔진과 프로그램의 특성에 따라 다른 라이트가 있을 수 있습니다만, 대부분 많이 사용되는 라이트는 이 3가지라고 할 수 있습니다. 그리고 이렇게 3가지의 라이트 중에서 가장 가볍고 많이 사용되는 조명은 디렉셔널 라이트 (Directional light) 입니다.
'- Programming > - 개념 잡기' 카테고리의 다른 글
★ 20. 동기화/비동기화란? (0) | 2017.03.29 |
---|---|
★ 19. 객체지향 vs 절차지향 차이점 (0) | 2017.03.11 |
★ 18. SocketAsyncEventArgs 클래스 (0) | 2017.02.25 |
★ 17. 가비지 (Garbage) (0) | 2017.02.08 |
★ 16. c++/c# 구조체와 클래스의 차이 (0) | 2017.02.08 |