본문 바로가기

Houdini/Houdini1_Starter

STARTER01_EP01. GROUP

목차

  • Group Node
  • 알아두면 좋은 그룹 관련 노드들
  • 일기

모든 랭글러를 위하여!

 

어떠한 셋팅을 하지 않은 상태에서 그룹 노드를 연결하면 일단 모든 것을 선택하게 되어있다.

우리가 원하는 특정 포인트 혹은 특정 프리미티브를 골라서 그룹으로 만들려면?


Group Node

Parameter

  • Group Name : 그룹의 이름 지정

Node info 에서 Group name 을 확인 할 수 있다.

  • Group Type
    • Scene View에서 노란색으로 그룹으로 묶인 내용을 확인할 수 있다.
    • Geometry Spreadsheet에도 그룹으로 묶인 인자들은 주황색으로 나타난다.

Group Type : Points
Group Type : Primitives
현재 0-4번 포인트가 A라는 이름의 그룹으로 묶여있다.

※ 원하는 포인트에 대해 그룹을 생성하는 방법

  1. Scene View에서 그룹을 생성하고자 하는 포인트들을 직접 선택해서 그룹 생성
  2. Base Group에 구체적인 숫자를 입력해서 그룹 생성
  • Base Group
    • 단일 숫자 : 숫자에 해당하는 포인트 번호를 가진 포인트가 그룹에 포함됨 ex) 0 1 2...
    • 범위 지정 : 범위에 해당하는 포인트 번호를 가진 포인트가 그룹에 포함됨 ex) 0-4 = 0번부터 4번 포인트까지 그룹에 포함됨
    • 섞어 쓰기 : 단일 숫자와 범위지정을 섞어서 쓰는 것도 가능하다. ex) 0-4 13 6-8
      • 섞어서 사용하거나 단일 숫자를 기입할 경우, 구분은 띄어쓰기로 들어간다. 평소 하던 습관처럼 콤마(,)를 숫자 뒤에 찍고 띄어쓰기를 한 뒤 다른 숫자를 기입했는데 인식을 했다. 하지만 띄어쓰기 없이 콤마 뒤 바로 숫자를 적었을 경우엔 인식을 못했다.
        • 0, 1, 2 → 0번부터 2번 포인트가 그룹에 추가되었다.
        • 0,1,2 → 0번 포인트 뒤에 적힌 내용은 다 무시되었다.

※ 그룹은 Attribute와 매우 유사하다.

※ 지오메트리 시트에서 그룹에 표시된 0, 1 은 각각 미포함, 포함을 나타낸다.

0-4번 포인트는 A 그룹에 포함되었기 때문에 1, 나머지 포인트들은 그룹에 포함되지 않았기 때문에 0을 나타낸다.
Base Group 옆의 커서 모양을 눌러주면 셀렉트 모드로 들어갈 수 있다.(아래 사진에 계속)
Scene View가 Select 모드로 바뀐 것을 확인할 수 있다.

※ Select mode인 경우, 원하는 포인트를 드래그하고 엔터를 입력해주면 그룹에 포함된다. (엔터를 입력해주면 Scene View는 Select mode에서 View mode로 바뀐다.)

※ Select mode 진입 후 셀렉션이 끝나고 엔터를 입력하는 것을 잊는 경우가 종종 있다. 그룹 노드 색상으로 확인 가능하니 꼭 확인하자.(중요함)

보라색은 아직 엔터 입력 안된것
엔터를 입력한 후의 그룹노드

※ Select mode에서 다른 포인트를 그룹에 '추가'하고자 할 경우, Shift + 드래그해주면 된다. Shift를 누르지 않으면 기존에 그룹에 들어있던 내용은 사라지고 새로 선택하게 된다.

 

  • Keep in Bounding Regions

type 의 종류

※ Group Type에 따라 Keep in Bounding Regions가 작동할수도 안 할 수도 있다.

  • Box, Sphere 는 Points, Primitives 상관없이 작동한다.
  • Object, Volume 은 Points, Vertices에서만 작동한다.

