꽃미남 프로그래머 김포프가 창립한 탑 프로그래머 양성 교육 기관 POCU 아카데미 오픈!
절찬리에 수강생 모집 중!
프로그래밍 언어 입문서가 아닌 프로그래밍 기초 개념 입문서
문과생, 비전공자를 위한 프로그래밍 입문책입니다.
jobGuid 꽃미남 프로그래머 "Pope Kim"님의 이론이나 수학에 치우치지 않고 실무에 곧바로 쓸 수 있는 실용적인 셰이더 프로그래밍 입문서 #겁나친절 jobGuid "1판의내용"에 "새로바뀐북미게임업계분위기"와 "비자관련정보", "1판을 기반으로 북미취업에 성공하신 분들의 생생한 경험담"을 담았습니다.

SKY Color에 대하여.

아트 2012. 2. 5. 01:55
Posted by Silverchime

T모사의 뭐든 궁금해 하는 배경아티스트/TA Silverchime 입니다. 1월에 프레넬에 대한 글을 쓰고 나서 심하게 앓은 덕분에 중간에 본의아니게 심한 감기에 걸려 한번 쉬게 되었네요. (7킬로나 빠지는 대 난관이었습니다! ㅠㅠ) 요즘 날씨가 많이 춥습니다.  건강이 최고에요 훌쩍...

오늘은 하늘의 색에 대해서 알아보도록 하겠습니다. 배경하시는분들은 최근 Time of day라던지 해서 직접 칼라를 잡으실 일도 많지요. 월드라이팅 할때 스카이 컬러를 어떤식으로 잡을지 고민을 많이들 해보셨을 듯 합니다. 혹시나 저처럼 궁금하셧을 분들을 위해 하늘, 또는 대기의 색이 어떤식으로 발현되는지에 대해 알아보겠습니다.

대기란

대기란 가스분자와 다른 지구를 둘러싼 물질들의 혼합체입니다. 질소(78%) 산소(21%) 아르곤, 그 외에  수분(기화상태, 물방울, 눈입자로 존재) 등이 있습니다. 미량의 다른 개스들과, 작은 고형입자들, 먼지나 그을음, 재, 꽃가루,심지어 바다에서 나온 염분도 포함됩니다.

대기의 구성 성분은 위치에 따라서도 다르고 날씨나 다른 조건에도 영향을 받습니다. 공해는 그을음이나 먼지, 다른 개스등을 추가하며, 화산, 근처에 물이 있거나 눈비 오는 상태에 따라서도 달라지기때문에 딱히 대기! 라고  한번에 말하기엔 약간 추상적일 수도 있습니다.

중요한 점은 대기는 중력의 영향을 받으므로 지상에 가까울수록 밀도가 높아지고 고도가 높아질수록 극히 희박해진다는 점입니다.( 이러한 이유로 사실상 어디까지 대기이고, 우주인지 명확한 구분점이 없습니다.) 또한 균일하게 희박해지는것이 아니라, 지표면 근처에 대부분이 존재하고 고도에 따라 빠르게 감소하죠.

빛의 성질 : 라이트웨이브

빛은 파동상태로 방사되거나 이동하는  에너지의 한 종류입니다. 많은 종류의 에너지가 파동상태로 이동합니다. 일례로 음파는  공기의 파동입니다. 마찬가지로 빛은 전자와 자기장의 파동(전자기파 Electromagnetic radiation)으로 설명할 수 있습니다.
가시광선을 비롯한 여러 파장의 빛은 전자기파의 일부인 것입니다.  말이 어려운데 이 글에서는 그냥 빛은 파동이라고 생각하시면 되겠습니다 ^^ 양자물리학은 약간 접어놓기로 하죠.

전자기파는 공간을 약 초속 30만km로 이동합니다 이걸 광속lightspeed이라고 부릅니다.

방사되는 에너지는 파장과 진동수로 표현됩니다. 파장은 사이클의 한 반복, 즉 톱또는 보톰사이드간의 거리가 되겠습니다. 진동수는 초당 몇번 진동하느냐 겠지요. 파장이 길어질수록, 진동수는 낮아집니다. 그리고 상대적으로 적은 에너지를 가지게 됩니다.


빛의 색

