Houdini Copernicus Ultimate Guide 튜토리얼 정리 · 4편

블렌딩과 합성

Blend와 프리셋 노드들, Sequence Blend, Wipe, Switch 계열, Channel 분해·재조립, Premult, Chroma Key 실전 키잉 워크플로, Contact Sheet까지 컴포지팅의 중심 노드들을 다룸.

생성 · 수정 · 그윈, 코리언메시

[SOURCE] SideFX · The Ultimate Copernicus Guide | Every COP Node Explained

카테고리 houdini

#houdini#copernicus#cop#blend#compositing#chroma-key

← 목차로 돌아가기

두 개 이상의 레이어를 섞고, 전환하고, 조건에 따라 골라내고, 채널 단위로 분해·재조립하는 — 컴포지팅의 중심 노드들을 다룸. Blend와 그 프리셋들이 합성의 뼈대이고, Channel 계열 노드와 Premult가 채널·알파 처리를 담당하며, Chroma Key는 실사 키잉의 실전 워크플로 전체를 보여줌. Switch 계열은 HDA 제작까지 이어지는 조건 분기 도구임.

이 문서는 SideFX 공식 튜토리얼 The Ultimate Copernicus Guide | Every COP Node Explained를 학습하며 정리한 기록임 — 오리지널 창작물이 아니라 원본 강의 내용을 주제별로 재구성한 자료임.

요약

  • Blend: bg/fg 두 입력을 블렌드 모드(add, multiply, over, screen 등)로 합성하는 핵심 노드. Layer > Mixing의 Add/Multiply/Over 등은 전부 Blend의 프리셋. 채널별 적용 선택 가능 — 알파 채널은 꺼두는 것을 권장. Mask 입력 지원.
  • Sequence Blend: 여러 입력을 0~1 하나의 값으로 순회 — 입력 수와 무관하게 범위는 항상 0~1.
  • Wipe: wipe / cross dissolve / per pixel flip 전환. Shape 입력에 그라디언트를 넣어 커스텀 전환 형태 제작 가능.
  • Switch: 인덱스로 입력 선택. 출력 시그니처는 컴포넌트 수가 가장 많은 입력으로 승격됨. 범위 밖 인덱스는 마지막 입력 사용.
  • Switch If Wired: 상류 연결 여부로 선택(First Wired / First Unless Unwired). HDA 옵션 입력 처리용.
  • Switch by Type: 테스트 입력의 시그니처로 조건 분기. 규칙을 위에서부터 평가해 첫 매치 적용. 사실상 HDA 제작 전용.
  • Channel Split / Join / Extract / Swap: 채널 분해·재조립·단일 추출·순서 교환. Join의 alpha는 뒤에 Premult를 붙여야 반영됨 — "알파를 꽂았는데 안 보이면 Premult 의심".
  • Chroma Key: 컬러 휠 + Hue Rolloff + Luminance Range로 키잉. 실전 순서: Premult 끄고 → 매트에 Feather → Channel Join으로 재조립 후 직접 Premult → 2차 Chroma Key + Difference로 스필 영역 추출 → HSV Adjust로 desaturate.
  • Contact Sheet: 여러 입력을 격자 썸네일로 배치. 비교·검토용.

블렌드 (Blend)

두 입력(background/foreground)을 다양한 블렌드 모드로 섞는 합성의 핵심 노드임.

주요 파라미터

  • 블렌드 모드: add(빨강+파랑=보라), multiply, over, screen, difference, divide, subtract, under, maximum, minimum, overlay, UV shift 등 다수. 컴포지팅/이미지 편집 소프트웨어의 블렌드 모드와 동일한 개념임. 각 모드의 상세 설명은 노드 우상단 documentation 참조.
  • 동작 채널 선택: 우측에서 R/G/B/A 중 어떤 채널에 연산을 적용할지 선택 가능함.
  • Alpha Compositing 옵션: 각 입력의 알파를 상수 1(불투명)로 취급함.
  • Swap Foreground/Background: 두 입력을 교체함.
  • Mask 입력: 검정=1번 입력, 흰색=2번 입력. Ramp를 마스크로 쓰면 공간적으로 블렌드가 전환됨.