Bounding Type에 따라 표시된 임의의 영역 안의 Point(혹은 Primitives)들을 그룹화 할 수 있다.

  • Size로 임의의 영역의 크기를 조정할 수 있다.
  • Center로 임의의 영역의 위치를 조정할 수 있다.
    • 문득 든 생각은 Center에 애님 값을 입력하면(x에 cos($F), z에 sin($F) 이런 식으로) 어찌 될까 했는데, 시간에 따라 그룹에 추가되었다가 빠졌다가 하는 것을 확인할 수 있었다.
  • Bounding Object
    • 그룹의 두번째 인풋노드에 들어온 오브젝트를 사용해서 영역 지정.(오브젝트가 겹쳐지는 부분에 대해 그룹화)
  • Bounding Volume
    • 입력된 볼륨 데이터를 사용해서 영역을 지정
    • 볼륨의 해상도가 낮으면 내가 원하지 않는 영역들도 그룹화될 수 있다.(isooffet의 Uniform Sampling Divs 수치 등)

isooffset node : 입력된 지오메트리를 볼륨으로 치환한다.

 

  • Keep by Normals
    • Direction과 Spread Angle을 가지고 만들어지는 노멀의 영역 안에 원본 데이터의 노멀을 비교해서 노멀값이 포함된다면 그룹화
      • ex) Direction이 0,0,1 / Spread Angle이 30일 경우, 벡터 0,0,1에 대해 30도에 해당하는 원뿔이 형성된다. 원본 노멀이 -30 ~ 30 안에 있다면 그룹에 포함된다.
    • Spread Angle이 0일 경우 = 아무것도 그룹에 포함되지 않음 / Spread Angle이 180일 경우 = 모든 영역이 그룹에 포함됨
  • Include by Edges
    • Group Type 에 따라 선택 및 사용가능한 항목이 다르다.
    • 얼마나 면이 급격하게 꺾여있는지를 계산해서 그룹화
    • Unshared Edges 를 활성화하면 테두리의 포인트/엣지/프리미티브 가 선택된다.

Group Type이 Points 일 때
Group Type이 Primitives 일 때
Group Type이 Edges 일 때


알아두면 좋은 그룹관련 노드들

Group by Range

- 파라미터를 건들지 않을 경우에는 일반 그룹 노드를 연결한 것과 차이가 없다.

- 그룹을 선택해주는 방식 자체는 Range Type에서 설정할 수 있다.

- Relative to Start/End

- Start = 0 / End = 0 -> 전체 선택, Start = 5 / End = 3인 경우, 숫자만큼 앞 / 뒤로 그룹에서 해제된다.

※ 그룹에 대해서도 애니메이션은 잘 작동한다.

 

- Range Filter : Select A of B(B개씩 잘라내고, 그중에서 A개를 선택하라)

- Offset은 데이터를 선택하는 위치를 정해주는 것/몇번째 데이터를 선택하라는 뜻(0부터 시작)

 

Group Combine

- 그룹을 합쳐주거나(합집합) 겹쳐진 부분만 선택해주거나(교집합) 그룹을 빼주거나(차집합) 할 수 있는 노드

- Combine을 활용하기 위해서는 우선적으로 그룹이 정의되어있어야 한다.

- Group 은 결과그룹을 의미한다. Combine 작업된 내용이 결과그룹의 네이밍으로 그룹화된다.

- Combine 노드의 작업을 수행하고, 결과를 D 라는 그룹으로 만들어준다는 것

- 제일먼저 그룹 D는 A이다(Equals)가 수행된다. 그리고 그것은 그룹 B와 합집합 연산을 수행한다.

- Equals 왼쪽의 Group에 이미 생성된 그룹 네이밍이 들어가게 되면 해당 그룹으로 덮어쓰기를 하게 된다.

- Equals 오른쪽에는 여러 그룹을 나열할 수도 있다.

그룹 A는 그룹 A와 C가 통합된 데이터로 덮어씌워진다.

- Union(Or) : 합집합 / Intersect(And) : 교집합 / Exclusive Or : 합집합 - 교집합 / Subtraction : 차집합

Blast Node : 그룹으로 묶여진 것들에 대해 따로 떼어내서 가공할 수 있도록 해준다.

Group : 선택하려는 그룹의 이름

