본문 바로가기

Unity3D C#/유니티 쉐이더 공부

디지털 라이트의 분류

실제 세상의 빛을 그대로 컴퓨터 그래픽으로 표현하는 것은 많은 무리가 따름. 실시간으로 연산해야 하는 게임에서 빛을 가볍게 처리하면서도 상대적으로 품질이 떨어지지 않을 것이냐는 매우 중요한 문제. 또한, 게임은 상당히 많은 종류의 하드웨어에서 구동되기 때문에 쉐이더를 작성하는 사람들은 하드웨어 기기의 특성까지 파악해두어야 함. 그래서 쉐이더는 공부하면 공부할수록 어렵게 느낀다고 함. 

대부분의 3D 프로그램이나 엔진은 다음 3가지 종류의 라이트를 기본적으로 지원함.

-디렉셔널 라이트(Directional Light)

-포인트 라이트(Poing Light)

-스팟 라이트(Spot Light)


디렉셔널 라이트(Directional light)

디렉셔널 라이트는 직진성을 가진 조명입니다. 이 라이트가 가지고 있는 정보는 라이트의 강도와 컬러 등의 정보를 제외하면 '방향'밖에 없습니다. 시작점도 없고 끝점도 없으며 라이트를 조사하는 넓이의 개념조차 없기 때문에 라이팅 계산에서 가장 가벼운 라이트로 통함. 게임에서 가장 가벼운 라이트를 하나만 써야 한다면 디렉셔널 라이트일 확률이 가장 높음.

상대적으로 제일 가볍고 직진성의 특징 때문에 주로 태양을 시뮬레이트하거나 그림자를 만들어낼 때 주로 사용됨


포인트 라이트(Point light)

포인트 라이트는 점(Point) 모양의 광원이며, 사방으로 뻗어 나가는 특성이 있기 때문에 둥근 모양의 라이트 혹은 일정 범위의 국지적 분위기를 표현하기 위한 목적으로 많이 사용됨. 디렉셔널 라이트보다 무겁기 때문에 성능에 신경을 쓰면서 작업해야 함.


스팟 라이트(Spot light)

모양대로 스팟 라이트. 특정 부분을 강조하거나 표현할 때 사용하며, 역시 성능을 생각하면서 사용해야 하는 라이트임.


이외에도 각 엔진과 프로그램의 특성에 따라 다른 라이트가 있을 수 있지만, 대부분 많이 사용되는 라이트는 이 3가지라고 할 수 있음. 이 3가지 라이트 중에서 가장 가볍고 많이 사용되는 조명은 디렉셔널 라이트.