가시광선은 위에서 언급한 전자기파 중 우리 눈이 감지할 수 있는 스펙트럼 부분을 말합니다. 태양빛이나 전구의 빛을 프리즘으로 분리하면 여러가지 색의 빛이 나오지요. 흔히 말하는 무지개 색입니다.

분리된 색상은 연속적으로 이어지며 블렌드 됩니다. 색이란 결국 다른 파장wavelength과 진동수frequency, 그리고 다른 에너지량을 의미합니다.
보라색은 가시광선중 가장 짧은 파장을 가지며 가장 높은 진동수와 에너지를 가지고 있다고 할 수 있습니다. 반면에 적색은 가장 긴 파장을 가지며 가장 낮은 진동수와 에너지레벨을 가집니다.


내 푸른색 광선검 에너지 레벨이 더 높다고! 붉은색 꺼져 시빠!
(뻥입니다... Orz)

공기중의 빛의 이동

빛은 진공에서 방해받지 않는 한 직진합니다. 그러나 공기 중, 대기를 이동할 때에는 가스 분자들과 먼지등과 계속해서 충돌합니다. 그리고 그 충돌하는 대상의 크기에 의해 여러가지 다른 형태로 반응하게 됩니다.

물방울은 가시광선 파장보다 큽니다. 이러한 큰 파티클에 부딛치게 되면, 여러 방향으로 반사되거나 튕겨나가게 됩니다. 이렇게 큰 분자에 대해서는 다양한 색의 칼라가 모두 다 공통되게 반사되므로 이러한 형태의 반사된 빛의 색은 흰색으로 보입니다. (맑은 날 구름의 색을 기억해 보세요.)

기체분자는 빛의 파장보다 작습니다. 이런 작은 크기의 입자에 빛이 부딛히게되면 다른식으로 반응합니다. 충돌했을 때, 일부가 흡수되고 잠시 후 기체분자에서 다시 방출됩니다. 이때 반사되는 색은 흡수한 색과 동일하며 여러가지 색이 다 다르게 흡수와 방출을 하게 됩니다. 여기에는 법칙이 하나 존재하는데, 높은 진동수(푸른색)이 낮은진동수, 즉 적색보다 더 강하게 산란됩니다. 이것을 레일레이 스캐터링 Rayleigh scattering 이라고 부릅니다.

대기에서 레일레이 스캐터링의 공식은 다음과 같으며,
중요한 내용은 빛의 산란의 강도는 파장의 네제곱에 반비례한다는 것입니다.

즉 파장이 길수록, 진동수가 낮을수록(적색,오렌지색 계열) 적게 산란되며(투과됨)
파장이 작고 진동수가 높고 에너지가 클수록(푸른색 계열) 강하게 산란 되겠지요.


왜 하늘은 푸를까요?

레일레이 산란공식에 따르면, 빛이 대기중을 이동하면서 파장이 긴, 적색, 오렌지색, 노란색의 빛은 거의 투과되어 버립니다. 그러나 짧은 파장인 푸른색은 기체분자에 흡수되었다가 다시 전방위로 방출하면서 흡수된 색을 다시 내보냅니다. 이러한 이유로 하늘, 대기의 색은 푸른색으로 보입니다.

 그러나 지평선에 가까워지면서 파란색은 점점 약해집니다. 이유는 지평선에 도달하면서 더 많은 대기를 투과해야 하므로 그 과정에서 또다른 산란과정을 거치게 되고, 눈까지 도달하는 푸른색의 일부분이 소실되어버립니다. 지평선에 가까워질수록 흰색에 가깝게 옅어집니다.



우주에서는 충돌해서 산란될 기체분자가 없으므로, 우리눈에 도착하는 산란된 색상의 빛도 없습니다.
우주에서 빈 우주가 검은색으로 보이는 이유입니다.
 

우주가 어두워서가 아니라, 단지 방해하는 것이 없어 산란되지 않을 뿐...
거기에도 빛은 당연히 존재합니다.

왜 그렇다면, 보라색 하늘이 아닌가요

파장이 더 짧은 바이올렛 웨이브는 더 빨리 산란되어 소실되는데다가, 인간 눈의 보라색의 응답도가 비교적 낮은 부분도 역할을 합니다. 안그래도 약한 보라색 칼라 강도인데다 보라색은 Blue+Red의 조합이므로 파란색에 미세한 붉은기가 첨가된 정도로밖에 느껴지지 못하게 됩니다.

