Karma XPU용으로 Principled Shader 머티리얼을 MaterialX로 변환하기
Principled Shader 머티리얼이 Karma XPU에서 이상하게 보이는 이유와 다시 만드는 방법:
- XPU는 VEX를 실행하지 않습니다: SideFX 문서에 따르면 Karma XPU는 VEX 기반 셰이더를 앞으로도 지원하지 않습니다. Principled Shader는 XPU에서 작동하지 않거나 기껏해야 근사치입니다.
- MtlX Standard Surface로 다시 만드세요: Karma MaterialX Builder 안의 MtlX Standard Surface 노드가 SideFX가 권장하는 우버 셰이더이며, Principled 파라미터 대부분에 대응하는 Standard Surface 입력이 있습니다.
- 텍스처 시그니처를 맞추세요: 컬러 맵은 Color 시그니처, 노멀 맵은 Vector3 시그니처로 MtlX Normalmap 노드를 거치고, 디스플레이스먼트는 MtlX Surface Material이나 Collect 노드를 거칩니다.
- iRender에서는: RTX 5090 4장 서버에 Houdini를 직접 설치하므로, 샷을 렌더링할 GPU에서 변환한 머티리얼의 Karma CPU와 XPU 렌더를 비교할 수 있습니다.
더 빠른 미리보기를 위해 Karma를 CPU에서 XPU로 바꾸면 머티리얼이 깨집니다. 금속은 밋밋해지고, 유리는 질감을 잃고, 텍스처가 달라집니다. 이유는 간단합니다. 예전 Houdini 머티리얼 대부분은 VEX 셰이더인 Principled Shader로 만들어졌고, Karma XPU는 VEX를 실행하지 않습니다.
이 글은 Karma XPU에서 SideFX가 지원하는 것, Principled Shader 머티리얼을 MtlX Standard Surface로 다시 만드는 방법, 텍스처·노멀 맵·디스플레이스먼트를 연결하는 방법, 결과를 확인하는 방법을 설명합니다. SideFX Houdini 문서와 MtlX Standard Surface가 구현하는 Autodesk Standard Surface 사양을 따릅니다.
Principled Shader 머티리얼이 Karma XPU에서 깨지는 이유
SideFX는 이를 분명히 밝힙니다. Karma XPU는 VEX 기반 셰이더를 앞으로도 지원하지 않으며, VEX 셰이더는 Karma CPU에서만 작동합니다. Karma XPU 페이지는 XPU가 지원하는 것을 USD Preview Surface, MaterialX, 그리고 Karma Hair 셰이더 같은 Karma 전용 VOP 노드로 나열합니다. Principled Shader를 포함한 그 밖의 것은 작동하지 않거나 기껏해야 근사치입니다.
그 근사치 때문에 씬이 그냥 검게 나오지는 않습니다. Material Library LOP는 머티리얼에서 USD Preview Surface를 자동으로 만들려고 하며, SideFX는 이것이 Principled Shader와 MtlX Standard Surface에서 가장 잘 작동한다고 설명합니다. USD Preview Surface는 훨씬 단순한 셰이딩 모델이므로 서브서피스 스캐터링, 코트, 쉰, 그리고 네트워크 안의 VEX 패턴 같은 효과는 사라집니다.
Karma MaterialX Builder에서 새 머티리얼 만들기
- 새 Material Library LOP를 만들고 안으로 들어갑니다.
- 새 Karma MaterialX Builder를 만들고 머티리얼 이름으로 바꾼 뒤 안으로 들어갑니다.
- 새 MtlX Standard Surface 노드를 만들어 출력에 연결합니다. Karma XPU에서 서피스 터미널은 MtlX Standard Surface, MtlX Unlit Surface, USD Preview Surface(커브는 Karma Hair와 Fur)여야 합니다.
SideFX는 Karma XPU에 Karma MaterialX Builder를 권장합니다. 그 안의 Tab 메뉴에는 Karma, Preview Surface, MaterialX 호환 노드만 나오므로 실수로 VEX 노드를 넣을 수 없습니다. 다른 렌더러도 읽을 수 있는 순수 MaterialX 그래프가 필요할 때만 USD MaterialX Builder를 쓰세요. Principled Shader와 다른 점이 하나 있습니다. MtlX Standard Surface는 파라미터를 지오메트리 어트리뷰트에 자동으로 연결하지 않으므로, Cd 같은 어트리뷰트는 MtlX Geometry Color나 primvar reader 노드로 읽어야 합니다.
Principled Shader 파라미터를 Standard Surface에 대응시키기
MtlX Standard Surface는 Autodesk의 Standard Surface 모델을 구현하며, Principled Shader처럼 물리 기반 우버 셰이더입니다. 대부분의 설정에는 바로 대응하는 입력이 있습니다. 예전 머티리얼에서 값을 옮긴 뒤 렌더를 비교하세요. 두 셰이딩 모델이 정확히 같을 수는 없기 때문입니다.
| Principled Shader | MtlX Standard Surface 입력 | 참고 |
|---|---|---|
| Base Color | base_color (base = 1) | base는 디퓨즈 레이어의 가중치 |
| Use Point Color (Cd) | MtlX Geometry Color를 연결한 base_color | Standard Surface는 Cd를 스스로 읽지 않음 |
| Metallic | metalness | 순수 금속은 1 |
| Roughness | specular_roughness | 변환 후 하이라이트 비교 |
| Reflectivity / IOR | specular_IOR | Standard Surface는 굴절률을 사용. 1.5가 흔한 유전체 값 |
| Transmission | transmission, transmission_color | 유리와 액체용 |
| Subsurface | subsurface, subsurface_color, subsurface_radius | 켜려면 subsurface 가중치를 0보다 크게 |
| Coat | coat, coat_roughness, coat_IOR | 클리어 코트 레이어 |
| Sheen | sheen, sheen_color, sheen_roughness | 직물과 벨벳 |
| Emission | emission, emission_color | 방출 가중치와 색 |
| Alpha / opacity | opacity | 나뭇잎 같은 컷아웃 |
| Normal map | normal (MtlX Normalmap 경유) | 아래 텍스처 섹션 참고 |
입력 이름은 Autodesk Standard Surface 사양과 Houdini의 MtlX Standard Surface 노드를 따릅니다.
텍스처, 노멀 맵, 디스플레이스먼트 연결하기
변환에서 가장 많이 틀리는 곳은 텍스처 처리입니다. MtlX Image는 파일이 색을 담는지 원시 데이터를 담는지 알아야 하며, 이것은 Signature.
- 컬러 텍스처: Signature를 Vector2로 한 MtlX Texcoord를 만들고, Signature를 Color로 한 MtlX Image를 만든 뒤 이미지를 base_color(또는 다른 컬러 입력)에 연결합니다. SideFX MaterialX 빠른 시작에 나오는 순서입니다.
- 노멀 맵: 색 변환이 적용되지 않도록 MtlX Image의 Signature를 Vector3로 설정하고, MtlX Normalmap 노드를 거쳐 normal 입력에 연결합니다.
- 디스플레이스먼트: Float 높이 맵을 MtlX Displacement 노드에 연결합니다. Standard Surface 노드만으로는 디스플레이스먼트를 꽂을 곳이 없으므로, 서피스와 디스플레이스먼트를 모두 받는 MtlX Surface Material이나 Collect 노드를 쓰세요.
- UDIM: 파일 경로에 <UDIM> 토큰을 쓰세요.
Karma XPU에서 알아둘 제한
- Karma XPU는 MaterialX 대부분을 지원하지만, 개별 MaterialX PBR(BSDF) 노드로 서피스를 만드는 것은 지원하지 않습니다. 터미널로 Standard Surface를 쓰세요.
- Standard Surface 노드 두 개는 mtlxmix로 섞을 수 있습니다. SideFX XPU 페이지에는 두 개 블렌딩이 문서화되어 있습니다.
- Karma는 같은 프림에 서피스와 볼륨 머티리얼을 함께 쓰는 것을 지원하지 않으며, 볼륨 머티리얼은 VDB 프림에서만 작동합니다.
- 머티리얼의 공개 인터페이스로 이름을 넘기는 경우라도 문자열 입력은 허용되지 않습니다.
- MaterialX, USD Preview, Karma 노드는 Karma CPU와 XPU에서 섞어 쓸 수 있지만, 다른 렌더러는 보통 이렇게 섞인 네트워크를 읽지 못합니다.
변환한 머티리얼 확인하기
- 예전 Principled 머티리얼로 에셋을 중립적인 HDRI 아래 Karma CPU에서 렌더링하고 프레임을 저장합니다.
- 새 MaterialX 머티리얼을 할당하고 같은 프레임을 Karma CPU로 렌더링합니다. 하이라이트, 러프니스, 노멀 디테일을 비교하세요. 엔진 변경과 머티리얼 변경을 분리해 볼 수 있습니다.
- Karma Render Settings의 엔진을 XPU로 바꿔 다시 렌더링합니다. Karma XPU는 Karma CPU를 대체하는 것이 아니라 기능이 더 적은 빠른 엔진이므로, 이제 생기는 차이는 XPU가 지원하지 않는 기능 때문입니다. SideFX Karma XPU 페이지의 지원 목록과 대조하세요.
- 머티리얼이 맞으면 템플릿이나 HDA로 저장해 다음 변환을 같은 연결에서 시작하세요.
MaterialX 머티리얼 변환에는 SaaS와 IaaS 렌더팜 중 무엇이 맞을까?
머티리얼을 변환하고 나면 네트워크가 씬이나 USD 파일에 저장되므로 두 렌더팜 모델은 같은 이미지를 렌더링합니다. 차이는 변환과 비교 작업을 어디서 하느냐입니다. 이 작업은 노드를 바꾸고, 렌더링하고, 비교하는 것을 반복하는 인터랙티브 작업입니다.
| 상황 | SaaS 렌더팜 | IaaS 렌더팜(iRender) |
|---|---|---|
| 머티리얼 변환이 끝났고 샷이 승인된 경우 | 잘 맞습니다. 프로젝트를 업로드하면 렌더팜이 프레임을 렌더링하며, 보통 여러 머신에 나누어 처리하므로 서버를 관리할 필요가 없습니다. | 이 방식도 가능하지만 서버를 직접 시작하고 사용하고 종료해야 합니다. |
| 마감이 있어 렌더링 시작과 종료 시점을 알아야 할 때 | 작업이 렌더팜 대기열에 들어가므로 시작 시점은 렌더팜이 얼마나 바쁜지에 달려 있습니다. 많은 렌더팜이 더 빨리 시작하려면 우선순위가 높은 요금제를 판매합니다 | 서버가 부팅되는 순간부터 내 작업만 실행하므로, 렌더링 시작 시점을 직접 정하고 전체 작업 시간을 가늠할 수 있습니다 |
| 아직 머티리얼을 변환하고 비교하는 중인 경우 | 비교마다 작업 하나입니다. 제출하고, 기다리고, 내려받아 비교합니다. | 서버의 Solaris 뷰포트에서 Karma CPU와 XPU를 바꿔 가며 화면에서 비교합니다. |
| 내 GPU가 느리거나 에셋이 메모리에 들어가지 않는 경우 | 집에서 하는 룩 개발이 느리므로 모든 테스트가 렌더팜으로 넘어갑니다. | 카드마다 32 GB인 RTX 5090에서 룩 개발과 렌더링을 합니다. |
이 작업에서 두 렌더팜 모델이 어떻게 동작하는지 비교한 것이며, 속도 테스트가 아닙니다.
간단한 기준: 머티리얼을 이미 변환하고 승인받았다면 최종 프레임에는 SaaS 렌더팜이 잘 맞습니다. 아직 머티리얼을 다시 만들고 비교해야 하거나 내 GPU가 에셋을 감당하기 어렵다면, IaaS 서버에서 작업하고 샷도 거기서 렌더링하세요.
iRender 서버에서 머티리얼 점검하기
- 프로젝트, 텍스처, 캐시를 업로드합니다 . 서버를 시작하기 전에 iRender Drive에 올리세요. 업로드는 무료이며 임대 시간에 포함되지 않습니다.
- 룩 개발에는 GPU 1장 서버를 시작하고, 샷을 렌더링할 거라면 GPU 4장 서버를 시작합니다. Houdini를 한 번 설치하고 여러분의 SideFX 라이선스로 로그인하세요. 서버 이미지는 세션 사이에 저장됩니다.
- 머티리얼을 다시 만들고 비교합니다 . Solaris 뷰포트에서 Karma CPU와 Karma XPU로 비교합니다.
- husk로 샷을 렌더링합니다 . 머티리얼이 승인되면 렌더링합니다. 마감이 촉박하면 서버를 더 시작해 각 서버에 프레임 범위를 나누세요. 총비용은 거의 같습니다.
다른 머신에서 시퀀스를 렌더링하기 전에
- 같은 Houdini 릴리스를 쓰세요. MaterialX 노드 지원은 릴리스마다 달라집니다.
- 스테이지의 모든 머티리얼이 남아 있는 Principled Shader가 아니라 Karma MaterialX나 USD Preview 네트워크인지 확인하세요.
- <UDIM> 경로를 포함한 텍스처 경로가 렌더 머신에 있는 파일을 가리키는지 확인하세요.
- Karma XPU로 한 프레임을 렌더링해 승인받은 룩 개발 프레임과 비교하세요.
- 전체 범위를 시작하기 전에 가장 무거운 프레임의 시간을 재세요.
자주 묻는 질문
1. Karma XPU는 Principled Shader를 지원하나요?
아닙니다. SideFX 문서에 따르면 Karma XPU는 VEX 기반 셰이더를 앞으로도 지원하지 않으며, Principled Shader는 VEX 셰이더입니다. XPU는 USD Preview Surface, MaterialX, Karma 전용 노드만 지원하므로 Principled Shader는 작동하지 않거나 기껏해야 근사치로 렌더링됩니다.
2. Karma XPU에서 Principled Shader를 무엇으로 대체하나요?
Karma MaterialX Builder 안에서 MtlX Standard Surface를 쓰세요. Principled Shader와 비슷한 물리 기반 우버 셰이더이며, 베이스 컬러, 메탈릭, 러프니스, 트랜스미션, 서브서피스, 코트 등 대부분의 Principled 파라미터에 대응하는 Standard Surface 입력이 있습니다.
3. MaterialX로 바꾼 뒤 노멀 맵이 이상해 보이는 이유는 무엇인가요?
MtlX Image 노드가 Color 시그니처로 되어 있어 노멀 맵을 색으로 처리하고 있을 가능성이 큽니다. Signature를 Vector3로 바꾸고, Standard Surface의 normal 입력 전에 MtlX Normalmap 노드를 거치게 하세요.
4. MtlX Standard Surface 머티리얼에 디스플레이스먼트를 추가하려면 어떻게 하나요?
높이 맵을 MtlX Displacement 노드에 연결하세요. Standard Surface에는 디스플레이스먼트 입력이 없으므로, Standard Surface와 디스플레이스먼트를 모두 MtlX Surface Material이나 Collect 노드에 연결하고 그것을 머티리얼 출력으로 쓰세요.
5. Karma MaterialX Builder와 USD MaterialX Builder 중 무엇을 써야 하나요?
SideFX는 Karma로 렌더링할 때 Karma MaterialX Builder를 권장합니다. Tab 메뉴에 호환되는 노드만 나오기 때문입니다. 다른 렌더러도 읽을 수 있는 순수 MaterialX 그래프가 필요할 때는 USD MaterialX Builder를 쓰세요.
6. 샷을 렌더링할 머신에서 Karma CPU와 XPU를 비교할 수 있나요?
네, IaaS 렌더팜에서는 가능합니다. iRender에서는 여러분이 Houdini를 설치한 서버 전체를 임대하므로, Solaris에서 엔진을 CPU와 XPU로 바꿔 가며 변환한 머티리얼을 화면에서 비교하고 같은 GPU에서 샷을 렌더링할 수 있습니다.
iRender에서 Houdini Karma XPU 씬 렌더링하기
iRender는 IaaS GPU 렌더팜입니다. NVIDIA RTX 5090(32 GB) GPU 4장과 AMD Ryzen™ Threadripper™ PRO CPU, 256 GB ECC RAM, 2 TB NVMe SSD를 갖춘 베어메탈 서버를 임대해 원격 데스크톱으로 접속하고, 전체 관리자 권한으로 내 워크스테이션처럼 작업합니다. Houdini는 직접 설치하고 여러분의 SideFX 라이선스를 사용합니다. 서버 이미지가 세션 사이에 저장되므로 Houdini, 패키지, Karma XPU 커널 캐시가 그대로 남아 있습니다. Karma XPU에는 GPU 4장 서버를 권장합니다.
멀티 GPU 서버는 분 단위로 과금되며(1 GPU 서버는 최소 1시간), 3시간 이상 세션은 10% 할인됩니다. 4 GPU 서버는 수랭식이며, 자체 측정 결과 장시간 렌더링 중에도 GPU 온도가 60–70°C로 유지됩니다. 엘리트 지원팀이 주 7일 핫라인, 라이브 채팅, Skype, WhatsApp, 이메일로 도와드립니다.
이 영상은 iRender 서버에서 Houdini Karma XPU 씬을 다섯 단계로 렌더링하는 과정을 보여줍니다:
신규 사용자는 첫 충전 시 100% 보너스(최소 $50)를 받습니다. 서버 옵션은 Karma XPU 렌더팜 페이지에서 확인하거나 iRender GPU 앱.


