이번 튜토리얼은 Blender 4.3에서 사용할 수 있는 Compositing 노드 그룹을 분석하고 활용하는 두 개의 튜토리얼 중 두 번째입니다. 이 노드 그룹을 사용하면 특정 오브젝트 또는 Material만 원래 색상으로 렌더링하고, 나머지는 회색조로 마스킹하며, 선택적으로 가장자리나 오목한 부분을 강조할 수 있습니다.
영상 자막 텍스트
안녕하세요, 여러분! 이번 튜토리얼은 Blender 4.3에서 사용할 수 있는 Compositing 노드 그룹을 분석하고 활용하는 두 개의 튜토리얼 중 두 번째입니다. 이 노드 그룹을 사용하면 특정 오브젝트 또는 Material만 원래 색상으로 렌더링하고, 나머지는 회색조로 마스킹하며, 선택적으로 가장자리나 오목한 부분을 강조할 수 있습니다.
첫 번째 튜토리얼에서는 이 노드 그룹을 사용하는 방법을 설명했습니다. 이 그룹은 설명란의 링크에서 무료로 다운로드할 수 있습니다. 이번 두 번째 튜토리얼에서는 노드 그룹 내부를 살펴보며 각 효과가 어떻게 구현되었는지 알아보겠습니다.
제가 제작한 다른 많은 비디오 튜토리얼과 마찬가지로, 이 튜토리얼의 PDF 버전도 설명란의 링크에서 무료로 제공됩니다. 또한, 아직 구독하지 않으셨다면, 지금 채널을 구독하고 알림을 활성화하여 앞으로 업로드될 비디오 튜토리얼을 놓치지 마세요!
TAB 키를 눌러 노드 그룹을 열어보면, 왼쪽 열의 노드에서 효과가 구현되어 있음을 확인할 수 있습니다. 이 중 일부 노드는 실제로 노드 그룹으로 구성되어 있습니다. 오른쪽에 위치한 노드들은 이미지에 효과를 순차적으로 추가하는 역할을 합니다.

이전 튜토리얼에서 설명했듯이, 이 노드 그룹은 기본적으로 세 가지 작업을 수행합니다. 첫 번째는 특정 오브젝트 또는 Material을 분리하여 원래 색상을 유지하면서 다른 모든 요소를 회색조로 변환하는 것입니다.
두 번째 효과로, 이 그룹은 렌더에서 Ambient Occlusion 정보를 가져와 오목한 부분과 가장자리를 강조합니다.
세 번째 효과로, 이 그룹은 필터를 사용하여 다른 디테일을 더욱 강조합니다. 특히, 기하학적 형태보다 Textures에 존재하는 디테일을 더욱 강조하는 데 사용됩니다.
입력된 ID와 일치하는 요소를 이미지의 나머지 부분과 분리하고 색상을 유지하기 위해, 원본 이미지는 ID 입력에서 생성된 마스크와 곱해집니다. 그런 다음, 동일한 ID 마스크를 Alpha 투명도로 사용하여 이 단계에서는 투명한 배경 위에 색상이 유지된 렌더링 일부만 남게 됩니다.

원본 렌더링 전체를 회색조로 변환하기 위해, Image에서 가져온 정보는 Grayed Contrast 및 Grayed Brightness 데이터와 함께 Grayed Base 서브그룹으로 전달됩니다.
이 서브그룹 내부에서는 Hue Saturation Value 노드를 사용하여 이미지의 채도를 0으로 설정해 흑백 이미지로 변환합니다. 그런 다음, Brightness Contrast 노드를 사용하여 이 이미지의 밝기와 대비를 조정합니다.

이렇게 변환된 이미지에는 이후에 Ambient Occlusion이나 Laplace 필터에서 가져온 디테일 레이어가 순차적으로 적용됩니다. 이에 대해서는 곧 살펴보겠습니다.
최종적으로, 이러한 추가 효과가 적용된 회색조 이미지는 Grayed 입력값에 의해 강도가 조절됩니다. 이 입력값은 0에서 100 사이의 숫자로, 100으로 나누어 Alpha Over 노드의 Factor로 사용됩니다.
이 Alpha Over 노드에서 첫 번째 Image 입력은 완전한 투명 이미지로, 검은색 배경에 Alpha가 0으로 설정되어 있습니다. Grayed 값이 0이면 이 완전한 투명도만 적용됩니다. Grayed 값이 100%일 때는 100을 100으로 나눈 값이 1이므로, Alpha Over의 Factor가 1이 되고 회색조 이미지만 사용됩니다. 중간값에서는 자연스럽게 두 이미지가 혼합됩니다.