팁 / 워크플로

  • 프리셋 노드들의 정체: Layer > Mixing 아래의 Add, Multiply, Over, Screen, Difference, Divide, Subtract, Under, Maximum, Minimum 등 다수 노드는 사실 Blend 노드의 프리셋임(아이콘도 동일함).
  • 대표 활용: 노이즈 두 개를 multiply해 특정 영역에만 작은 노이즈 표시, minimum/maximum으로 두 입력 중 낮은/높은 값만 취함.
  • 알파 주의사항: 알파끼리 곱해지거나 블렌드되는 문제를 피하려고 보통 알파 채널은 꺼두는 것을 권장함(우측 채널 선택에서 A 해제).
  • Maximum 합성의 대표 사례: 여러 Edge Detect 변형(by Normal + by Depth)을 Maximum으로 합쳐 서로의 약점을 보완하는 패턴임.
  • Screen 합성의 대표 사례: Light 노드로 만든 라이트를 원본 C 채널 위에 Screen으로 얹어 씬을 리라이팅하는 패턴임.

시퀀스 블렌드 (Sequence Blend)

여러 이미지 간 블렌드를 하나의 값으로 순회하는 노드임.

주요 파라미터

  • Blend: 0~1 값이 전체 입력에 걸쳐 정규화됨. 입력이 몇 개든(예: 4개) 0~1로 전체를 순회함.

팁 / 워크플로

  • 이미지 전환 스위칭을 간편하게 만들 때 좋음 — 입력을 추가해도 blend 범위는 항상 0~1로 유지됨.

와이프 (Wipe)

두 입력을 와이프 형태로 전환하는 노드임.

주요 파라미터

  • Amount: 전환 진행도. 기본은 화면을 가르는 wipe임.
  • Operation: wipe / cross dissolve(디졸브) / per pixel flip(픽셀이 랜덤하게 하나씩 전환).
  • Shape 입력: 그라디언트로 전환 형태를 제어함. 기본 제공 형태: line, rectangle(밖으로 확장), circle, four corner shrink.
  • Line Width: 경계선 두께. 0으로 하면 경계선이 숨겨짐.

팁 / 워크플로

  • circle 형태는 Ramp Mono(concentric)를 shape 입력에 꽂은 것과 동등함 — 즉 커스텀 그라디언트로 임의의 전환 형태를 만들 수 있음.
  • 응용 예: Checkerboard(128×128, mono)를 램프에 Add해서 shape로 쓰면 중심에서 픽셀화되며 번지는 전환 효과가 됨.

스위치 (Switch)

여러 입력 중 하나를 인덱스로 선택하는 가장 단순한 스위치임.

주요 파라미터

  • Select Input: 출력할 입력 번호.

팁 / 워크플로

  • 입력을 연결하기 전에는 입력 타입이 미정이고, 연결하는 순간 입출력이 입력 타입에 맞춰짐.
  • 범위 밖 인덱스: 마지막 입력을 기본으로 사용함("Input N is out of range" 경고 화살표가 뜨지만 마지막 입력으로 동작함).
  • 시그니처 승격(promote) 규칙 — 중요: 출력 시그니처는 컴포넌트 수가 가장 많은 입력을 따름. 입력 중 하나를 mono로 바꿔도 다른 입력이 RGB면 전체가 RGB로 유지되고, 실제로 그 mono 입력을 선택해도 RGB로 취급됨. 하나를 RGBA로 바꾸면 모든 출력이 RGBA가 되고, UV만 있으면 출력이 UV가 됨.
  • 이 승격 특성 때문에 실제 타입이 중요한 상황 — 예컨대 자작 HDA에 값을 넣을 때 들어오는 데이터 타입에 따라 내부 기능을 분기해야 하는 경우 — 에는 아래 Switch by Type이 필요해짐.

