SOP 어트리뷰트 트랜스퍼
근처에 있는 지오메트리에서 어트리뷰트를 이전시킬 수 있는 Attribute Transfer 노드에 대해서 알아보자.
Posted: April 6, 2018
Version: Houdini 16.5
Attribute Transfer Surface Operator
Attribute Transfer SOP 은 포인트 클라우드 와 동일한 기능을 하는 노드이다.
기본적으로 근처에 있는 지오메트리의 어트리뷰트를 가져와서(Transfer) 자신이 취할 수 있다.
지오메트리 요소 별로 네 가지 트랜스퍼 방식이 있다.
Detail: 근접한 디테일의 어트리뷰트를 가져온다.
Primitives: 근접한 면의 어트리뷰트를 가져온다.
Points: 근접한 점의 어트리뷰트를 가져온다.
Vertices: 근접한 버택스의 어트리뷰트를 가져온다.
Attribute Transfer 예제
후디니를 열고 네트워크 뷰에서 /obj 에 지오메트리를 하나 만든다.
만들어진 'geo1' 노드를 더블클릭하여 Geometry 레벨로 들어간다.
TAB 메뉴를 이용해 Grid SOP 과 Sphere SOP 을 하나씩 만든다.
만들어진 'grid1' 노드의 파라미터를 다음과 같이 수정한다.
Rows, Columns 속성은 각각 가로/세로로 나누려는 분할선의 개수를 말한다.
만들어진 'sphere1' 노드의 파라미터를 다음과 같이 수정한다.
Primitive Type 속성에서 Polygon Mesh 를 선택한다.
Rows, Columns 속성은 각각 가로/세로로 나누려는 분할선의 개수를 말한다.
Color SOP 을 두개 생성한뒤, 각각 그리드와 스피어 노드에 하나씩 연결한다.
그리드에 연결한 노드의 색은 검정색(Color: 0 0 0) 으로 수정한다.
스피어에 연결한 노드의 색은 빨간색(Color: 1 0 0) 으로 수정한다.
노드자체의 색뿐만 아니라 Color 노드의 파라미터에 있는 Color 속성값을 수정해야 한다.
이제 스피어가 가진 빨간색 정보를 그리드로 전달(Transfer) 해 보자.
Attribute Transfer SOP 을 만들고 다음과 같이 연결한다.
연결한 뒤에는 'attribtransfer1' 노드의 Display Flag 를 선택하도록 한다.
이때 두개의 인풋 연결순서에 주의하도록 한다.
첫번째 인풋에는 어트리뷰트를 전달받으려는 그리드 지오메트리를 연결한다.
두번째 인풋에는 어트리뷰트를 전달시키려는 스피어 지오메트리를 연결한다.
결과적으로 검정색이었던 그리드 전체가 빨간색으로 변한다.
Attribute Transfer 원리
'attribtransfer1' 노드의 파라미터를 자세히 들여다 보자.
[Attributes] 탭의 Detail, Primitives, Points, Vertices 속성에서 전달하려는 어트리뷰트를 정한다.
우리가 필요한 Cd 는 점 어트리뷰트이므로 Points 속성에 "Cd" 를 입력한다.
맨 위에서 이러한 트랜스퍼는 근접성에 기반하여 작동한다고 했다.
현재 스피어에 근접한 점들만이 아니라 그리드의 모든 점들이 빨간색이 되었다.
'attribtransfer1' 노드 [Conditions] 탭의 Distance Threshold 속성이 그 해답이다.
이 속성은 그리드 각 점의 위치를 기준으로 반경(원의 반지름 형태) 몇 미터까지 참조할 대상을 찾으려는지 정한다.
현재 그 기본값이 10 이기 때문에 그리드의 모든 점들이 스피어 지오메트리를 발견할 수 있게 된다.
이 Distance Threshold 값을 0.2 미터로 낮춰보자.
다음과 같이 스피어와 그리드가 접한 부분의 점들만 고리모양으로 빨간색이 된다.
스피어 안쪽과 바깥쪽에 있는 그리드 점들은 작아진 반경 내에서 스피어를 발견하지 못해 원래의 검정색을 유지한다.