실제 무지개에서도 보라색은 선명하게 보이지 않습니다. 

Response curves for the three types of cone in the human eye
파장에 따른 인간 눈의 시각적 민감도

저녁 노을이 빨간 이유

하루의 시간이 지나 태양의 고도가 낮아지게 되면, 빛은 우리 눈에 도착하기 위해 훨씬 더 두텁고 긴 대기층을 통과해야 합니다. 위 대기항목에서 언급한 것처럼 대기는 균일하게 분포되어 있는 것이 아니며 낮은 곳에 대부분의 공기가 존재하는 이유로 더 극대화된 결과를 냅니다. (대략 낮보다 약 40배를 통과해야 합니다!) 그 결과로 푸른색은 거의 산란되어 우리 눈에 닿지 않게 되고 파장이 긴 붉은색,, 오렌지색, 노란색만이 우리 눈에 들어오게 됩니다.  


담배연기의 색

담배연기색을 혹시 기억하시나요.
보통 하얀색이라고 떠올리시는 분들이 많은데, 사실 담배연기의 색은 옅은 푸른색을 띱니다.
(인터넷에 tobacco smoke라고 검색해 보세요 ^^)

자세히 빛을 주고 관찰하면 옅은 파란색+그레이를 합친 색입니다.
이 역시 빛이 산란하면서 파장이 작은 푸른색이 산란되면서 나타나는 현상입니다.

단지 빛이 산란된 칼라이므로 입자의 본래 칼라를 반영하지 않습니다.
실제의 담배연기 입자는 노란색입니다. 손수건에 불어 본 예.

아주 미세한 공기 분자에 산란되는 현상은 레일레이 공식을 따르지만,
위에서 예시한 담배연기와 같은 에어로졸이나 콜로이드와 같이 공기분자보다는 크지만, 여전히 빛의 파장에 따라 빛이 색상이 다르게 산란되는 현상을 틴들 현상/산란Tyndall scattering 이라고 합니다. 틴들 산란은 일반적으로 레일레이 산란보다 훨씬 강력하게 나타납니다. 틴들 이펙트는 레일레이 공식과 ‘비슷하게’ 나타나지만 입자크기와 각 형상이 너무나 다르므로 수학적으로 이를 정확히 규정하는 '확실한absolute 공식'은 존재하지 않습니다.



구름의 색

40나노미터 급의 공기분자나 콜로이드 에어로졸 등은 빛의 파장보다 낮으므로 다르게 투과 또는 산란되며 칼라에 영향을 받았습니다. 그러나 공기중에서 구름을 구성하는 water ice는 빛의 파장보다 훨씬 큽니다. (90-100나노미터) 이런 경우에는 파장의 길이에 영향을 거의 받지 않고 모든 빛 성분이 반사됩니다. 이를 Mie scattering 미 산란 이라고 하며 하얀색으로 산란됩니다. 이런 이유로 구름은 일반적으로 하얀 색을 띠게 됩니다. 아주 두터운 먹구름은 그림자를 드리우므로 검습니다만...


모래먼지의 색

40 나노미터 이하부터 물 입자 크기까지 알아보았습니다.  자 그럼 공기중에 이보다 더 큰 입자가 있을까요?
네 당연히 있습니다. 바로 샌드 / 더스트 들입니다.
750 나노미터급 이상이 되면 이때부터는 Mie 산란도 아닌 파티클 본연의 칼라에 영향을 받게 됩니다. 

시드니를 덮친 먼지는 철Fe성분이 많이 들어간 적색 먼지입니다. 아래는 말그대로 모래폭풍(샌드스톰)이지요.
이는 빛의 산란과는 관계없는 입자 본연의 색이 표현된다고 보시면 됩니다.

많이들 보셨겠지요 ^^ MI:3 중의 샌드스톰입니다. 모래의 노란색 이지요.

결론

