플랜 나무 음영개선 방법

 

 

나무를 제작 하는 방법 중 하나로 플랜을 여러 장 겹쳐서 표현하는 방법이 있습니다.

 

알파로 잎만 따면 위 그림처럼 멋찐 나무가 나오게 되는데요.

여기에서 아쉬운 부분이 나무의 음영처리 부분입니다.

 

 

원인 과 해결방법 생각

 

이 나무를 맥스에서 열어보면 위 그림처럼 빛의 방향과 맞지 않는 음영이 드리는걸 볼 수 있습니다.

밝아야 하는 부분이 어둡다라.. 왜 그럴까요?

빛의 방향과 노멀의 방향에 따라 음영이 결정되는 3D라이팅의 원리 때문에 그렇습니다.

(빛의 방향과 노멀 방향이 가까워 질수록 밝아짐)

 

자 한번 보시죠.

빛의 방향과 노멀 방향이 비슷한 곳은 밝고, 반대인 경우는 어둡게 표현 됩니다.

그렇다면 플랜 대신 구형태의 나무를 만들면 되지 않을까~싶을 수도 있는데..

사실 나무를 만들어 보면 플랜 형태로 만드는게 퀄리티가 더 좋습니다.

 

그렇다면 다르게 접근해볼 수도 있겠죠.

해결 방법 : 닫친 형태의 메쉬 노멀 정보를 나무 플랜에 적용할 수 있다면~ 음영처리가 깨끗해지지 않을까~!!

 

여기에  해결해야 할 과제가 있는데요.

 - 바로 다양한 나무모양에 맞는 노멀 참고용 메쉬를 만드는 일입니다.

 

 

노멀 참고용 메쉬 만들기

 

어떻게 하면 나무모양의 메쉬를 얻을 수 있을까요?

나무는 플랜 형태라 닫친 형태의 메쉬를 만들기가 쉽지 않았는데요.

그럼 어떻게 나무모양의 닫친 메쉬를 만들었는지 한번 보겠습니다.

 

나무를 아래부터 위까지 Block 형태로 구분을 한뒤 --> 다시 각도 별로 새부 분할을 한번 더 해줍니다.

이렇게 구분된 영역 안에 포함된 Vertex를 묶어주는 거죠.

하나의 영역 안에 각 Block 기준으로 가장 거리가 먼 Vertex만 살립니다.

그렇게 되면 간혹 빈 영역이 나오기도 하죠.

 

샘플 표)

위 그림과 같이 영역 안에 Vertex가 있는 경우도 있고, 없는 경우도 나올 땐데요.

이렇게 나온 정보를 가지고 면을 생성해야겠죠.

 

이렇게 오른쪽에 있는 열린 Vertex를 기준으로 빈 영역을 보정한 면을 만듭니다.

Face를 만드는 Vertex 순서에 면의 앞뒤가 판별되기에 시계 반대 방향으로 Vertex를 등록하면서 모든 Block를 채워 주는 거죠.

 

이런 작업을 거쳐 생성된 메쉬입니다.

나무 영역을 감사는 형태로 어떤 나무라도 닫친 메쉬 영역을 만들 수 있습니다.

 

 

나무 노멀 수정하기

 

사실 참조 메쉬를 만들었다면 노멀을 수정하는 건 쉽습니다.

플랜 나무의 Vertex와 참조 메쉬의 Vertex 중 가장 가까이 있는 노멀 정보를 그대로 적용하면~ 되니깐요.

 

 

위 그림이 바로 이렇게 수정된 노멀 정보를 가지는 나무입니다.

- 이 방법은 근사값을 기준으로 노멀을 변경하는 방법이라 완벽하다? 라고 이야기는 못하지만, 보기에 문제 없으니 넘어가는 걸로~

 

 

실 적용 이미지

 

빛의 방향과 나무의 음영이 이제 일치하는 걸 볼 수 있습니다.

 

말도 안되는 방법이지만 이쁘면 장땡

 

 

'Max' 카테고리의 다른 글

MaxScript로 Dll Load 하기  (0) 2013.11.29
MaxScript) SVN 접근하기  (0) 2013.11.26
MaxScript) Matrix 함수 정보  (0) 2013.01.19
MAX Custom ViewCube 적용하기  (0) 2012.06.28
기준점을 이용한 Transform 회전  (0) 2012.03.22
Posted by Hwanggoon
,