블렌더/모델링

[blender modeling] 01. subdivide modifier 사용하기 (4)

노루3759 2022. 11. 25. 21:41
반응형

- subdivide surface를 다루기 위한 몇 가지 방법

 

4. crease

 

이제는 오래된 기술이지만, 픽사에서 open subdive 프로젝트를 공개하면서 crease 기술을 함께 발표했다. crease는 주름이라는 뜻으로, 폴리곤의 edge에 crease라는 데이터를 이용해서 모서리의 곡률을 조절하는 기술이다. 당연히 픽사의 open subdive 기술을 subdivide의 알고리즘으로 사용하는 블렌더에서도 이 crease 방식을 지원한다. 

 

이전 포스팅에서 계속 subdivide를 사용할 때에 모서리의 곡면을 조절하는 방법을 다뤘다. 

 

아래 똑같은 두 모델의 모서리가 다른 것은 모서리 주변에 추가적인 edge 위치가 달랐기 때문이었다.

 

아래 그림처럼 모서리 주변에 추가된 egde가 모서리 가까이에 있을수록 모서리는 날카롭게 보인다. 모서리에서 멀 수록 모서리는 둥그렇게 보인다. 

 

이렇게 선과 선이 몰릴수록 subdivide된 면이 촘촘해지고, 선과 선 사이가 멀어질수록 subdivide된 면의 밀도가 낮아진다는 것을 명심해야 한다. 면이 촘촘하다는 것 (면의 밀도가 높다는 것)은 그 곡면의 해상도가 좋다는 의미이다. 많은 면으로 모델의 곡면을 표현하므로 자연스럽고 부드러워 보인다.

 

 

반면에 crease를 살펴보자. crease는 이렇게 선 주위에 다른 edge를 추가해서 면이 subdivide 된 후에 더 세분화 되도록 해주지는 않는다. 하지만 crease data로 곡률을 조절하므로 쉽게 모서리를 조절할 수 있다. 

 

아래 그림처럼 오른쪽 사이드바의 Item 항목에서 edge의 crease 값을 확인할 수 있다. 

 

이 crease 값을 올려보면 모델의 곡면이 바뀌는 걸 알 수 있다. 

 

아래 그림처럼 모서리의 곡률을 단지 모서리의 crease라는 값만 바꿔서 쉽게 조절할 수 있다. 기존 모서리 주변에 edge를 추가해서 모서리를 표현하는 방식은 모서리의 곡률을 바꾸고 싶으면 그때마다 edge의 위치를 수정해야 했다. 모델이 간단하면 상관없겠지만 모델이 복잡해지면 모델링을 다시 해야 될 정도로 골치 아파지기도 한다. crease 값을 사용하면 단순하고 간단하게 곡률을 쉽게 바꿀 수 있다. 

 

 

crease 값이 1일 때는 완전 각진 모서리가 만들어지지만, 실제 세상에서 crease 값이 1이 될 정도로 완벽하게 각진 물체는 존재하기 힘들다. 3d 그래픽에서 모서리를 표현하는 방법은 중요한 이슈이기 때문에 모서리를 자연스럽게 표현하는 방법을 알아야 한다. crease 값을 1이 아닌 0.95로 주겠다. 

 

이제 기존 edge를 추가해서 모서리를 표현하는 방식과 crease 값을 통해 모서리를 표현하는 방법의 차이를 보기 위해 아래처럼 모델을 만들어 subdivide를 주었다. 1번 모델은 모서리 주위에 추가 edge를 주는 기존 방식을 사용했고, 2번 모델에는 모서리 주변에 edge를 추가하지는 않고 crease 값을 0.95로 주었다. 

 

이 두 모델의 차이는 블렌더에서 똑같이 따라 해보면 금방 알 수 있다. 

 

1번 모델에서는 모서리가 아주 날카롭고 자연스럽게 표현되었다. 반면 2번 모델에서는 좀 어정쩡한 모서리가 만들어진 것을 알 수 있다. crease 값이 0.95라는 것은 충분히 날카로운 모서리를 만들 수 있는 수치인데도 말이다. wire frame 모드를 켜보면 원인을 쉽게 알 수 있다. 

 

차이는 바로 모서리 면을 표현하는 면의 수, 즉 모서리 면의 밀도에 있다. 1번 모델은 모서리를 더 많은 면으로 표현한다. 모서리를 표현하는 해상도가 좋다는 뜻이다. 모서리 주변에 추가 edge를 만들어서 모서리 주위에 이미 더 많은 모서리 면을 만들어 뒀기 때문에 subdivide 후에도 더 많은 면으로 모서리를 표현한다. 2번은 데이터 수치에 따라 곡면을 표현하기는 했지만 기본적으로 모서리를 표현하는 면의 수가 1번에 비해 부족하다. 따라서 좀 더 이상하게 보이는 것이다. 

 

해결 방법은 간단하다. 모서리를 표현하는 면의 수를 늘려주면 된다. subdivide에서 level을 올려준다. subdivide level이 올라갈수록 모서리는 자연스럽게 표현된다. 폴리곤 모델링에서는 면으로 모델을 표현한다. 면이 많을수록 자연스럽고 부드러운 곡면을 표현하는 것은 당연한 것이다. 실제 블렌더에서 한 번 해보기 바란다. 그러면 crease가 어떻게 작동하는지 바로 알 수 있다. 

 

하지만 이 방법이 완전한 것은 아니다. 면이 많다는 것은 결국 컴퓨터가 부담해야 하는 메모리가 많아진다는 뜻이다. 

