Grasshopper

[라이노 그래스호퍼 벡터] 챕터 01. 3D 모델링에서의 벡터 소개

wwrww 2021. 3. 24. 21:52


(1) 컴퓨테이셔널 모델링과 벡터 


라이노라는 3d 모델링 툴은 사용자에게 직관적인 모델링 환경을 제공해주지만, 그래스호퍼는 사용자가 객체를 만들고, 제어하는 일에 일일이 간섭을 해야 한다. 이 간섭을 할 때 수학적으로 가장 필요한 개념이 바로 벡터이다. 벡터는 수학과 물리학에서도 중요하게 다뤄지는 개념이지만, 여기서 공부하고 정리하는 벡터는 철저하게 컴퓨터에 기반한 3d 모델링을 하는 상황에서의 벡터에 대한 개념이다.

 

(2) 벡터는 왜 필요한가?


3D 모델링에서 벡터가 필요한 상황은 무수히 많지만, 그 중에서도 세 가지도 정도를 꼽자면 이렇다.


1. 내가 만든 객체의 방향을 알고 싶다. 

 

면의 방향 Direction of surface


예를 들어보자. 라이노에서 중요한 개념 중에 하나는 면이 향하는 방향이다. 모델링 도중 면의 방향이 생각한 것과 반대로 되어 있어 다른 쪽으로 offset 되는 경험을 한적도 있을 것이다. 이처럼 변 혹은 면의 방향을 결정하는데 벡터가 사용된다. 


2. 내가 만든 객체를 움직이고 싶다.


라이노에서 객체를 움직이는 과정은 별 어려움없이, 최대한 직관적으로 이루어진다. 그저 move라는 명령을 내리고, 이동할 지점을 마우스로 선택해주면 된다. 그러나 그래스 호퍼에서 객체를 움직이고 싶다면, 이 객체를 어느 방향으로, 얼마만큼 움직일 것인지에 대한 지정이 필요하다. 이때 벡터가 사용된다.


3. 다른 객체의 상대적인 위치를 알고 싶다.

 

절대좌표는 X, Y, Z 평면 상의 지점을 말한다. 그러나 때로 모델링을 하다보면 "A라는 객체로부터 어디까지~"라는 식의 상대적인 좌표가 필요한 경우가 있다. 이때 A의 위치를 알고 있다면, 나머지 지점들의 상대적인 위치 역시 벡터를 통해 구할 수 있다. 


(3) 그래서 벡터란?


벡터들이 활용되는 모습을 관찰하면, 벡터가 두 가지의 역할을 잘 한다고 파악할 수 있다. 첫 번째 벡터는 방향(Direction)을 알려주고, 그리고 길이/양(Length/Amount)을 알려준다. 정리하자면 벡터는 3d 공간 상에서 주어진 정도의 이동을 나타내는 추상적인 개념이다.

 

(4) 벡터를 표현하는 방법

 

벡터는 v = <a1, a2, a3> 이런 식으로 표현한다. 소문자 v 위에 화살표 모양, 그리고 꺽쇠 안에 각각 X, Y, Z 축에서의 이동이나 길이를 나타내는 벡터 구성 요소를 적는다.

 

(5) 벡터 시각화 하기

 

그래스호퍼의 벡터 시각화 컴포넌트 Component visualizing vectors in grasshopper

 

라이노 상에서 시각화 된 벡터 Visualized vector in Rhino

앞서 이야기 했듯이 벡터는 추상적인 개념이다. 따라서 그래스호퍼에서 벡터 컴포넌트로 벡터를 하나 만든다고 해도, 그 벡터가 시각화되지 않는 것은 당연하다. 그러나, 이 벡터로 어떤 객체를 움직인다고 한다면, 잘 작동할 것이다. 하지만 때로 모델링을 하면서 벡터의 시각화가 필요하다. 이때는 그래스호퍼의 Vector display, Vector display ex 컴포넌트를 사용한다.

 

- 벡터 시각화하기 준비물 

 

추상적인 개념인 벡터를 시각화하기 위해서는 세 가지의 준비물이 필요하다.

 

  • 시작점 (Anchor point)
  • 선분 (Line segment)
  • 화살표 (Arrowhead) 

선분은 길이, 화살표는 방향을 뜻하며 이렇게 만들어진 벡터는 앵커 포인트를 기준으로 시각화된다.


* 본 포스트는 Raja Issa 의 Essential Mathematics for Computational Design 문서와 유튜브 영상을 참고, 공부하여 작성하였습니다.
* Raja Issa 의 영상은 하단 링크를 참고해주세요.

 

https://youtu.be/C6 pEBqqYnWI