후디니 Attribute Transfer 거리 설정: Distance Threshold·Blend Width 계산
후디니 속성 전이에서 다른 geometry로 Cd나 w를 옮겼는데 색이 경계 밖까지 번지거나, 가까운 점인데도 값이 바뀌지 않을 때가 있습니다. Attribute Transfer로 속성 옮기기를 할 때는 Distance Threshold와 Blend Width를 따로 조절해야 합니다. Distance Threshold가 1, Blend Width가 1일 때 source에서 1.5만큼 떨어진 받는 점은 얼마나 섞일까요?
숫자만 보면 점이 범위 밖이라 그대로 남을 것 같고, 반대로 충분히 가까우니 source 값이 그대로 들어올 것 같기도 합니다. 감으로 파라미터를 옮기면 어느 구간이 바뀌었는지 놓치기 쉽습니다. 그래서 직선 위에 source point 하나와 받는 점을 두고 Houdini 19.5.435에서 결과를 확인했습니다.
먼저 점의 거리 기준이 클래스마다 다르다는 점을 구분하세요. 그다음 Threshold와 Width가 만드는 구간을 나누고, 마지막으로 실제 측정값을 보겠습니다.
Attribute Transfer가 읽는 거리는 속성 클래스마다 다릅니다
Attribute Transfer는 서로 다른 geometry의 속성을 가까운 요소끼리 옮깁니다. 두 geometry의 topology가 달라도 쓸 수 있습니다. 다만 어느 Class의 속성을 켰는지에 따라 비교하는 거리가 달라집니다.
| 전송 클래스 | 공식 문서의 거리·값 기준 | 점검할 곳 |
|---|---|---|
| Points | 받는 point와 source points 사이 거리 | 두 점의 P 좌표와 point 속성 |
| Primitives | 받는 primitive와 source primitive의 중심점끼리 거리 | 면이나 primitive 단위 속성 |
| Vertices | 받는 vertex를 source의 가장 가까운 위치·primitive에 매핑한 뒤 보간 | UV처럼 면 모서리마다 다른 속성 |
| Detail | source의 detail 값을 받는 쪽 detail에 복사 | 거리 falloff가 필요한 값에는 맞지 않음 |
이 차이를 건너뛰면 Distance Threshold를 바꿔도 기대와 다른 결과가 나옵니다. 예를 들어 point 속성은 point 간 거리를 보지만, primitive 속성은 표면에서 가장 가까운 점이 아니라 primitive 중심점끼리의 거리를 기준으로 합니다.
Attributes 탭에서 Detail, Primitives, Points, Vertices의 전송 여부와 속성 이름 패턴을 확인하세요. Houdini 19.5의 P 관련 체크박스 이름은 Allow P Attribute입니다. Points 패턴에서 P를 매치하도록 허용하는 기능이며, 켜면 위치 P도 전송 대상이 될 수 있습니다. 색이나 임의의 값만 옮길 때는 P가 꼭 필요한지 확인하고 불필요하면 켜지 마세요. 속성이 어느 클래스에 있는지부터 확인해야 하는 경우에는 후디니 포인트·버텍스·프리미티브 속성 차이 글을 함께 보세요.
Distance Threshold와 Blend Width는 다른 구간을 만듭니다