아래 그림을 보면 알 수 있지만, subdivide level이 올라갈수록 면이 많아지게 된다. 곡면은 많은 면으로 표현하면 좋겠지만, 적은 면으로 표현해도 충분한 곳까지 면이 많아진다. 1번 모델에서는 모서리에만 면의 밀도가 많았다면, 2번 crease 방법을 사용한 모델에서는 불필요한 부분까지 면이 많아진다. 따라서 필요한 곳에 적절히 crease를 사용해야 한다. 

 

 

 

 

아래 그림 같은 모델을 준비하고 subdivide를 줬다. 

 

이제 모서리를 날카롭게 표현해 주기 위해 아래 그림처럼 edge를 추가해 준다. 그러면 오른쪽처럼 모서리가 날카롭게 표현되는 것을 알 수 있다. 

 

이때 이 사각형 모서리도 오른쪽처럼 날카롭게 보이게 하려면 역시 여기에 loop edge를 추가해 줘야 한다. 

 

 Ctrl + R로 Loop cut을 하려고 보면 아래 그림처럼 루프가 연결된다. 

 

하지만 이런 식으로 연결하면 아래 그림처럼 원통에까지 면이 나눠지게 된다. 그러면 원통에도 면의 밀도가 몰리는 부분이 생긴다. 모서리처럼 급격하게 꺾이는 부분에는 면의 밀도를 높여서 표현하는 것이 좋지만, 그럴 필요가 없는 부분, 예를 들어 파란색이나 빨간색으로 표시한 부분처럼 필요 없는 부분까지 면이 많아지는 것은 바람직하지 못하다. 여기는 전체적으로 면이 고르게 나눠져야 좋은 곳이다. 특히 빨간색 표시한 곳은 둥그런 곡면이라 모델이 이상하게 보이기까지 한다. 

 

오브젝트 모드에서 보면 면이 이상하다는 것을 금방 알 수 있다. 이곳에 작은 면이 몰려 있기 때문이다. 

 

 

이 전에 사각형 면이 가지는 방향성에 대해 설명한 적이 있다. 사각형은 아래 그림처럼 두 가지 방향성을 가진다. 

아래 그림처럼 빨간색 사각형 면이 빨간색과 파란색 방향으로 선을 이어주는 것은 당연한 일이다. 이걸 수정하기 위해서는 면의 방향을 바꿔줄 수 있도록 폴리곤을 수정해야 한다. 그러면 이야기가 너무 길어지므로 다음 포스팅에서 하기로 하고 여기서는 먼저 crease를 사용해서 해결하도록 하겠다.  

 

 

Ctrl + Z로 다시 뒤로 돌아간다. 그리고 아래 그림의 보라색 표시한 곳처럼 선을 선택해서 Crease를 0.95로 주겠다. 

 

그러면 아래 그림처럼 표현되는데, subdivide level이 너무 낮으면 면이 부족해 왼쪽처럼 이상해 보인다. subdivide level을 6까지 올려주면 아주 깨끗하면서도 우리가 원하는 모델을 얻을 수 있다. 원통은 전체적으로 부드럽고, 사각형의 면도 깨끗하고 날카롭다. 

 

wire frame을 켜보면 아래 그림처럼 면이 아주 많아졌다. 여기서 주목할 점은 빨간색 표시한 곳에서 면의 밀도가 한곳으로 쏠리지 않고 전체적으로 균일하다는 것이다. 파란색 표시한 곳도 면이 전체적으로 균일하게 분포되어 있다. 모서리처럼 면이 많이 필요한 곳은 밀도를 높게, 그렇지 않은 곳은 면이 균일하게 만들어 줄 수 있다. 

 

마지막으로 이렇게 면이 많으면 컴퓨터에 부담이 많이 가므로 아래 그림처럼 subdivide의 optimal display 옵션을 켜준다. 그리고 subdivide 6단계에서 면이 아주 잘 표현된다는 것을 알았으므로 levels Viewport를 2단계로 낮춰준다. 그리고 render level을 6단계로 올려준다. 그러면 뷰포트에서는 좀 어설퍼 보여도 렌더링을 했을 때 아주 깔끔한 모델을 얻을 수 있다. 어디까지나 우리 최종 목표는 렌더링 결과를 좋게 얻는 것이기 때문에, Render level이 Viewport level보다 높아야 한다는 것을 명심해야 한다. 

 

 

subdivide를 할 때, crease를 사용했을 때와 edge를 추가했을 때의 장단점이 명확하다. edge를 추가한다는 것은 면의 밀도를 올려 면의 해상도를 부분적으로 올려줄 수 있다. crease를 사용하면 면을 고르게 유지하면서 부분적으로 edge를 날카롭게 보이게 할 수 있다. 어떤 게 좋다, 어떤 걸 사용해야 한다가 아니라 상황에 따라 사용자가 선택해서 사용할 수 있어야 한다. 

 

crease는 아래 그림처럼 곡면과 평면이 섞여 있을 때 전체적으로 면을 균일하게 유지하면서 부분적으로 날카로운 엣지를 만들 때 참 좋은 것 같다. 

 

wire frame을 켜보면 전체적으로 면이 균일하다는 것을 알 수 있다. 면을 균일하게 유지하면서 crease를 표현한다는 것이 유용한 경우가 많다. 면을 전체적으로 균일하게 유지하거나 토폴로지를 크게 깨지 않으면서 부분적으로 주름을 만들고 싶을 때 crease를 사용하면 좋다.

 

 

 


01. subdivide modifier 사용하기 - 연결된 글입니다. 

 

01. subdivide modifier 사용하기 (1)

01. subdivide modifier 사용하기 (2)

01. subdivide modifier 사용하기 (3)

01. subdivide modifier 사용하기 (4)

01. subdivide modifier 사용하기 (5)


 

 

반응형