Alpha Over 노드에서 출력된 이미지는 이제 회색조 베이스가 되며, 여기에 올바른 ID와 일치하는 요소의 컬러 이미지가 적용됩니다. 이 과정은 두 번째 Alpha Over 노드를 사용하여 수행됩니다.
이제 처리 흐름이 명확해졌으므로, 가장자리와 오목한 부분을 강조하는 데 사용되는 Ambient Occlusion 및 Laplace From Image 서브그룹이 수행하는 작업을 살펴보겠습니다.
이를 자세히 분석하기 전에, 이 서브그룹들은 흑백 마스크를 생성한 후, 이 마스크를 순차적으로 회색조 렌더링과 곱하여 적용한다는 점을 언급하고 싶습니다. 이미지에 또 다른 회색조 이미지를 곱하면, 두 번째 이미지가 점점 더 어두워지는 영역에서 원본 이미지가 효과적으로 어두워집니다.
곱셈 연산의 Factor 입력 앞에 있는 Divide 노드들은 단순히 입력값을 0 1 범위로 변환하는 역할을 합니다. 사용 편의성을 위해 퍼센트 값으로 표현했기 때문에 이를 다시 0 1 범위로 맞추는 것입니다. 이제 남은 두 개의 서브그룹을 자세히 살펴보겠습니다.
Ambient Occlusion 서브그룹의 처리 단계와 출력을 분석하기 위해, 이 서브그룹의 출력을 직접 메인 그룹의 출력에 연결하겠습니다.
Ambient Occlusion 그룹은 Render Layers에서 가져온 Ambient Occlusion 데이터를 입력으로 사용하며, Gamma Boost라는 숫자 값을 추가 입력으로 받습니다. 이 값은 Ambient Occlusion 마스크를 더욱 강조하는 역할을 합니다.

Ambient Occlusion 데이터는 먼저 Denoise 노드로 전달되어 노이즈를 줄입니다. 그런 다음, Laplace 모드로 설정된 Filter 노드로 보내어 가장자리를 강조합니다.
Laplace 결과는 밝은 가장자리와 어두운 배경을 보여주지만, 우리는 반대의 효과가 필요합니다. 회색조 이미지와 곱할 때 가장자리를 더 어둡게 만들기 위해, 어두운 가장자리가 필요하기 때문입니다. 따라서 Laplace 출력은 Invert Color 노드로 보내어 반전한 후, Gamma 노드를 거쳐 사용자가 설정한 Gamma Boost 값에 따라 어두운 영역을 더욱 강조합니다.

그다음, Dilate Erode 필터를 적용하여 어두운 영역을 약간 확장합니다. 이는 선이 끊어질 수 있는 부분에서도 연속성을 유지하도록 돕습니다.

이제 Ambient Occlusion 서브그룹에서 빠져나와 Laplace From Image 서브그룹의 출력을 메인 그룹의 출력에 직접 연결하여 그 처리 과정과 최종 결과를 살펴보겠습니다.
Laplace From Image 서브그룹 내부 구조는 Ambient Occlusion 서브그룹과 매우 유사합니다. 여기에서도 Filter Laplace, Denoise, Invert Color, Dilate Erode 노드가 존재하며, Ambient Occlusion 서브그룹에서 설명한 것과 동일한 작업을 수행합니다.

하지만 이 경우, 첫 번째 단계로 Hue Saturation Value 노드가 사용되며, Saturation 값이 0으로 설정되어 입력 이미지를 회색조로 변환합니다. 이 단계는 Ambient Occlusion에서는 불필요했는데, 그 데이터는 이미 회색조로 제공되기 때문입니다.
회색조 이미지는 먼저 Laplace 필터를 통해 처리된 후, Denoise 노드를 거쳐 노이즈를 제거합니다.

이 서브그룹의 두 번째 핵심 요소는 Greater Than 노드입니다. 이 노드는 기본적으로 임계값 역할을 하며, 특정 값보다 낮은 모든 회색 영역을 검은색으로 만들고, 그 외의 영역은 흰색으로 변환합니다.

이렇게 생성된 마스크는 검은색 배경에 흰색 가장자리를 가지므로, Invert Color 노드를 사용하여 색을 반전한 후, Dilate Erode 노드를 적용하여 Ambient Occlusion 서브그룹과 마찬가지로 선 사이의 끊김을 줄입니다.

정리하자면, 이미지는 먼저 Grayed Base 서브그룹을 통해 회색조로 변환됩니다.

그런 다음, 생성된 이미지는 Ambient Occlusion 및 Laplace 서브그룹에서 생성된 마스크들과 순차적으로 곱해집니다.


최종적으로 만들어진 이미지는 Alpha Over 노드에서 Grayed 입력값에 따라 투명도가 결정됩니다.

마지막으로, 올바른 숫자 ID를 가진 요소(오브젝트 또는 Material)의 컬러 이미지가 이 결과 위에 오버레이됩니다.

이번 튜토리얼은 여기까지입니다! 도움이 되셨기를 바랍니다. 곧 다시 만나요!