-빛은 에너지레벨, 파장, 진동수에 따라 특정 가시광선대역을 가진다.
-공기중 입자의 크기가 아주 작은 기체분자 Gas molecules에 충돌하면 레일레이 공식에 따라 짧은 파장(푸른 계열)의 산란이 더 크게 나타나며, 이것이 하늘의 색을 푸르게 보이게 한다.
-에어로졸이나 콜로이드급 역시 위와 같은 이유로 푸른색으로 보이며 이를 틴들 산란이라 한다.
-라이트웨이브보다 큰 경우 Mie 산란이라 하며 모든 칼라를 반사, 하얀색으로 산란된다.
-750 나노미터 이상의 큰 공기속의 입자는 파티클 본연의 칼라를 가진다. 


산란될 것이 없는 검은 우주부터, 공기가 산란되기 시작하는 푸른 부분,
지평선 부분의 옅은 푸른색들이 보이신다면 이미 오늘 내용은 마스터하신거네요.

맑은 하늘만큼 가슴시원해지는 것도 없겠지요. 오늘도 즐거운 주말, 행복한 하루 되세요 ^^ 


P,S 화성은 산화철이 많이 함유된 모래폭풍 때문에 하늘이 붉지만,
이산화탄소로 이루어진 대기가 '매우 희박'하기 때문에 노을은 오히려 파랗다는 보고가 있네요.

화성의 파란 노을. 출처 : NASA




 

 