스위치 이프 와이어드 (Switch If Wired)

입력 노드에 상류 연결이 있는지(wired) 를 검사해 선택하는 스위치임.

주요 파라미터

  • Selection Type:
    • First Wired: 연결된 것 중 우선순위가 가장 높은(앞 번호) 입력을 사용함. 첫째가 연결되면 첫째, 아니면 다음 순서로 넘어감. 둘째에 뭘 꽂아도 첫째가 연결돼 있으면 첫째를 씀.
    • First Unless Unwired: 항상 첫 입력을 쓰되, 모든 입력이 연결된 경우에만 씀. 즉 "모든 입력이 연결됐는지 확인한 뒤 첫 입력으로 진행"하는 게이트 역할임.

팁 / 워크플로

  • 예제: Null 2개(각각 다른 색 Constant를 연결할 수 있는 상태) + 스위치 구성. 아무것도 연결되지 않으면 아무 출력도 없음.
  • HDA에서 옵션 입력의 연결 여부에 따라 동작을 바꾸는 용도에 적합함.

스위치 바이 타입 (Switch by Type)

테스트 입력의 시그니처(타입) 를 검사해, 조건이 참이 되는 첫 번째 선택지를 출력하는 조건 분기 노드임. 문서에 이례적으로 "quite confusing할 수 있다"고 적혀 있을 정도지만, 기본 개념 자체는 단순함 — 입력과 스위치가 많아질 때만 복잡해짐.

주요 파라미터

  • 테스트 입력(type reference): 타입을 검사할 대상 입력.
  • 규칙(rule): 각 규칙마다 타입 목록(mono, UV, RGB, RGBA, ID 등)과 출력할 choice를 지정함. 테스트 입력의 타입이 규칙에 나열된 타입 중 하나와 일치하면 지정된 choice가 출력됨.
  • If No Matches: 어떤 규칙에도 안 맞을 때의 처리 —
    • Unwire: 미연결 노드처럼 취급(출력 없음).
    • Use Test Input: 테스트 입력 자체를 그대로 출력함.

팁 / 워크플로

  • 동작 예: 테스트 입력이 RGB인 상태에서 —
    • 규칙 타입이 RGB면 → 지정한 First Choice(예: 회색 블록)가 출력됨.
    • 규칙을 ID로 바꾸면 매치 실패 → 출력 없음. RGB로 되돌리면 다시 First Choice 출력.
  • 평가 순서: 규칙이 여러 개면 위에서부터 순서대로 평가해 처음으로 true가 되는 규칙이 적용됨. 예: 검정/흰색/50% 회색 세 선택지에서 첫 조건을 ID(false), 둘째 조건을 mono(false)로 설정하고 입력이 RGB면 세 번째(RGB 조건)가 선택됨. 첫 조건을 RGB로 바꾸면 그것이 첫 매치가 되어 첫 선택지가 출력됨.
  • if / else / if-not이 중첩되면 논리적으로 매우 복잡해 보이지만, 실제 개념은 "첫 입력에 들어온 것이 이 타입인가? 맞다면 이 값을 출력"을 위에서부터 순회하는 것뿐임.
  • 용도: 매우 특수한 노드라 HDA를 만들 때 주로 쓰게 됨 — 들어오는 데이터의 시그니처에 따라 내부 처리를 분기하는 시그니처 조건 분기용임. 그 외에는 거의 쓸 일이 없음.

채널 스플릿 (Channel Split)

RGBA를 채널별 mono로 분리하는 노드임.

주요 파라미터

  • 출력이 red / green / blue / alpha 모노로 나뉨. 기본 RGBA 대상이며 RGB를 연결하면 앞 3개만 사용됨.

