블렌더/블렌더 팁

[blender tips] 09. 블렌더 베벨(bevel)이 이상할 때

노루3759 2023. 12. 25. 20:43
반응형

[blender tips] 09. 블렌더 베벨(bevel)이 이상할 때

 

베벨이 정상적으로 작동하지 않는 경우

가끔 블렌더를 하다 보면 베벨(ctrl + B)이 이상하게 작동하는 경우가 있습니다. A처럼 작동해야 하는데 B처럼 한 면으로 기운 것처럼 베벨 되죠.

 

 

또는 아래처럼 Bevel 모디파이어를 줬는데 amount 치수가 이상하게 동작하기도 합니다. 왼쪽처럼 베벨을 0.1m로 치수대로 주고 싶은데, 가끔 이 베벨 수치가 이상하게 작동할 때도 있습니다. 가로, 세로 2m 큐브에 10m의 베벨을 줘야 왼쪽과 오른쪽이 동일하게 보입니다.

 

 

 

둘 다 원인은 한 가지입니다. 오브젝트의 스케일 수치가 1이 아니기 때문입니다.

단축키 N을 눌러보면 아래 그림처럼 사이드 바가 나타납니다. 이 사이드 바에서 Item 항목을 보면 오브젝트의 Location, Rotation, Scale을 확인할 수 있습니다. 

그중 Scale이 1:1:1 비율이 아니기 때문에 베벨이 이상하게 동작합니다.

 

 

오브젝트 모드에서 Ctrl + A를 눌러 Scale을 선택해 apply 해주면, 아래 그림처럼 scale 값이 1:1:1로 바뀝니다. 그러면 베벨이 정상적으로 작동합니다.

 

 

두 번째 큐브도 사실 scale 값을 보면 0.01 : 0.01 : 0.01입니다. 이 큐브도 ctrl + A로 스케일을 1:1:1로 만들어 주면, bevel 모디파이어에서 amount 값을 올바른 수치로 조절할 수 있습니다.

 

 

오브젝트 좌표, 메쉬 좌표

그러면 왜 이런 현상이 발생할까요?

 

블렌더는 아래 그림처럼 여러 개의 모드를 제공합니다. 그중에서도 오브젝트 모드와 편집 모드를 간편하게 tap 키로 왔다 갔다 하면서 3d 물체를 만들거나 편집하죠. 

 

 

하지만 아래 레이어를 보면, 사실 이 오브젝트는 오브젝트 하위의 메쉬라는 녀석을 가지고 있는 형태입니다. 

 

 

아래 그림처럼 spreadsheet를 열어보면 이 큐브를 이루는 메쉬가 어떤 녀석들인지 볼 수 있습니다.

 

 

Mesh가 8개의 vertex, 12개의 edge, 6개의 face, 24개의 face corner로 이루어져 있다는 것을 알 수 있습니다.

 

 

점과 점이 모여 선을 이루고, 면을 이룹니다. 이렇게 만들어진 점, 선, 면으로 하나의 물체를 표현하는데 그 물체 덩어리를 mesh라고 합니다.

그리고 이 mesh는 오브젝트의 하위 데이터로 포함됩니다. 마치 아래 그림처럼요.

 

 

object mode는 이 오브젝트를 컨트롤하는 모드고, edit mode는 이 메쉬를 컨트롤하는 모드입니다. 이걸 tap키로 편하게 왔다 갔다 하면서 사용하는 것이죠. 하지만 엄연히 다른 영역입니다.

 

edit mode에서 점을 모두 선택해 움직여보면, vertex의 위치값 (position 값)이 달라지는 걸 확인할 수 있습니다.

 

 

근데 object mode에서는 오브젝트를 옮겨도 position 값이 바뀌지 않습니다.

 

 

오브젝트 좌표는 Origin을 기준으로 합니다. 그리고 글로벌 좌표에서 동작하죠. 그 값을 오브젝트 Transform이라고 하고, 아래 그림처럼 확인할 수 있습니다. 파란색 박스는 빨간색 박스에 비해 글로벌 좌표에서 z 축으로 3.9529m만큼 올라갔습니다.

 

 

반면 mesh의 각 구성요소들은 오브젝트의 origin을 원점(0, 0, 0)으로 삼습니다. origin을 원점으로 하는 로컬 좌표계에서 동작합니다. 파란 박스가 오브젝트 모드에서 z축으로 이동했지만, mesh의 position 값은 빨간 박스나 파란 박스나 동일합니다. 두 박스 모두 0번 점은 origin으로부터 -1, -1, -1 만큼 떨어진 곳에 위치합니다.

 

 

 

마치 아래 그림처럼 오브젝트는 글로벌 좌표에 위치하고, 메쉬는 각각 오브젝트의 오리진을 기준으로 위치합니다.

 

 

 

오브젝트와 메쉬가 기준으로 하는 좌표계가 다르다 보니 오브젝트의 scale 값이 1:1:1이 아니면 아래와 같은 현상이 발생합니다.

