실사합성 작업시 Grain은 반드시 추가되어야한다. 이번에는 Grain에 대해서 알아보도록 하겠다.
- Grain의 필요성
Grain이라는 것은 실사 촬영시 카메라가 빛을 이용하여 피사체를 담으면서 생기는 현상으로 작은 알갱이의 입자들이 지글지글 거리는 느낌의 현상을 말한다. 주로 어두운 부분에서 입자들이 잘 보이고 밝은 부분에서는 잘보이지 않는다. 그래서 밤 시간대에 카메라로 촬영을 하다보면 노이즈 같은것들이 지글지글 거리는 현상이 많이 발생하는 것이다.
[Grain의 예시 - 같은 정도의 Grain이라도 어두운 곳이 더 확연히 보이는 모습이다.]
그렇다면 Grain에 대해서는 이해를 했는데 왜 굳이 이 입자들을 어딘가에 적용을 해야 할까?
이미지 예시를 들어 설명을 하자면
위와 같은 블루스크린 크로마 촬영컷이 있다면 (이 영상 역시 Grain이 보인다.)
파란 부분을 제거하여 새로운 배경을 합성하는 후반작업을 진행하여야 한다.
블루 부분을 제거하여 배경을 합성해보면
위와 같은 이미지처럼 합성이 된다. (배경의 Grain이나 Noise는 배경이미지의 상태나 시간대에 따라 다양하다)
합성 작업시 중요한 것들 (합성시 자연스러운 앵글이나 포커스, 컬러, 사이즈등등)작업은 당연히 해야하지만 무엇보다 이질감이 드는 것들중 하나는 촬영된 인물과 배경의 질감차이다. 현재 배경에는 인물촬영시 생긴 Grain이 적용되어 있지 않기 때문에 이질감이 생길 수 밖에 없는 것이다.
배경 이미지에도 인물 촬영과 동일한 Grain을 적용해보면
Grain을 추가하여 이질감이 없는 상태이다.
이와 같은 이유 때문에 합성 작업시 Grain 추가 작업은 필수라고 할 수 있다.
실사 촬영한 동영상에서는 Grain이 항상 존재한다. (적고 많음의 차이일뿐 항상 Grain이 있다)
Nuke 에서는 Grain이라는 Node가 있지만 그 노드는 합성하고자 하는 Grain의 값을 Match하기 위해 Value조절 작업을 많이 해야해서 주로 FurnaceCore 사의 F_regrain의 Match 기능을 사용하여 Grain을 적용하는 편이다.
F_Regrain노드 사용법은 추후에 [입문자를 위한 Nuke 강좌]에 업로드 하도록 하겠다.
[Nuke 의 기본 Grain 노드 - Kodak 필름의 그레인의 Preset이 있고 수치조절로 맞춰야한다.]
[F_Regrain - Grain이 있는 영상을 또 하나의 Input에 연결하여 Match작업시 수월하다.]
- Bitmap 이미지 사용시 픽셀변화
Grain을 설명하다 말고 뚱딴지 같이 왜 Bitmap 이냐 할 수 있겠지만 Regrain 노드의 올바른 위치를 알기 위해서는
Bitmap 방식을 알아야 한다.
Digital Image는 Bitmap 과 Vector 두가지 방식이 있다.
이것 역시 원론적 혹은 기본 이론에 포함 될 수 있는 거라서 넘어가도록 하겠다.
합성 작업은 대부분이 Bitmap 방식의 이미지를 사용한다. (간혹 간판 ai파일이라거나 기업ai파일을 합성할때 Vector 방식이미지를 사용하긴 하지만 극히 적은 편이다.)
Bitmap 이미지는 작은 픽셀들이 모여 표현을 한다. 그 픽셀들은 단색의 사각형이다.
[상단 이미지의 빨간색 사각형 부분을 확대해서 보면 하단 이미지 처럼 단색의 사각형들이 모여 있다는 것을 알 수 있다.]
상단의 우측 사진을 보면 단색의 사각형들의 집합이 보이는데 그래픽 툴에서 Transform을 이용하여 이동을 하면 저 사각형들이 움직이는 것이다. 이를테면 1만큼 우측으로 이동하면 사각형들이 모두 1칸씩 우측으로 이동하는 것이고 1만큼 위로 이동하면 사각형들이 일제히 1칸씩 위로 이동하는 것이다.
1이나 2 혹은 100 또는 -1, -4 등등의 정수만큼의 이동만 있다면 정말 좋겠지만 그래픽 작업을 하다보면 소수점의 움직임이 필요할 때가 있다. 특히 영상 작업시 키프레임을 적용하여 움직이는 이미지를 만들어야 할때는 소수점들이 있어야 부드러운 움직임이 연출되기에 피할 수 없는 것이다. 그렇다면 이 픽셀(사각형들을 픽셀이라고 칭하겠다) 들이 소수점의 움직임이 있을 땐 어떻게 표현을 할까?
아래 예시를 통해 설명해 보겠다.
노란색 십자가 라인이 있는 체커보드의 이미지가 있다.
이 이미지를 우측으로 0.5 픽셀, 상단으로 0.5 픽셀을 이동하면 어떻게 될까?
0.5칸의 이동을 할수 없기 때문에 서로간의 픽셀 value(컬러Value) 를 50퍼센트씩 혼합해서 표현을 한다. 위에서 설명했다시피 픽셀은 단색의 사각형이기 때문이다.
이와 비슷한 이미지 필터링 기능이 있는데
Blur 기능이다.
그래서 키프레임이 있는 애니메이션의 움직임에서는 소수점이 불가피 하지만 멈춰있는 배경을 위치 시킨다거나 Text를 위치 시킬때 소수점의 이동이나 위치는 이미지의 선예도를 떨어뜨리는 Blurring 이 될 수 있기때문에 이미지들의 디테일을 위해서는 조심하는 것이 좋다.(누크에 국한되는 것이 아니라 Bitmap 방식을 이용하는 모든 그래픽 프로그램에 해당된다.)
- Regrain Node 의 올바른 위치
Regrain을 적용시 합성하고자 하는 CG이미지의 포커스 조절(디포커스) 과 움직임(애니메이션) 작업을 마친후 가장 마지막 단계에 위치해야 한다. Grain 적용후 Defocus 를 적용하게 되면 Grain 입자 질감에도 영향을 주기 때문에 합성작업시 이질감이 생기게 된다. (아래 이미지 참조)
[디포커스 작업 후 Grain 적용]
[디포커스 작업 전 Grain 적용]
그렇다면 디포커스가 아닌 움직임과 Grain의 차이를 보면 어떨까?
[애니메이션 작업 후 Grain 적용]
[애니메이션 작업 전 Grain 적용]
애니메이션 작업을 하면 이동 값에 소수점이 생길 수 밖에 없기때문에 Grain이 적용된 이미지를 이동시 Grain의 입자 질감에도 소수점의 영향을 같이 받을 수 밖에 없다.
그러므로 Grain 은 애니메이션과 디포커스 작업 후 마무리 작업에 적용하는 것이다.
4. 화면 전체를 Degrain 후 Regrain 작업 방식은 옳지 않다.
몇몇 작업자들은 Grain Match 작업이 번거롭다는 이유로 기존에 촬영된 Grain 모두를 Degrain이나 Denoise 혹은Reduce Noise 기능으로 제거한 후 합성 작업을 마친 다음에 일괄적으로 Grain을 적용하는 경우를 본적이 있는데 이런 작업방식은 피하는 것이 좋다.
위 이미지는 실제로 촬영한 영상이다. 세가지 색의 사각형을 보면 Grain의 질감이 모두 다르다는 것을 알 수 있다.
Grain의 질감이 다른 이유는 밝기 때문이다. 가장 먼저 언급했다시피 Grain이라는 것은 피사체의 밝기에 따라 다르게 보일 수 있다.
그렇기 때문에 임의로 작업자가 모든 Grain을 제거를 하고 합성 프로그램에서 Grain을 추가 하게 된다면 실제로 촬영된
어두운톤 - 중간톤 - 밝은톤에 있던 입자들의 세기 비율과 달라질 수 있다는 것이다.
해당 컷만 재생해서 볼 땐 별다른 문제가 없지만 모든 컷들을 편집하여 다른 컷들과 함께 재생을 해보면 이런 방식의 작업 컷들의 Grain들만 다르게 보여서 이질감이 느껴질 때가 있다. 그렇기 때문에 실사 촬영본의 원본부분은 최대한 건드리지 않고 CG작업 부분만 작업 후에 Match Grain 작업을 하는 것을 추천한다. 그 작업 역시 각각의 밝기에 따라 Grain의 질감이나 세기를 맞춰야 한다.
[추가 작성]
- 화면 전체 Degrain시 원본 Plate의 Grain 을 적용하는 방법
[4]번에서 언급한 degrain이나 reduce grain작업이 이루어진 RGB 이미지에 f_regrain을 사용시 Grain의 질감이나 세기가 맞지 않기 때문에 옳지 않다라고 언급한바 있다.
하지만 원본의 Grain을 추출후에 적용을 하면 같은 질감이나 세기의 Grain을 적용할 수 있다.
원본 영상의 Grain 추출 방법은 다음과 같다. (아래 이미지 참조)
그레인이 있는 원본 이미지와 Degrain이 진행된 이미지 둘을 Merge Node의 Minus Operation을 이용해 연산을 한다.
그럼 결과는 둘 사이의 차이가 나오게 된다.
[1] 원본 영상의 Grain을 추출
아래 이미지의 Merge1 노드와 Degrain 된 이미지 둘을 Merge Node의 Plus Operation을 이용해 연산을 하면 원본과 동일한 Grain이 적용된 영상을 만들 수 있다.
[2] 원본과 동일한 Grain의 영상
지금까지 Grain의 필요성과 적용방법 그리고
올바른 적용위치와 주의해야 할 점들에 대해 알아보았다.
열심히 마친 작업들이라도 Grain 적용 부분에 실수가 생기면
이질감때문에 결과물이 어색해 질 수 있다는 점을
다시 한번 주의했으면 한다.
블로그를 보시고 질문이 있으시거나
혹은 Nuke 공부중 궁금한 점,
그리고 합성파트나 기타 질문 있으신 분들은
아래 링크를 이용해 주세요.
질문 내용과 자료들은 유튜브 영상 컨텐츠로 제작하여
공부하시는 분들과 함께 나누고자 합니다.