댓글을 달아 주세요

  1. Favicon of https://gamedevforever.com Silverchime 2012.02.05 09:26 신고  댓글주소  수정/삭제  댓글쓰기

    아... Lighshaft/Godrays/Crepuscular rays를 빼먹었네요 흑... 나중에 할께요.

  2. Favicon of http://bluekms21.blog.me 크로스 2012.02.05 14:56  댓글주소  수정/삭제  댓글쓰기

    그래픽스 글이긴 하지만 과학다큐를 보는것처럼 흥미진진하고 재밌게 잘 읽었네요.
    앞으로도 좋은 내용 부탁드립니다.

  3. Favicon of https://gamedevforever.com zinzza 2012.02.05 15:01 신고  댓글주소  수정/삭제  댓글쓰기

    7k나 빠지셨다니...
    부럽습니다-o-

  4. 우왘 2012.02.05 19:07  댓글주소  수정/삭제  댓글쓰기

    재밋게 읽었습니다ㅋ

  5. Favicon of https://gamedevforever.com 대마왕J 2012.02.05 22:22 신고  댓글주소  수정/삭제  댓글쓰기

    우왕 모르는게 없는 실버치매님!!!
    건강 조심하세요!!!

    • Favicon of https://gamedevforever.com Silverchime 2012.02.06 11:36 신고  댓글주소  수정/삭제

      아뇨 저도 사실 어설프게 알던거 이번에 공부하면서 알게된 부분이 많습니다. Time of day 이런거 좀더 재미있게 작업할 수 있을거 같아요. 네 아픈데 장사없네요 ㅠㅠ 몸관리도 일도 더열심히 할께요~

  6. Favicon of http://blog.naver.com./sorkelf 풍풍풍 2012.02.05 23:53  댓글주소  수정/삭제  댓글쓰기

    좋은 글 잘 읽었습니다
    언제나 많이 도움 되고 있습니다~
    건강이 우선입니다 건강 잘 챙기세요 __)

  7. Favicon of http://twitter.com/mediahazard 미뎌 2012.02.06 13:41  댓글주소  수정/삭제  댓글쓰기

    오 실버치매님... SWTOR 레벨이 잘 안오르시길래 뭔 일 있나 했더니 이런 걸 준비하고 계셨군요!

  8. Favicon of https://gamedevforever.com quvelab 2012.02.07 08:58 신고  댓글주소  수정/삭제  댓글쓰기

    좋은 글 감사합니다. 예전 프로젝트에서 프리렌더 GI용으로 라이트맵을 굽는데 그림자를 까맣게만 뽑아서 얘기 나눠보니.. 그림자가 까맣잖아요? 라고 대답이 돌아와서;; (의외로 라이트맵=그림자=까맣..의 작업자가 많았음;;;;) 설득하느라 힘들었던 적이 있는데.. 빛의 산란과 투과에 대해 모르더라도 자연스러운 (혹은 자연스럽게 과장된) 일반적 표현 방식에 대한 얘기도 비슷한 맥락에서 한번 해주셨으면 좋겠습니다~ :)

    • Silverchime 2012.02.07 10:33  댓글주소  수정/삭제

      엠비언트 칼라 말하시는거네요 ^^ Global illumination과 엮어서 한번 언제 다뤄보겠습니다.
      읽어주셔서 감사합니다 ^^

  9. Favicon of https://gamedevforever.com 죠쉬 2012.02.07 16:26 신고  댓글주소  수정/삭제  댓글쓰기

    헐~ 정말 대단한 글 이네요
    ㅡ,.ㅡb
    최곱니다.

  10. Favicon of http://hokoodo.lil.to 호빵 2012.02.09 17:21  댓글주소  수정/삭제  댓글쓰기

    정말 주옥같은 강의네요.
    앞으로도 꾸준히 좋은 내용을 전도(?)하여 주소서...

    7킬로 빠지신 건 부럽지만, 빨리 완쾌하시기 바랍니다. ^^

  11. Favicon of http://ohyecloudy.com ohyecloudy 2012.02.14 11:55  댓글주소  수정/삭제  댓글쓰기

    설명을 쉽고 재미있게 하셔서 잘 읽었습니다. 감사합니다.

  12. Favicon of http://blog.wimy.com zelon 2012.03.13 12:52  댓글주소  수정/삭제  댓글쓰기

    클라이언트쪽도 아니고, 공식에도 약하지만, 제 상식에는 헛갈리는게 있어 질문드립니다 ^^;;

    "레일레이 산란공식에 따르면, 빛이 대기중을 이동하면서 파장이 긴, 적색, 오렌지색, 노란색의 빛은 거의 투과되어 버립니다. 그러나 짧은 파장인 푸른색은 기체분자에 흡수되었다가 다시 전방위로 방출하면서 흡수된 색을 다시 내보냅니다. 이러한 이유로 하늘, 대기의 색은 푸른색으로 보입니다."

    위 문장에서 파장이 긴 색은 투과되어 버리므로, 눈에 들어오는 것은, '투과된' 적색, 오렌지색, 노란색이 와서, '투과된' 색상으로 눈에 보일거 같은데, 왜 흡수되었다가 다시 나오는 색이 보이는건가요? @.@

    • Favicon of https://gamedevforever.com Silverchime 2012.03.18 23:20 신고  댓글주소  수정/삭제

      투과되어 관찰자의 눈에 들어오지 않기 때문입니다. 대기 중간, 즉 관찰자의 머리위를 스쳐 지나간다면 투과되어서 그 방향이나 우주로 다시 날아가 버리기 때문입니다. 결국, 관찰자의 눈으로 들어오지 않게 되어 버리지요. 따라서 볼 수가 없습니다. 우리가 보는 하늘의 빛이란, 태양에서 날아오는 광선을 보는 것이 아니라, 태양빛이 기체분자에 레일레이 산란되며 흩뿌리는 푸른 빛을 보는 것입니다. 빛이 만일 푸른색으로 산란을 하지 않고 이 또한 다른 색처럼 투과해 버린다면, 결국 우리에게 하늘은 우주와 같이 검은 밤하늘처럼 보이겠지요 ^^

    • Favicon of https://gamedevforever.com Silverchime 2012.03.18 23:20 신고  댓글주소  수정/삭제

      대기가 거의 없는 행성이나 희박한 곳, 즉 달과 같은 곳의 표면에서 하늘이 왜 검은지도 이와 같이 설명할 수 있습니다. 빛이 산란이 아니라 투과가 되어버리니... 대기가 있어도 그걸 느낄 방법이 없는 것이지요. 따라서 해당 환경에서 하늘은 아주 맑은 밤하늘처럼 수많은 별과 성운들만이 보일 것입니다.

    • Favicon of https://gamedevforever.com 대마왕J 2012.03.18 23:43 신고  댓글주소  수정/삭제

      그렇죠. 빛은 결국 눈에 들어와야 느껴지는 거니까요. 다 날라가 버리는 색상은 무효!!

  13. Favicon of http://blog.wimy.com zelon 2012.03.19 00:45  댓글주소  수정/삭제  댓글쓰기

    @Silverchime, 대마왕J 님 감사합니다.