팁 / 워크플로

  • 실전 예제 — 색수차(chromatic aberration): File → Channel Split → red 채널을 Transform 2D로 약간 아래로, blue 채널을 약간 위로(또는 좌우 평행이동) → Channel Join으로 재결합하면 색수차가 됨. 채널을 분리해 오프셋 후 재결합하는 패턴의 대표 사례이며 실무에서도 실제로 쓰이는 방식임. 전용 노드는 Chromatic Aberration 참조.
  • Constant(vector4) → Channel Split으로 하나의 노드에서 네 개의 값을 동시에 뽑아 다른 노드의 여러 입력에 공급하는 제어 허브로도 활용됨(Chladni Patterns의 A/B/M/N 제어 예시).

채널 조인 (Channel Join)

모노들을 R, G, B(, A)에 연결해 다시 벡터로 결합하는 노드임.

주요 파라미터

  • R / G / B / A 입력. 하나를 끊으면 해당 채널이 빠진 결과가 됨.

팁 / 워크플로

  • UV 생성 예제: Ramp Mono(concentric)를 U(red)에, Ramp Mono(radial)를 V(green)에 넣고 join하면 radial UV가 됨. Texture Sample의 UV 입력에 연결하되 signature를 UV로 맞춰야 작동함. File 텍스처를 샘플하면 방사형으로 감긴 결과가 나옴. Tile Pattern으로 방사형 타일을 만들 때 유용함.
  • Alpha 주의사항(Premult): join에서 alpha에 램프를 연결해도 화면에 바로 반영되지 않음 — 뒤에 Premult 노드를 붙여야 알파가 곱해져 보임. 알파에 뭔가 꽂았는데 결과가 안 보이면 Premult를 의심할 것. 같은 원리로 Mono to RGBA의 alpha 입력도 Premult를 거쳐야 정밀하게 컷됨(ID·세그먼트·변환 참조).

채널 익스트랙트 (Channel Extract)

드롭다운(R/G/B/A)으로 한 채널만 추출하는 노드임.

주요 파라미터

  • 채널 선택 드롭다운: R / G / B / A. 각 채널이 입력 단자와도 대응됨.

팁 / 워크플로

  • C에서 alpha만 뽑아 다른 결과에 곱해서 배경을 정리하는 패턴에 자주 쓰임(고급의 프레넬 예제 참조).

채널 스왑 (Channel Swap)

채널 순서를 교환하는 노드임.

주요 파라미터

  • 채널별 매핑 지정. 특정 채널을 0으로 만들거나 alpha를 1로 고정하는 것도 가능함.

팁 / 워크플로

  • UV의 U/V 교환 등에 유용함.
  • RGB→RGBA 출력이 필요할 때 alpha=1을 보장하는 용도로 좋음.

크로마 키 (Chroma Key)

특정 색 범위(기본 그린)를 키잉해 제거하는 노드임.

주요 파라미터

  • 컬러 휠: 제거할 색 범위를 클릭해 좁혀 지정함. 기본값은 그린 스크린을 가정하고 그린을 컷아웃함.
  • Hue Rolloff: 지정 범위 밖으로의 소프트닝. 롤오프를 주면 원래 키에 포함되지 않은 색까지 부드럽게 번져 들어옴. 보간 모드: Ease In / Ease Out / Smooth / Quintic — 롤오프의 보간 방식임.
  • Luminance Range: 지정한 휘도 범위 안의 값만 제거됨. 너무 밝거나 너무 어두워 범위를 벗어나면 제거되지 않음. Maximum을 줄이면 그 임계값 이하의 값만 제거됨.
  • Premult: 내부적으로 알파를 곱하는 방식이며 이것이 하단의 Premult 옵션임.
  • Preview: Premult를 끄고 어떤 부분이 잘리는지 미리 볼 수 있음.

팁 / 워크플로

  • 테스트에는 Ramp RGB를 infrared로 설정해 전체 색 스펙트럼을 물려 보면 어떤 색이 잘리는지 파악하기 좋음.
  • 롤오프 효과를 정확히 보려면 Null을 달아 매트(matte)만 확인하면 됨(unpremult 상태에서는 검정으로 표시됨).