Delete Non Selected : 체크해제되어있을 경우, Group에 적혀있는 데이터가 삭제되어 표시되고, 체크되어있을 경우 그룹을 제외한 데이터가 삭제되어 표시된다.

 

Group Copy

- 두 오브젝트가 필요하다.

- 그룹카피의 두번째 인풋으로 레퍼런스 오브젝트가 들어가게 된다.

- 레퍼런스 오브젝트가 가지고 있는 그룹의 정보를 원본에 복사할 수 있다.

- 그룹 카피의 정확도를 높이기 위해서는 (이왕이면) 레퍼런스 오브젝트와 원본 오브젝트의 Point 숫자 / Primitive 숫자가 같아야 한다.

  • 왜냐하면 포인트/프리미티브 번호에 대응되어서 그룹이 복사되기 때문이다.

우리가 원한 결과
잘못된 Group Copy의 결과

- Group Copy Parameter

- 체크가 활성화 되었다는 뜻은 그 그룹을 가져와서 복사하겠다는 뜻이다.

- Parameter를 활용하면 레퍼런스 오브젝트에서 내가 원하는 특정그룹만 복사해서 원본에 넘길 수 있다. 

- Group Name 이 원본에 같은 것이 존재할 경우, Group Name Conflict에 따라 작업을 수행한다.

이름이 같을 경우 : Skip - 건너뛰기 / Overwrite - 덮어쓰기 / Add Suffix - 이름 뒤에 꼬리표 추가하기

- 원본 오브젝트에 같은 이름의 그룹이 존재할 수 있으므로, 처음부터 접두사를 사용해서 그룹카피를 해주는 것도 가능하다.

 

Group Promote

- 노드를 연결한다고 해서 바로 어떠한 작업을 수행하는 것은 아니다.

- 그룹타입을 변경해서 다시 그룹화시켜준다.

Primitives Group A
Group Promote를 통해 Primitives를 Points 로 타입변경을 해준 것을 확인할 수 있다.

- Group Promote를 활용하면 위에서 배운 Group 방법 중 Keep in Bounding Regions의 Bounding Object를 좀 더 적극적으로(?) 사용할 수 있다.(포인트로 그룹화한 내용을 Promote를 사용해서 Primitives 로 타입변경 가능!!)

 

- Group Promote Parameter

- Keep Original Group : 활성화해줄 경우, Promote 를 활용해서 타입 변경을 진행한 뒤에도 원본 그룹이 유지된다.

- Include Only Elements on the Boundary :활성화해줄 경우, Boundary(경계면)의 요소들만 그룹화해준다.

- Output as Integer Attribute : 활성화해줄 경우, 타입 변경을 진행한 뒤 그룹으로 저장하는 것이 아닌, Integer Attribute로 데이터를 저장한다.(아래 사진의 오른쪽 주목)

Output as Integer Attribute 비활성화
Output as Integer Attribute 활성화

- Include Only Elements Entirely Contained in Original Group : Points 그룹을 Primitives 그룹으로 Promote를 적용할 경우, 원치 않는 데이터가 포함될 수 있다.(해당 포인트에 인접하는 프리미티브가 다 선택되기 때문) 해당 항목을 활성화해줄 경우, 원본 그룹에 완전히 포함되어있는 요소만 그룹화한다.

 


 오늘은 그룹에 대해 배웠다.

 이런저런 튜토리얼을 따라 해보면서 그룹 노드를 사용하는 것을 여러 번 보긴 했지만, 다른 노드들에 대한 활용 방법도 알 수 있어서 더욱 좋았고, Group Copy와 Group Promote는 머릿속에서 떠오른 것에 대해 조금은 활용해볼 수 있을 것 같다는 생각이 들었다.

'Houdini > Houdini1_Starter' 카테고리의 다른 글

STARTER03_Mantra(Material, Group)  (1) 2023.01.10
STARTER02_Part3. Group Exercise  (2) 2023.01.07
STARTER02_Part2. Group Exercise  (0) 2023.01.05
STARTER02_Part1. Group Exercise  (0) 2023.01.05
Houdini 1 Starter_00  (0) 2023.01.02