Distance Threshold는 source 요소를 고려할 최대 거리입니다. 옵션을 켜 두면 이 거리 안의 source가 보간에 참여합니다. 옵션을 끄면 거리로 제외되는 source가 없어집니다. source 요소가 모두 Threshold 밖이면 destination 값은 바뀌지 않습니다.
Blend Width는 Threshold 바깥에 이어지는 추가 감쇠 구간입니다. Threshold 안에서는 destination의 기존 값과 섞지 않고 source에서 정해진 값으로 결과가 결정됩니다. 그 다음 Width 구간에서는 source에서 보간한 값과 destination에 원래 있던 값이 섞입니다. Threshold와 Width를 더한 거리보다 멀면 destination 값이 유지됩니다.
따라서 값이 넓게 번질 때는 우선 Distance Threshold가 필요한 범위보다 큰지 보세요. Threshold는 source 영향이 그대로 유지되는 구간을 바꿉니다. 바깥에서 부드럽게 사라지는 구간이 너무 길다면 Blend Width를 줄이세요. Width를 크게 하면 감쇠가 더 먼 거리까지 이어집니다.
Kernel Function은 거리별 source 가중치를 정하며, 보통 가까운 요소에 더 큰 가중치를 줍니다. Kernel Radius를 0에 가깝게 하면 nearest-neighbor 보간에 가까워지고, 크게 하면 균일한 가중치에 가까워집니다. Max Sample Count는 보간할 source 요소 수의 상한이며, 1이면 가장 가까운 요소 하나만 사용합니다. Blend Width 구간에서는 Width 자체가 kernel radius로 쓰입니다.
처음 조정할 때 모든 값을 한꺼번에 바꾸지 마세요. 먼저 source와 destination이 올바른 입력에 연결됐는지, 어떤 Class의 속성을 옮기는지, 두 점의 실제 거리와 씬 단위가 무엇인지 확인하세요. 그 다음 Threshold로 전체 강도 구간을 정하고, Width로 끝부분의 감쇠 길이를 고르세요.
직선 위 한 점으로 Houdini 19.5.435 결과를 쟀습니다
테스트에서는 source point를 x=0, w=1로 두고 받는 point는 같은 직선 위 x=d에 만들었습니다. 받는 점의 원래 w는 0입니다. Attribute Transfer에서 Points만 켜고 w만 전송했으며, Kernel Function은 기본 Elendt, Max Sample Count는 1, Distance Threshold는 1로 설정했습니다.
이 조건에서 결과 w는 곧 source 영향 비율입니다. Blend Width를 1에서 2로 늘리면 감쇠가 끝나는 거리는 2에서 3으로 멀어지고, 같은 거리의 받는 점도 더 큰 source 비율을 받습니다.
이제 처음 질문의 값을 확인할 수 있습니다. Distance Threshold 1, Blend Width 1, 거리 1.5의 받는 점에서 Houdini가 계산한 source 영향은 다음과 같습니다.
이 단일 source 실험에서 1.5만큼 떨어진 점의 source 영향은 56.25%이며, 받는 w 값은 0.5625입니다.
| 점 사이 거리 d | T=1, Blend Width=1의 결과 w | T=1, Blend Width=2의 결과 w |
|---|---|---|
| 1.00 | 1.0000 | 1.0000 |
| 1.25 | 0.8789 | 0.9690 |
| 1.50 | 0.5625 | 0.8789 |
| 2.00 | 0.0000 | 0.5625 |
| 2.50 | 0.0000 | 0.1914 |
| 3.00 | 0.0000 | 0.0000 |
측정한 지점에서 단일 source의 영향 비율은 Threshold 안에서 1이고, 바깥 감쇠 구간에서는 u=(d−T)/B일 때 (1−u²)²와 일치했습니다. 여기서 d는 두 점 사이 거리, T는 Distance Threshold, B는 Blend Width입니다. T=1, B=1이면 거리 1.5의 u가 0.5가 되므로 source 영향은 (1−0.5²)²=0.5625입니다.
이 식은 Attribute Transfer 전체에 적용되는 공식으로 쓰면 안 됩니다. SideFX 문서는 Kernel Function이 영향을 준다고 설명하지만, 이 식 자체를 보편 규칙으로 명시하지 않습니다. 이 글의 곡선은 Houdini 19.5.435 기본 Elendt kernel, source point 하나, Max Sample Count 1, point scalar w에서 실제로 측정한 범위만 설명합니다.
받는 점의 원래 값이 0이 아니면 source 영향 비율만큼 두 값 사이를 이동합니다. 예를 들어 source w=4, destination의 기존 w=−2, 거리 1.5에서 실측 결과는 1.375였습니다. 여러 source가 있거나 Kernel Function과 Class가 다르면 Geometry Spreadsheet에서 실제 출력값을 확인하세요.
아래 체험 도구는 Distance Threshold, Blend Width, 점 사이 거리, source 값과 destination의 원래 값을 바꿔 그 결과를 보여 줍니다. 기본값은 위 실측 조건의 한 점 예시입니다.
점 거리에 따른 Attribute Transfer 값 보기
Distance Threshold, Blend Width, 두 점 사이 거리와 원래 값을 바꿔 보세요. 파란 곡선은 단일 source point가 받는 점에 주는 영향 비율입니다.
거리 1.50: source 영향 56.25%, 받는 값 0.5625
Houdini 19.5.435에서 단일 source point, point scalar 속성, Elendt kernel, Max Sample Count 1로 얻은 실측 곡선입니다. 여러 source point, 다른 Kernel Function, 다른 클래스에서는 실제 값이 달라질 수 있습니다. 거리는 씬 단위입니다.
값이 안 넘어가면 거리와 속성 목록을 차례로 봅니다
- 받는 point와 source point의 P를 확인하고, 실제 거리가 Distance Threshold 안인지, 또는 Threshold + Blend Width 안인지 확인하세요.
- Attributes 탭에서 Points, Primitives, Vertices, Detail 중 실제 속성 클래스가 선택돼 있는지 확인하세요.
- 전송 목록에 속성 이름이 들어 있는지 확인하세요. 이름 패턴이 맞는데 값이 바뀌지 않으면 Allow P Attribute 설정을 확인하세요.
- Geometry Spreadsheet에서 전이 전후 값을 비교하세요. Distance Threshold와 Blend Width를 한 번에 바꾸지 말고 하나씩 조정하세요.
정해진 숫자를 외우기보다 씬의 점 간격에 맞추세요. 원하는 영향 반경을 Distance Threshold에 두고, 그 밖에서 얼마 동안 부드럽게 줄일지 Blend Width로 정합니다. 점이 0.01 간격인 장면과 10 단위 간격인 장면에 같은 값을 넣을 이유는 없습니다.
거리 구간을 나눠야 결과를 읽기 쉽습니다
한 줄로 정리하면 Distance Threshold는 source 값이 온전히 전달될 안쪽 범위이고, Blend Width는 그 바깥에서 값이 줄어드는 추가 범위입니다. 먼저 점 간격과 속성 Class를 맞춘 뒤, Threshold로 영향 반경을 정하고 Width로 감쇠 길이를 조절하세요.
참고 자료
vfx 잡학지식

댓글 0
첫 댓글을 남겨보세요.