실전 키잉 워크플로 (실사 푸티지 전체 과정)

  1. File 노드로 비디오(토끼 예제) 로드 → Chroma Key로 배경 색 범위를 좁힘.
  2. Premult를 켜면 원치 않는 부분까지 잘리는 경우가 많음 → Premult를 끄고 후처리로 다듬는 편이 나음.
  3. 매트에 Feather 적용 — Diamond 대신 Circle blur, high to low 방향으로 살짝 확장.
  4. Channel Split / Channel Join 활용: 원본 푸티지의 RGB 3채널 + 페더링한 새 알파를 Channel Join으로 합친 뒤 직접 Premult함 → 훨씬 부드러운 에지가 됨.
  5. 경계가 바깥으로 퍼지는 문제가 있으면 feather 방향을 low to high로 바꾸고 범위를 줄이면 됨.
  6. 에지의 그린 스필 제거: 키잉된 결과를 두 번째 Chroma Key(더 포괄적인 범위, 거의 모든 그린을 컷)에 통과 → 두 매트의 Difference 연산으로 그린이 남은 영역만 추출 → 그 영역을 마스크로 HSV Adjust에 연결해 해당 부위만 디새추레이션(desaturate)함.
  7. 새 배경 합성: Constant + Blend(over 모드)로 배경을 깔면 됨.
  8. 배경 그림자 재도입: 원본에서 RGBA to Mono로 그림자 정보를 뽑아 Constant 배경에 Blend(Overlay 등)로 곱하면 그림자가 배경에 되살아남. 이후 배경색을 자유롭게 바꿀 수 있음.
  • 재생하면 매 프레임 크로마키 + 모든 연산이 적용됨.

컨택트 시트 (Contact Sheet)

여러 입력 이미지를 격자 형태의 컨택트 시트(썸네일 모음)로 배치하는 노드임.

주요 파라미터

  • Images per line: 한 줄에 몇 개의 이미지를 넣을지. 2로 하면 2개마다 새 행으로 넘어감.
  • Max number of lines: 최대 행 수. 초과하는 입력은 표시되지 않음. 예: 입력이 4개여도 행 수를 1로 줄이면 한 행만 보임.
  • Keep full size: 비어 있는 행까지 포함해 전체 크기를 유지함. 입력 개수와 무관하게 출력 해상도를 일정하게 유지하고 싶을 때 사용함.
  • 최종 출력 해상도 축소 옵션 등도 있음.

팁 / 워크플로

  • 입력이 1개면 그 이미지 하나에 맞춰 사이즈가 잡히고, 입력을 추가할 때마다 옆 블록에 끼워 넣는 식으로 시트가 구성됨. "이미지 여러 장 꽂으면 컨택트 시트가 된다"가 개념의 전부이고, 나머지 옵션은 자명한 수준임.
  • 비교·검토 용도에 좋음: 예를 들어 Histogram 3개를 Channel Scope로 R/G/B 하나씩만 켜서 Contact Sheet로 합치면 채널별 분포를 한눈에 볼 수 있음.

Houdini Copernicus Ultimate Guide 튜토리얼 정리 · 전체 12편

  1. 00 Houdini Copernicus Ultimate Guide 튜토리얼 정리 index
  2. 01 핵심 개념
  3. 02 생성·패턴 노드
  4. 03 값 조정과 리매핑
  5. 04 블렌딩과 합성
  6. 05 색 보정
  7. 06 필터와 이펙트
  8. 07 SDF와 거리장
  9. 08 UV·왜곡·좌표
  10. 09 지오메트리·3D 연동
  11. 10 ID·세그먼트·변환 유틸리티
  12. 11 파일 입출력과 렌더 파이프라인
  13. 12 프로그래밍과 고급 기능