Houdini Copernicus Ultimate Guide 튜토리얼 정리 · 2편
생성·패턴 노드
Constant, Fractal Noise, Worley Noise, Ramp, Tile Pattern, Hex Tile, Font, Chladni Patterns, Julia Fractal 등 텍스처 제작의 출발점이 되는 생성기 계열 노드를 다룸.
[SOURCE] SideFX · The Ultimate Copernicus Guide | Every COP Node Explained
카테고리 houdini
이 장은 COP에서 이미지·패턴을 처음 만들어내는 생성기(generator) 계열 노드를 다룸. 단색을 만드는 Constant부터 노이즈, 램프, 타일, 폰트, 클라드니 도형, 줄리아 프랙탈까지 텍스처 제작의 출발점이 되는 노드들임. 이 노드들의 출력은 이후 값 리맵, 블렌드·컴포지트, SDF 등 모든 후속 처리의 재료가 됨.
이 문서는 SideFX 공식 튜토리얼 The Ultimate Copernicus Guide | Every COP Node Explained를 학습하며 정리한 기록임 — 오리지널 창작물이 아니라 원본 강의 내용을 주제별로 재구성한 자료임.
요약
- Constant: 단색/플랫 값 생성. vector4 + Channel Split 조합으로 파라미터 4개를 한 노드에서 제어하는 허브로도 씀.
- Size Reference: 특정 레이어의 해상도(레이어 프로퍼티) 정의. 노이즈·Julia 등의 시작점 입력으로 사용함.
- Fractal Noise: COP 최중요 생성 노드. Amplitude/Center/Contrast/Element Size/Octaves/Lacunarity/Roughness 제어. Tile Size 구조 덕에 기본 상태에서 seamless. 3D 옵션으로 시간 애니메이션·루프 가능. Fractal Noise 3D는 vector3(월드 위치 origP) 샘플링용 — seam 없는 텍스처 제작의 핵심.
- Worley Noise: 셀룰러 노이즈 전용. F1/F2/border/center/id를 개별 출력함.
- Ramp (Mono/RGB): 그라디언트 생성. position 입력은 0~1이 아니라 -1~1을 기대 — Remap 후 연결이 표준 패턴. 반복은 Outside Range를 repeat으로 바꿔야 보임.
- Checkerboard: 체커보드 패턴. 주로 테스트·마스크 재료.
- Tile Pattern: 타일 패턴 + ID·UV 동시 출력. 다수 패턴 타입, prune/split/jitter 옵션, stamp 입력 지원. 타일 사이 틈의 ID는 특수값 -1.
- Hex Tile: seamless 입력을 육각 타일 반복+랜덤 변형으로 대면적 확장. 입력이 이미 seamless여야 함(비-seamless는 Transform 2D + Blend 전처리 워크플로로 해결).
- Font: 텍스트 이미지 생성(TTF/OTF 등 로드 가능). 글자별 ID 출력.
- Chladni Patterns: 클라드니 진동 패턴 생성. 핵심 제어는 M/N(주파수). Height to Normal(Signed) + Solver 조합으로 모래 파티클 시뮬레이션 구현 가능함.
- Julia Fractal: 줄리아 집합 생성. Float(0~1 정규화)와 Integer(iteration ID) 출력 — Remap → Ramp RGB로 컬러링, 두 출력을 곱하면 3D 룩.
Constant
한 줄 요약: 단일 색(플랫 값)을 생성하는 가장 기본적인 생성 노드임.
주요 파라미터
- Signature: mono / UV / RGB / RGBA 선택. 선택 후 각 성분을 개별 조절함.
- Source 입력: 생성 크기는 기본 해상도를 따르며, source 입력을 주면 그 크기를 따름.
팁 / 워크플로
- 빨간 사각형이 필요하면 RGB (1, 0, 0)으로 설정함.
- 곱셈용 스칼라가 필요하면 mono float로 사용함.
- UV 시그니처 Constant는 방향 벡터 공급용으로도 씀 — 예: Streak Blur의 direction 입력에 (1, 1)을 주면 우상단 방향 블러가 됨. (필터 참조)
- vector4(RGBA) Constant + Channel Split 조합으로 노드 하나에서 파라미터 4개를 동시 제어할 수 있음(아래 Chladni Patterns 예제 참조).
Size Reference
한 줄 요약: 특정 노드의 출력 해상도(레이어 크기)를 정의하는 노드임.
주요 파라미터
- 해상도 지정: 이 레이어만의 별도 레이어 프로퍼티(해상도 등)를 갖게 함. (핵심 개념의 레이어 프로퍼티 참조)
팁 / 워크플로
- Constant의 source에 꽂으면 그 해상도(예: 5×5픽셀)를 강제할 수 있음.
- Fractal Noise 등의 size ref 입력에도 사용함 — 노이즈 레이어 크기 제어에 유용함.
- Julia Fractal의 Size Reference 입력으로 4K 등 고해상도를 공급하면 디테일이 늘어남(무거워지므로 주의).
- 비슷한 역할의
Layer Properties노드와의 구분: Size Reference는 주로 노이즈 등의 시작점/입력으로 쓰이고(예: 1920×1080 사이즈 참조 공급), Layer Properties는 체인 이후 단계에서 속성을 바꾸는 용도임. (고급 활용 참조)
Fractal Noise (+ Fractal Noise 3D)
한 줄 요약: COP 전체에서 가장 유용한 노드 중 하나로, 프랙탈 노이즈 패턴을 생성함. 기본 시그니처는 mono임.
주요 파라미터
- Amplitude: 값 범위를 키움(더 높고 낮은 값이 생김).
- Center: 노이즈의 기준값. 올리면 전반적으로 밝아짐.
- Contrast: 노이즈의 선명도. 낮추면 평평한 회색에 가까워짐.
- Noise Type: Torus(기본), Perlin, Worley. Worley의 F1/F2를 따로 쓰려면 별도의 Worley Noise 노드를 사용함(아래 참조).
- Element Size: 노이즈 스케일.
- Offset: 노이즈 이동.
- Tile Size: 패턴이 반복되는 타일 크기. 줄이면 반복이 눈에 보임 — 이 구조 덕분에 COP의 모든 노이즈는 기본 상태에서 seamless함.
- 3D Noise 옵션: 3D 공간 노이즈의 단면을 취하며 기본적으로 시간에 따라 애니메이션됨.
- Pulse Length: 3차원 방향의 노이즈 스케일. 키우면 느린 굽이침, 1 미만이면 빠른 변화.
- Time Scale: 진화 속도만 바꿈(Pulse Length와 달리 스케일은 안 바꿈).
- Time Offset: 두 노이즈가 같은 지점에서 시작하지 않게 오프셋함.
- Loop: 지정 주기(예: 1초)마다 노이즈가 반복됨 — 프레임 24/48/72에서 동일한 상태가 됨.
- Max Octaves / Lacunarity / Roughness: 프랙탈 제어. Octaves = 프랙탈 적용 횟수, Lacunarity = 적용될 프랙탈의 스케일, Roughness = 거칠기(낮추면 매끈, 높이면 매우 거침).
입력
- position: UV를 넣어 노이즈를 왜곡할 수 있음. Position Map을 변형해 넣으면 노이즈가 그 왜곡(회전·스케일·미러 등)을 따라감. (UV·왜곡 참조)
- time: 3D noise가 켜져 있어야 동작함. Constant로 시간을 직접 제어(타임 리맵 등) 가능함.
Fractal Noise 3D
- vector3(RGB, 예: 월드 스페이스 position)로 샘플링할 때 사용함. 일반 버전은 UV(vector2) 샘플링용임.
- 대표 활용: Rasterize Setup의
origP(원본 월드 위치)를 position 입력에 연결하면 UV 아일랜드 위에 3D 공간 기준 노이즈가 그려져 심(seam) 없는 텍스처가 됨. (지오메트리 연동 참조)
팁 / 워크플로
- 왜곡(Distort)의 direction으로 쓸 때는 노이즈 center가 기본 0.5라서 왜곡이 한 방향으로 쏠림 — center를 0으로 내리면 양방향 왜곡이 됨. (UV·왜곡 참조)
- 값 범위가 화면 표시(0~1)를 넘을 수 있으므로 Inspect로 확인하는 습관이 필요함. (핵심 개념 참조)
Worley Noise
한 줄 요약: 셀룰러(Worley/Voronoi) 노이즈 전용 노드로, Fractal Noise의 Worley 타입보다 세분화된 출력을 제공함.
주요 파라미터 / 출력
- distance1 (F1), distance2 (F2): 가장 가까운/두 번째로 가까운 특징점까지의 거리.
- border: 셀 경계.
- center: 셀 중심.
- id: 셀별 고유 ID — ID·세그먼트 워크플로에 연결 가능함.
팁 / 워크플로
- Fractal Noise의 Noise Type에서도 Worley를 고를 수 있지만, F1/F2를 따로 쓰려면 이 노드를 써야 함.
- Preview Material 예제에서 Worley F2가 base color 재료로 쓰임. Worley Cellular 패턴은 element size를 키우면 displacement 재료로도 좋음. (렌더·입출력 참조)
- Dilate/Erode와의 조합이 좋음: 팽창시키면 부드러운 타일 효과, 침식시키면 자갈/돌(dirt 텍스처의 pebble) 느낌이 남. (필터 참조)
- Voronoi Cellular(roughness 제거, Manhattan distance, 사이즈 업) → Remap(Steps)으로 값 구간을 조이면 버블/만화경용 셀 패턴이 됨. (UV·왜곡의 Position Map 예제 참조)
Ramp (Ramp Mono / Ramp RGB)
한 줄 요약: 그라디언트를 생성하는 노드. Ramp Mono는 float, Ramp RGB는 RGB 출력이며 사실 같은 노드임(signature 전환 가능).
주요 파라미터
- Type: horizontal / vertical / radial / concentric 형태 선택(단독 사용 시). 램프 뒤집기 가능함.
- Number of Cycles: 반복 횟수. 기본 Outside Range가 clamp라 반복이 안 보임 — repeat로 바꿔야 반복됨. 흑→백 경계가 거슬리면 mirror로 부드러운 링을 만듦.
- Phase: 램프 위치에 더해지는 오프셋. 정수 단위는 동일하게 취급됨(0, 1, 2, 3 모두 같음).
- Center: 램프 시작점 X/Y.
- Rotation: 램프 회전(horizontal 등에서).
입력
- position: 입력값이 램프 상의 위치가 됨. position 입력을 주면 size reference도 필요한데, 앞 노드를 size reference 입력에 꽂으면 해결됨(별도 Size Reference 노드 불필요).
팁 / 워크플로
- 주의: 이 램프의 위치 범위는 0~1이 아니라 -1~1임. Remap으로 0~1 → -1~1 리맵 후 넣으면 다른 노드와 일치함. 노이즈 → Remap(-1~1) → Ramp RGB(position 입력)는 컬러링의 표준 패턴임.
- concentric 램프는 Wipe의 circle shape, Smooth Fill의 fill area, 각종 mask 입력 등 마스크 재료로 매우 자주 쓰임. (블렌드·컴포지트 참조)
- radial + concentric 램프를 Channel Join으로 합치면 방사형 UV를 만들 수 있음. (UV·왜곡 참조)
- Mono to RGB 노드는 리맵 도구가 내장되어 있어 Ramp RGB보다 리맵 단계를 건너뛸 수 있음. (컬러 참조)
Checkerboard
한 줄 요약: 체커보드 패턴을 생성하는 노드임(튜토리얼에서는 다른 노드의 재료로만 간단히 사용됨).
팁 / 워크플로
- Wipe 전환 예제: Checkerboard(128×128, mono)를 램프에 Add해서 Wipe의 shape 입력에 쓰면 중심에서 픽셀화되며 번지는 전환 효과가 됨. (블렌드·컴포지트 참조)
- Bokeh vs Blur 비교 예제에서 rows 15×15 체커보드가 테스트 이미지로 쓰임. (필터 참조)
- 체스보드 패턴이 필요하면 Tile Pattern의 Prune Tiles(Checkerboard) + 8×8 divisions 조합으로도 만들 수 있음(아래 참조).
Tile Pattern
한 줄 요약: 각종 텍스처링에 극히 유용한 타일 패턴 생성 노드로, 이미지 외에 ID와 UV를 함께 출력함.
주요 파라미터
- Pattern Size: 패턴 크기. 키우면 타일이 커짐.
- Pattern Type: 핵심 옵션. 기본 grid 외에 American Bond, Herringbone, French Pattern, Windmill, Crosshatch, Stack Bond, Basket Weave 등 다수의 타일링 패턴 제공 — 이런 류 텍스처의 좋은 출발점임.
- Divisions: 타일 분할 수(예: 18×18, 4×4).
- 모서리 라운딩 옵션: 특정 타일 패턴에 잘 어울림.
- Drawing: Distance / Gradient / Outline 중 선택. Gradient면 회전 선택 가능, Outline이면 외곽선 두께 옵션, Distance면 페이드 양 옵션이 있음.
- 배치/랜덤화: Row Offset(행 단위 오프셋), Column Offset(위로 이동), Row Slide Offset(행마다 다른 오프셋), Uniform Jitter(랜덤화 추가), Horizontal Jitter(좌우), Vertical Jitter(상하), 패턴 전체 회전 / 타일 개별 회전, 타일 스케일, Inset(타일 사이 간격).
- Prune Tiles(타일 제거): Checkerboard(8×8 divisions와 조합하면 체스보드), Every Nth Tile(2/3/4번째마다 제거), Every Other Row, every nth row / nth column, Inverse(선택 반전).
- Split Tiles(타일 분할): Threshold(분할할 타일 비율), 분할 횟수, 분할 지터, 분할 방향 랜덤화, 랜덤 시드. Area 기반 — American Bond처럼 크기가 다른 타일이 섞였을 때 Area Threshold로 큰 타일만 분할되게 할 수 있음(분할 수와 orient ratio 지정 가능).
Stamp 입력
- 각 타일마다 도장 찍듯 셰이프를 찍을 수 있음. 예: SDF Shape(circle) → SDF to Mono → stamp 입력에 연결하면 모든 타일에 그 셰이프가 찍힘.
- 패턴을 Basket Weave로 바꾸면 스탬프가 해당 타일 모양에 맞게 변형되어 찍힘 — 맨홀 뚜껑의 격자(grate) 같은 것에 활용 가능함.
출력 (매우 중요)
- 이 노드는 이미지 외에 ID와 UV를 함께 출력함. 이미지 출력만으로는 타일 각각을 구분할 수 없어 랜덤화가 어려움.
- ID 출력: 타일별 랜덤 색/roughness 등 무엇이든 생성 가능함. 예: Random Mono의 seed에 ID를 연결하면 타일별 랜덤 값이 나옴 → Ramp에 넣어 색을 몰거나 remap해서 roughness로 사용함. (ID·세그먼트 참조)
- UV 출력: 기본적으로 모든 타일 UV가 같은 방향임. UV Transform에 UV를 첫 입력, ID를 seed 입력으로 연결한 뒤 Randomization 섹션에서 rotation/uniform scale 등을 추가하면 타일별로 개별 랜덤 변환이 적용됨(ID를 빼면 전 타일이 동일하게 변함). (UV·왜곡 참조)
- 텍스처 샘플 활용: 조정된 UV + 텍스처(예: Fractal Noise)를 UV 샘플하면, 원래는 모든 타일이 똑같이 반복돼 보이지만 조정된 UV를 쓰면 타일마다 다르게 보임 — 타일 패턴 + ID/UV 출력으로 텍스처를 만드는 아주 좋은 방법임.
- 타일 사이 간격 영역의 ID는 특수값 -1임. ID to Mask에서 -1 지정 + Invert로 전체 알파 마스크를 얻을 수 있음. (ID·세그먼트 참조)
팁 / 워크플로
- ID별 SDF 가공: ID 출력 → ID to SDF로 타일별 SDF를 만들어 정밀 제어할 수 있음.
- 방사형 타일: radial UV(Channel Join으로 제작)를 통해 Tile Pattern을 샘플링하면 방사형으로 감긴 타일이 됨. (UV·왜곡 참조)
- 이미지로만 들어온 타일(ID/UV 없음)은 Segment by Connectivity로 ID를 복원할 수 있음. (ID·세그먼트 참조)
Hex Tile
한 줄 요약: 텍스처를 육각 타일 단위로 반복·확장하면서 변형(variation)을 섞어, 심(seam)과 반복감이 눈에 띄지 않는 큰 텍스처를 만드는 노드임.
중요 전제
- 입력이 이미 seamless여야 함. Hex Tile 자체가 seamless를 만들어주지는 않음 — seamless 입력이면 반복+변형을 더해 이음새 없이 확장해주지만, 아니면 각 헥스 타일 경계에 심이 그대로 드러남(Ramp RGB를 넣고 contrast를 올리면 타일 경계가 보이는 것으로 확인 가능함).
주요 파라미터
- Falloff: 타일 간 블렌딩. 패턴 인지(pattern-aware) 방식임 — 올리면 실제 패턴 내용을 이용해 자연스럽게 블렌드하고, 내리면 타일 형태를 우선함.
- Contrast: 낮추면 타일 사이가 블러되고, 높이면 타일 경계가 샤프해짐.
- Weight Exponent: 가중치 지수 조절.
- Random Rotations / Random Scale: 타일별 랜덤 회전·스케일로 반복감 제거.
- Weights 뷰: 출력 모드를 weights로 바꾸면 타일 가중치 분포를 직접 확인하면서 조정 가능함.
팁 / 워크플로
- dirt 텍스처 확장 예제: Houdini 내장 pic 텍스처 중 dirt를 로드하고 Transform 2D 축소로 seamless 여부를 확인(이어지긴 하지만 반복이 눈에 띔) → Hex Tile에 넣으면(기본값도 꽤 잘 동작함) 원본보다 훨씬 큰 면적을 seamless하게 커버하는 텍스처가 됨. 랜덤 회전/스케일 추가로 반복감을 제거함.
- non-seamless 이미지를 tileable로 만드는 수동 전처리 워크플로(HDA 툴화 추천):
- File로 이미지(클로버 예제) 로드 → Project on Layer(source에 연결)로 정사각형에 투영 → Transform 2D uniform scale로 작업 영역 확보.
- Transform 2D로 X를 +1 이동(border: clip) → 이미지 중앙이 오른쪽 엣지로 감. 복제해서 X -1 이동 → 중앙이 왼쪽 엣지로. 즉 원본의 좌우 엣지가 이제 중앙에서 만남 → 그 자리엔 심이 없음.
- 두 이동본을 Blend(operation: Over)로 합침 — 단 기존 엣지들이 중앙에서 만나는 새 심이 생김.
- 원본 이미지와 다시 Blend: 이동본을 foreground, 원본을 background로. 마스크는 Ramp(mono) — 양 끝만 남기고 invert해서, 이동본에서 엣지 부분만 취하고 중앙은 원본을 유지함.
- Transform 2D로 테스트하면 좌우는 심이 완전히 사라지고 위쪽에만 심이 남음.
- 같은 과정을 Y축으로 반복(+1/-1 Y 이동 → Over 블렌드 → 수직 램프 마스크로 블렌드).
- 좌우-seamless 버전과 상하-seamless 버전을 마지막 Blend + 수직 마스크로 합치면 완전한 tileable 텍스처가 완성됨. 램프들로 타일 경계 스무딩 정도를 제어 가능함.
- 이 결과를 Hex Tile에 넣고 랜덤 변형을 더하면, 원래 전혀 tileable하지 않던 이미지에서 대면적 텍스처를 얻음. grass 등 다른 이미지로도 동일하게 동작함.
Font
한 줄 요약: 텍스트를 이미지로 생성하는 노드로, 디스크에서 폰트를 로드할 수도 있음.
주요 파라미터
- 허용 폰트 타입: TTF, OTF, TTC, OTC, PFA, PFB 등 일반 폰트 포맷 수용.
- 기본 내장 폰트도 다수 제공됨.
- Font Size: 글자 크기 조절.
- 나머지 파라미터는 자명한 수준임.
출력 특이사항
- 글자별 ID를 출력함. 이 ID를 활용해 글자마다 다른 처리를 할 수 있음.
팁 / 워크플로
- 글자별 랜덤 컬러 예제: ID 출력 → ID to RGB(seed 셔플) 또는 Random Mono(seed에 ID 연결, 음수 제거) → Ramp RGB(remap으로 -1~1 범위 맞춤) → Multiply로 원본 폰트 이미지와 곱하면 글자별 랜덤 컬러 효과가 됨. (ID·세그먼트 참조)
- 강연자도 COP 컨텍스트에 이 노드가 있는 줄 몰랐다고 함 — 의외로 잘 알려지지 않은 노드임.
Chladni Patterns
한 줄 요약: 클라드니(Chladni) 도형 — 진동 주파수에 의해 판 위 가루가 모여 만드는 패턴 — 을 생성하는 노드임(Rings of Power 인트로의 모래 패턴과 유사한 사례가 언급됨).
한계
- 생성되는 패턴이 실제 오디오 주파수와 직접 대응하지 않음 — 특정 실제 패턴의 재현은 어려움.
입력
- Position (UV): UV Map 연결은 기본과 동일하나, UV Transform으로 축소하면 frequency처럼 스케일 팩터로 작동함. 오프셋도 가능함 — 실제 클라드니 패턴이 정중앙 정렬이 아닌 경우 유용함.
- A, B, M, N 입력: 가장 중요한 입력임. 편한 제어법: Constant(vector4, RGBA) → Channel Split → R→A, G→B, B→M, A→N으로 연결하면 하나의 Constant 노드에서 네 값을 동시 제어할 수 있음.
- A, B = 진폭(amplitude): A는 수직 방향 성분의 양, B는 수평 방향 성분의 양(A를 0으로 내리면 수직 성분 소멸, B는 수평).
- M, N = 주파수(frequency): 패턴의 실제 스케일링. 대부분의 조정은 M, N에서 이뤄짐 — 작은 값 변화로도 패턴이 근사하게 변형됨. 값을 키우면 패턴이 작아지므로 UV 스케일을 함께 조정함(예: 6과 9).
주요 파라미터
- Frequency: 전체 스케일링 팩터. Anisotropy와 함께 패턴 변형(transformation)을 일으킴 — 마음에 드는 패턴을 이 둘로 다듬음.
- Amplitude Ratio: A와 B 중 어느 쪽이 우세할지.
- Amplitude: 키우면 패턴이 선명(sharpen)해짐.
- Smoothing Width: 스무딩 정도.
- Threshold: 흑/백 판정 경계값.
- Absolute Sign 모드: 부호 절대값 모드로 바꾸고 amplitude를 1 정도로 낮추면 그라디언트가 생김 — 아래 시뮬레이션에 필요함.
팁 / 워크플로 — 클라드니 파티클 시뮬레이터 (모래 시뮬레이션)
- Chladni를 absolute sign + 낮은 amplitude로 그라디언트화 → Height to Normal로 노멀맵 생성 → Null("normals").
- 주의: 노멀 타입 기본값이 offset이면 모든 벡터가 +XY 한 방향을 가리킴 → signed로 변경해야 사방을 가리킴. (렌더·입출력의 Height to Normal 참조)
- SOP Import 내부: Grid(XY, 2×2) 생성. 옆에 COP Network(SOP 레벨) 노드를 놓고 external COP으로 "normals"를 가져옴.
- 다른 그리드에 Scatter(약 20,000점) → Attribute Wrangle(1번: 포인트, 2번: normals가 담긴 COP 볼륨, 3번: grid):
v@N = volumesample v(1, 0, v@P);— 2번 입력의 0번 볼륨(노멀 벡터)을 포인트 위치에서 샘플.v@P += v@N * 0.01;— 노멀 방향으로 소량 이동.v@P = minpos(2, v@P);— 그리드 표면에 포인트 고정(이탈 방지).
- Wrangle을 Solver 안에 넣어 반복 적용 → 포인트들이 패턴의 어두운 곳(마디선)으로 모여듦.
- Point Jitter(scale 0.005 내외, seed에
@Frame사용해 매 프레임 변경)를 추가하면 모래알이 떨리며 춤추는 느낌이 남. - 시간 변화 대응: 상위 Chladni의 anisotropy frequency를 키프레임(프레임 1에 4 → 프레임 240에 더 큰 값)하면 패턴이 서서히 변형되고, 파티클들이 새 패턴에 적응하며 재배열됨. 이동량(0.01)을 줄이면 더 천천히 수렴함.
- 이후는 세팅 놀이임 — 값들을 키프레임해 패턴이 더 많이 변하도록 조정함.
응용 — 구름 패턴
- 같은 scatter 기반 셋업에서 결과 값에 Blur를 걸면 값이 덜 날카로워짐. 스케일을 조정하고 scatter 개수를 10배로 늘리면 구름 느낌의 밀도가 만들어짐.
- 이후는 렌더링 문제일 뿐임 — alpha를 추가하면 구름(cloudy) 패턴이 됨. 뒤에 jitter를 추가로 걸어도 좋음.
- 강연자 코멘트: Houdini 안에서 구름 패턴을 재현하는 재미있는 방법이라 작은 셋업으로 확장해 소개한 것임.
Julia Fractal
한 줄 요약: 줄리아 집합(Julia set) 프랙탈 패턴을 생성하는 노드임.
시그니처 / 출력
- 출력은 Float 또는 Integer 두 가지임.
- Integer: 반복(iteration) 횟수를 나타내는 ID 값을 출력함. 화면상 가장 "가까이" 보이는 영역이 ID 1이고, 공간 안쪽으로 들어갈수록 iteration별로 ID가 증가함(대략 0~87 범위). iteration 수를 줄이면 1, 2, 3처럼 낮은 ID만 보임.
- Float: 강연자가 아는 한 0~1로 정규화된 값이 나옴.
주요 파라미터
- 기본 설정값이 줄리아 프랙탈 생성에 이미 적절하게 잡혀 있음.
- Scale: 프랙탈 크기 조절.
- Real Coefficient / Imaginary Coefficient: 키프레임을 걸면 시간에 따라 프랙탈이 변형(transform)됨. 계수의 수학적 의미는 문서(Julia set 항목)에 상세히 나와 있음.
- Maximum Iterations: 반복 횟수. 올리면 더 흥미로운 결과가 나옴.
- 해상도는 Size Reference 입력으로 올릴 수 있음(예: 4K). 디테일이 늘어나지만 무거워지므로 주의 필요. Proxy 버전으로 전환하면 빠르게 돌릴 수 있음.
팁 / 워크플로
- 기본 컬러링: Float 출력 → Remap(-1~1로 리맵) → Ramp RGB(position 입력에 연결, twilight shifted 같은 프리셋)로 색을 입힘.
- Integer 출력 활용: UV Map by ID → UV Sample로 UV를 샘플링 → Ramp Mono(또는 RGB)를 texture에 연결하면 완전히 다른 룩이 나옴. (ID·세그먼트, UV·왜곡 참조)
- 3D 룩 조합(강연자가 직접 발견): Float 버전과 Integer 버전(UV 경유)의 출력을 곱한 뒤 remap → Ramp RGB에 넣으면 줄리아 집합이 3D처럼 보이는 룩이 됨.
- 두 노드를 동기화하려면 Action → Create Reference Copy로 복사본을 만들고 signature만 Float로 바꾸면, 한쪽을 수정할 때 다른 쪽도 함께 바뀜.
- 플리커 해결: 배경 쪽 마지막 ID가 깜빡임 문제를 일으킴. 우회법 — ID to Mask를 쓰고 ID pattern에 Maximum Iterations 값을 복사해 붙여넣은 뒤, Invert 해서 결과에 곱해주면 플리커가 사라짐. 이 상태에서 키프레임 애니메이션도 가능함. (ID·세그먼트 참조)
- 램프를 Concentric으로 바꾸고 램프를 뒤집으면 또 다른 3D 느낌의 결과가 나옴.
Houdini Copernicus Ultimate Guide 튜토리얼 정리 · 전체 12편
- 00 Houdini Copernicus Ultimate Guide 튜토리얼 정리 index
- 01 핵심 개념
- 02 생성·패턴 노드
- 03 값 조정과 리매핑
- 04 블렌딩과 합성
- 05 색 보정
- 06 필터와 이펙트
- 07 SDF와 거리장
- 08 UV·왜곡·좌표
- 09 지오메트리·3D 연동
- 10 ID·세그먼트·변환 유틸리티
- 11 파일 입출력과 렌더 파이프라인
- 12 프로그래밍과 고급 기능