오브젝트 모드에서 파란색 박스를 x 축으로 2배, y 축으로 2배, z 축으로는 1배로 scale을 키웠습니다. 그런데 여전히 mesh의 position 값은 변하지 않았죠? mesh의 값은 빨간 박스나 파란 박스가 동일합니다.

 

 

mesh 자체의 값이 변한 게 아니라 mesh 상위의 오브젝트 비율이 바뀐 거죠.

실제 mesh의 상태는 A인데, 이걸 오브젝트 모드에서 가로, 세로 2배로 늘려준 겁니다.

 

 

아래 그림처럼 mesh에서 2배 하면 오브젝트에서도 2배가 되는 게 아니라, 메쉬는 그대로 1배인 상태로 두고 오브젝트를 2배로 늘려주는 겁니다. 그럼 뷰포트에서는 B처럼 보이죠. 

 

 

아래 그림처럼 A 하위에, B 하위에, Cube 하위에, Mesh 형태로 만들었습니다. 메쉬를 그대로 두고 x, y축으로 scale을 주는데, cube에서 2배, B에서 2배, A에서 2배로 주면 최종 형태에서는 x8배가 늘어난 형태로 표현됩니다.

즉, 오브젝트 모드에서 이 파란색 박스는 mesh를 최종 8배 키운 것처럼 보입니다.

 

 

오브젝트를 x축으로 8배, y축으로 8배 키운 상태에서 베벨을 주면 A처럼 1:8 형태로 베벨이 되는 것처럼 보입니다. 하지만 사실 메쉬 내부적으론 B처럼 베벨이 잘 되고 있어요. 1차로 메쉬 자체는 B처럼 베벨 되고, 2차로 이걸 오브젝트 모드에서 1:8로 스케일이 켜진 모습으로 보여주기 때문에, 우리 눈에는 최종적으로 한곳에 치우쳐져 베벨 되는 것처럼 보이는 겁니다. 

 

 

마치 아래 그림처럼요. 메쉬는 그대로인데 오브젝트 자체가 늘어났습니다. 근데 중간 과정이 우리 눈에 보이지 않으니 이상하게 변형된 것처럼 보이죠.

 

반대로 아래처럼 베벨하고, 이 오브젝트를 가로, 세로 8배씩 키워도 결과는 같습니다. 

 

 

동일한 사진을 아래처럼 확대해서 보여준다고 해서 원본 사진이 달라지는 것은 아닙니다. 단지 확대해서 보여주는 것뿐입니다. 

 

 

이와 같이 mesh는 동일한데 오브젝트 모드에서 각각 다르게 보이게 조절할 수 있도록 구성되어 있습니다.

아래 파란 박스는 모두 같은 mesh입니다. 하나의 mesh만 사용해도, 오브젝트 모드에서 오브젝트의 위치, 회전, 스케일 값을 다르게 해서 다양하게 보이게 할 수 있죠.

 

 

오브젝트 모드와 에디트 모드에서 편집한 사항은 근본적으로 다릅니다. 그래서 오브젝트 모드에서 조절한 사항을 아래 그림처럼 ctrl + A로 apply 해줘야 할 필요가 있습니다. 이 apply 명령은 오브젝트 모드에서 변경된 사항을 메쉬 정보로 apply 해 줍니다. ctrl + A  => scale을 적용해 주자, 오브젝트의 스케일 값이 1로 변형되었고, mesh 값도 이렇게 변형된 상태에 맞춰 재조정되었습니다.  

 

 

이제 1:1 비율로 베벨이 잘됩니다. 이 오브젝트의 상태 자체가 메쉬 원본이 되었기 때문입니다.

 

 

 

블렌더는 오브젝트 모드와 에디트 모드를 바로 왔다 갔다 하면서 편집할 수 있습니다. 특히 스케일의 경우 물체를 다 만들어 놓고 오브젝트 모드에서 조절하는 경우도 많습니다. 그러다 보니 오브젝트와 메쉬의 스케일 비율이 내 의도와 달리 변경되는 경우가 종종 있습니다. edit mode에서 조절한다고 한 건데 모르고 object mode에서 스케일을 변경한 거죠. 그러다 모디파이어를 사용하면 값이 이상해지기도 합니다. 베벨 값만 이상해 지는 게 아니라 solidify 등 전반적이 수치가 8:1로 적용됩니다. 이럴 때 scale 값을 살펴보면 역시 1:1:1 비율이 아닌 경우가 종종 있습니다.

이 scale 값이 블렌더를 처음 사용할 때 많이 헷갈리게 합니다. 그러다 보니 블렌더 초기에도 edit mode에서는 오브젝트 상태가 아닌 mesh 원본의 모습(1:1:1)을 보여줘야 한다고 하는 의견도 많았습니다. 뭐가 됐든, 알고 나면 별것 아닌 문제이기는 합니다.

 

 

[blender tips] 09. 블렌더 베벨(bevel)이 이상할 때

 

반응형