Wednesday, February 11, 2009

Render to Texture를 이용하여 불켜진 로우폴리 실내 만들기 3/3



2편에 이어서......




35. 다시 맨 처음에 만들었던 interior 재질로 돌아갑니다.
비워두었던 multi/sub-object의 1번 재질로 가서 Standard재질을 VRayLightMtl 로 바꿔줍니다.

 

그리고 None 버튼을 눌러 bitmap 맵을 선택하고 우리가 베이킹 했던 HDR 이미지를 불러옵니다.

36. 아래와 같이 HDRI를 선택하고 열기 버튼을 누르면 옵션창이 뜨는데, 여기에 Internal Storage 부분의 Real Pixels (32 bpp)를 선택하고 OK를 누릅니다.

 

37. 그리고 Map Channel을 1번으로 지정을 합니다.



38. 박스 오브젝트에 이번에는 Material 모디파이어를 추가하고 id 1번을 그대로 둡니다.


 

39. 박스 오브젝트만 선택한 상태에서 Alt + Q 를 클릭하여 isolate 시킨 다음 조명이 없는 상태에서 랜더링을 해 봅니다.

베이킹이 제대로 되어 아래 그림처럼 7초만에 랜더링이 되었습니다.

 

40. 근데 뷰를 바꿔서 랜더링을 해 보니 천정부분에 튀어나온 부분에 조명이 보입니다.
이는 빛이 새는 것이 아니라 가운데 벽과 형광등의 모서리를 실내 천정보다 조금 더 바깥쪽으로 튀어나오게 했기 때문입니다.

 

41. Material 모다파이어를 삭제하고 Unwrap 모디파이어는 collapse 시켜줍니다.

그리고 열려진 바깥부분 border를 잡아서 shift + 스케일을 하여 바깥쪽으로 면을 extend 시킵니다. 그리고 그 상태로 뒤로 shift + 무브를 하여 뒤쪽으로도 이어준 다음 cap 을  해서 막아줍니다.



42. 아래 그림처럼 되었습니다. 그랬더니 바깥벽부분에 밝은 색으로 재질이 지정이 되었습니다. 이 상태로 사용하게 되면 바깥쪽 벽면에서 빛을 내게 되므로 수정해야 합니다.



43. unwrap 모디파이어를 다시 하나 올립니다. id는 여전히 1번인 상태입니다.  edit 를 눌러 보면 앞에서 우리가 만들었던 Unwrap 상태 그대로 표시가 되지만 새로 만든 폴리곤들이 겹쳐져 있는 것을 볼 수 있습니다.

이제 face 서브오브젝트 상태에서 새로 만들었던 바깥쪽 벽면들을 선택해 줍니다. 뒷면의 face를 선택한 다음 + 모양의 아이콘을 두 번 클릭하면 외벽 전체가 선택이 됩니다.

그리고 그 상태에서 unwrap 창의 메뉴에 mapping > unfold mapping > walk to closest face 를 선택하고 OK를 합니다.

 

44. 아래 그림처럼 선택한 부분의 UV가 펴 졌습니다. 이 face 들을 메뉴아래의 네번째 아이콘인 freeform mode 아이콘을 선택하여 기존 폴리곤들이 있는 위치가 아닌 빈 곳에 크기를 조절해서 위치시켜 줍니다.

 


45. unwrap edit 창의 드롭다운 메뉴에서 맨 아래 reset texture list 를 선택하고 다시 드롭다운 메뉴에서 우리가 만들었던 hdr 이미지를 찾아서 선택을 하면 uv편집창에서 이미지를 볼 수 있습니다.

아래 그림처럼 벽면 face들의 uv를 검은색으로 되어있는 부분에 크기를 줄여서 위치시킵니다.

 

만일 unwrap을 제대로 다루지 못하거나, 이 과정이 번거롭다고 생각되시면 render to texture를 하시기 전에 외벽을 먼저 만들어 놓고서 Render To Texture의 Use Automatic Unwrap 옵션을 사용하여 베이킹을 하셔도 됩니다.

46. 다시 material 모디파이어를 추가하고 1번으로 둔 상태로 랜더링을 해 봅니다.

 

47. 새는 곳 없이 제대로 나왔네요.




이제 84폴리곤 정도 되는 크기의 건물 실내가 모두 만들어 졌습니다.

이를 이용하여 실제 랜더링을 해 봅니다.



48. 적당한 야간씬을 준비합니다.

창문의 유리재질은 일반적인 투명유리 재질을 사용합니다.



49. 아래 그림처럼 다른 내부조명 없이 랜더링을 해 봅니다.
























































50. 이제 우리가 만들었던 84폴리곤의 실내 를 merge 시켜서 가져옵니다. 몇 개 더 복사해서 위치시킵니다.

재질을 보기 위해서 picker (재질편집기의 스포이드 아이콘) 를 눌러 box 를 클릭하면 재질편집기에 우리가 만들었던 interior 재질이 표시됩니다.

1번 id 재질의 VraylightMtl은 우리가 만들었던 HDRI가 사용되어지고 있습니다. 세기를 적당히 조절한 다음 랜더링을 하면 아래 그림과 같은 조명이 켜 진 실내가 만들어 집니다.



이제 만들어 놓은 실내의 마감재를 바꾸고 싶다면 material 모디파이어를 삭제한 다음 각 재질 id에 지정된 마감재의 색상이나 재질, 텍스쳐 등을 수정한 다음 다시 render to texture를 이용해서 HDRI로 만들어 사용하시면 됩니다.


~끝

Tuesday, February 10, 2009

Render to Texture를 이용하여 불켜진 로우폴리 실내 만들기 2/3


| Eyecg.com tutor

아래 게시글은 eyecg.com 에 2009/02/08 19:59:38 에 게시한 튜토리얼입니다.
무단전제 및 재배포 절대 금지입니다.
 
 
 
 
 
1편에 이어서......




 
19.  이번에는 천정의 형광등을 만듭니다.
 
interior 재질 6번의 스탠더드 재질을 VRayLightMtl로 바꿔서 형광등으로 사용될 맵을 지정하고, 세기는 4.0 정도로 높여 줍니다.


 
20. 플랜을 하나 만들어서 형광등 크기에 맞게 적당히 크기를 설정하고, UVW Map 모디파이어를 추가한 다음 채널을 6번으로 지정합니다. 그리고 Material 모디파이어를 추가하여 6번으로 설정을 합니다.
 
여기에 사용된 형광등 맵은 별도로 형광등을 모델링 하여 Orthographic 카메라에서 랜더링 한 이미지를 사용하였습니다.

 
 
 


21. Edit poly를 추가하거나 혹은 editable poly로 바꾼 다음 border를 선택하여 shift+이동을 하여 약간 위쪽으로 두께를 만들어 줍니다.


 
22. 천정에 적당한 위치에 여러개를 복사해서 배치합니다.


 
 
23. 이제 실제 형광등으로 사용될 조명을 설치를 합니다. 플랜으로 만든 형광등 오브젝트에 비해 약간 낮게 위치시킵니다.

 
 

24. 반드시 Invisible 을 체크하여 랜더링시 직접 보이지 않도록 합니다.


 
 
25. 이제 랜더링을 해 봅니다.
 
Default lights와 Hidden lights 는 끄고 랜더링 하도록 합니다. GI를 켠 다음 평소 사용하는 GI설정을 합니다. 여기서는 Irradiance map (low preset) 과 Lightcache를 사용하였습니다.

 
 

26. 랜더링을 해 보니 약간 어둡니다. 실제로 여기서 좀 어두워도 크게 상관은 없으나 가능하면 실제처럼 보일 수 있도록 만들어 주는 것도 좋습니다. 특히 VrayFrameBuffer 를 사용하는 경우 히스토그램을 보면서 노출정도를 확인해 볼 수 있습니다.


 

27. Vraylight의 세기를 10에서 20으로 좀 높여서 랜더링 해 봤습니다. 적당히 밝아진 것 같습니다.
랜더링 시간이 약 1분 정도 나왔네요.

 
 

28. 이제 실내 오브젝트의 모든 모다피어어들을 collapse 시켜서 하나의 editable poly로 만들어 줍니다. 그리고 문 2개와 천정의 형광등 오브젝트 역시 모두 attach시켜서 하나의 오브젝트로 만들어 줍니다. 기존의 문과 형광등에 지정되어 있던 uv 채널역시 통합이 되어서 그대로 사용할 수 있습니다.  문은 5번, 형광등은 6번입니다.


 

29. 하나로 합쳐진 오브젝트를 Unwrap 모디파이어를 추가하여 면들이 겹쳐지지 않게 펴 줍니다.
Unwrap의 방법은 여기서 다루지 않습니다. Unwrap을 모르시는 분은 이 부분은 그냥 생략하셔도 됩니다.
 
이 때 Unwrap의 Map Channel 은 1번으로 하도록 합니다.


 

이제 정리를 해 보면, 벽면의 맵채널은 2번, 천정은 3번, 바닥은 4번, 문은 5번, 형광등은 6번 이며 unwrap을 이용한 전체 오브젝트는 1번을 사용합니다.
 
지금까지는 각 부분들이 multi/sub-object의 각각의 재질들을 사용하고 있습니다.
 
 
 
30. 이제 Render to Texture를 합니다. 랜더메뉴에 있는 Render To Texture를 선택합니다.
 
박스 오브젝트를 선택을 한 상태로 아래 그림과 같이 옵션들을 확인합니다.
 
우선 Path 경로를 설정합니다. 이는 베이킹 된 텍스쳐가 저장될 경로를 지정해 주는 것으로, 원하는 폴더를 지정하면 됩니다.
 
오브젝트가 선택이 되어있지 않으면 Name의 Box01이 보이지가 않습니다.

 
 
그리고 Mapping Cordinates 에서 Use Existing Channel 을 선택하고 Channel 1번을 선택을 합니다.
 
이는 우리가 Unwrap을 통해서 편 UV를 1번으로 지정을 했기 때문입니다. 만일 앞서서 Unwrap을 하지 않고 생략을 했다면 두번 째 옵션인 Use Automatic Unwrap을 선택을 합니다. 이 때에도 채널은 1번을 사용하도록 지정해야 합니다.
 
참고로 채널 드롭다운을 내려보면 우리가 지금까지 지정했던 모든 맵채널들이 표시가 될 것입니다.
 

 
31.  Add 버튼을 누르면 아래와 같이 작은 팝업창에 Available Elements가 나타나고, 여기서 VRay_CompleteMap을 선택한 다음 Add Elements를 해 줍니다.
 
그러면 Output 창에 VRay_CompleteMap이 등록이 되며 사이즈가 256x256으로 설정이 됩니다.
 
256x256픽셀과 같이 너무 작은 이미지로 작업을 하면 퀄리티가 낮아지므로 1024x1024를 클릭하여 좀 크게 만들도록 해 줍니다.
 
그리고 File Name and Type 옆의 박스버튼을 눌러서 베이킹 된 이미지가 저장될 파일이름과 종류를 지정해 줍니다.
 
이 때 우리는 32bit float 포맷인 HDR 포맷을 사용하도록 합니다.


 

32. HDR 포맷으로 지정을 하면 HDRI Save Settings 가 나타나는데 Non-Clamped (Real Pixel) Color Channel 로 지정을 합니다.


 

33. Render to Texture 옵션창 하단의 Render 버튼을 누릅니다. (랜더링시 사용하는 랜더아이콘이 아닙니다)
 
이 때 아래와 같은 오류메시지가 뜬다면 그냥 무시하고 진행합니다.
옵션중에 새로 베이킹 된 텍스쳐를 기존 재질의 Shell 재질을 이용해서 원하는 맵슬롯에 지정해 주는 옵션이 있는데 여기서는 필요없으므로 그냥 Output into Source 옵션을 사용했기 때문에 나타나는 메시지입니다. Continue 를 눌러줍니다.


 

34. 우리가 만들어놓았던 Unwrap 형태에 맞게 아래 그림처럼 랜더링이 됩니다. 그리고 옵션창에서 지정한 경로에 이 이미지가 HDR파일로 저장이 됩니다.
 
만일 저장이 되어있지 않다면 이 창에서 직접 저장아이콘을 눌러 저장해 줄 수도 있습니다.


 
Unwrap을 하지 않고 Automatic Unwrap 옵션을 사용하였다면 아래 이미지와 같이 자동으로 unwrap을 해 준 다음 랜더링을 해 줍니다.
 
이 경우 문 테두리 등이 문 앞면과 분리되어 저장이 되는 것을 볼 수 있는데 가능하다면 직접 unwrap을 해서 원하는 형태로 펴 주는 것이 좋습니다.


 
자 이제 Render to texture가 끝이 났습니다.
 


~~ 3편에서 이어집니다.

Monday, February 9, 2009

Render to Texture를 이용하여 불켜진 로우폴리 실내 만들기 1/3


| Eyecg.com tutor

아래 튜토리얼은 eyecg.com 에 2009/02/08 19:53:31  에 게시한 글입니다.
무단전제 및 재배포 절대 금지입니다.
 
 
 
 
아래 튜토리얼은 게임 및 애니메이션등에 자주 사용되는 3dsMax의 Render to Texture 기능을 이용하여 건물 외관 랜더링을 위한 실내를 만들기 위한 튜토리얼입니다.
 
아마 비슷한 방법을 이미 사용중이신 분들이 있을 것이고, 더 나은 방법을 사용하시는 분도 있을 것이라 생각됩니다.
 
특별히 어려운 과정이 아니기 때문에 굳이 따라하지 않으시더라도 편하게 살펴보시는 것만으로도 쉽게 이해하실 수 있을 것이라 생각합니다.
 
또한 Render to Texture를 위해 Unwrap에 대해 기본지식이 있으면 좋으나, 그렇지 못한 경우에도 활용할 수 있으니 여러가지 용도에 사용할 수 있을 것이라 생각합니다.
 
랜더러로는 V-Ray가 사용되었습니다.
 
이미지가 깨어져 보이시면 클릭해 보시면 크게 보입니다.
 
 
 
아래 이미지는 지금 설명하는 방법을 이용하여 랜더링한 이미지입니다.

 
 
시작하기 전에 랜더러를 VRay로 설정을 합니다.
 
 
 
 
 
1. 실내로 사용할 건물을 만듭니다.
 
우선 대략 6x5x2.5m 정도의 박스를 하나 만듭니다.
 
그 다음 edit poly 모디파이어를 추가한 다음 정면에 보이는 폴리곤은 삭제를 하고, 나머지 폴리곤은 모두 선택하여 flip을 해 줍니다.

 
 

2. 빈 재질슬롯에 Multi/Sub-Object 재질을 하나 만들어서 아래와 같이 이름을 지정하고 각각 구분이 용이하게 of/off 앞쪽의 컬러박스를 클릭하여 색상을 변경해 놓습니다. 이 색상은 나중에 전부 수정이 될 것이니 아무 색상이나 구분만 할 수 있으면 됩니다.
 
그리고 앞에서 만든 박스에 이 재질을 Assign 합니다. 이 재질의 이름은 interior 로 하겠습니다. 그리고 앞으로 모든 오브젝트는 이 재질만을 사용하게 됩니다.

 
 

3. 위 재질에서 지정한 대로 각 폴리곤 해당부분의 재질 id를 지정해 줍니다.
 
벽면은 2번, 천정은 3번, 바닥은 4번으로 각각 지정을 했습니다.
 
뷰포트에서 지정된 색상이 구분되어 보입니다.

 
 
 
4. 이제 각 부분의 재질을 만들어 볼 차례입니다.
 
우선 id2번으로 지정된 벽면의 재질을 만듭니다.
 
스탠더드 재질을 Vraymlt로 바꾸고, diffuse 재질에 Vraydirt 를 지정을 합니다. unoccluded color는 대략 200,200,200정도의 색상을 사용하였고 radius 에는 아래 그림과 같이 벽면의 때묻은 느낌을 낼 수 있는 맵(더티맵)을 하나 지정을 합니다.  그리고 80% 정도로 수치를 낮춥니다. radius 의 크기는 30cm정도로 크게 합니다.

 
 
 
5. 이 때 박스맵핑 방식의 UVW Map 모디파이어를 하나 추가한 다음 이를 Map Channel 2번으로 지정을 하고, 위의 더티맵 id를 역시 2번을 지정을 합니다.

 
 
6. 자 이제 간단하게 랜더링을 해 봅니다.
 
벽 모서리부분의 더티맵이 어색하면 맵과 radius 크기 등을 변경하면서 테스트해 봅니다. 앞에서 말했듯이 이 더티맵은 uvw channel 2번이 지정되어 있습니다.


 

7. 이번에는 edit poly모디파이어에서 폴리곤을 선택하고 천정 폴리곤을 선택합니다.
 
그 상태에서 다시 uvw map을 하나 더 추가하고 이번에는 id를 3번으로 지정합니다. 즉 천정부분의 맵은 이제 id 3의 UVW를 이용해서 맵핑을 할 것입니다.


 

8. 천정부분의 재질을 만듭니다.
 
앞서 벽면에 사용하였던 vraydirt 맵을 그대로 복사해 와서 수정해서 사용하면 됩니다. 이번에는 unoccluded color 에 색상 대신 타일맵을 사용해 봅니다.


 

9. 맵 채널 id를 3번으로 맞추고 타일맵의 옵션을 뷰포트를 보면서 만져줍니다. 약간의 색변화를 위해 Color Variance도 줍니다.


 

10. 마찬가지 방법으로 바닥 재질 역시 UVW Map id 4번을 사용하여 재질을 만들어 줍니다.
 
참고로 천정과 바닥은 동일한 UVW 맵핑을 사용해도 상관은 없습니다만 재질번호와 맞추기 위해 4번으로 하나 더 만들었습니다.
 
역시 타일맵을 사용하되 텍스쳐를 사용하기 위해서 비트맵 이미지를 지정을 합니다.


 

11. 이 때 사용되는 비트맵 텍스쳐 역시 타일링을 맞춰줍니다. 그리고 map channel 역시 4번으로 맞춰줍니다.


 
 
12. 다시 랜더링을 한번 해 봅니다. 벽면은 맵 채널 2번을 사용하며 천정은 3번의 맵 채널, 바닥은 4번의 맵채널에 의해 맵핑이 되어 있습니다.


 

13. 이번에는 벽면 한쪽의 폴리곤을 선택하고 shift를 누른 다음 이동을 하여 별도의 공간을 위한 작은 벽을 하나 더 만듭니다.


 

14.  엣지를 선택하고 shift+이동을 해서 앞쪽도 만들어 준 다음 적당히 크기를 맞춰줍니다. 이 때 맞물리는 부분을 조금 더 바깥쪽으로 나가게 해서 틈이 없게 만듭니다. 별도 벽면의 위 아래 부분 역시 천정과 바닥에 비해 조금 더 바깥쪽으로 나가게 살짝 옮겨줍니다.


 

15. edit poly를 사용해서 작업을 했다면 이 모다파이어를 uvw 모디파이어모다 아래쪽에 오게 내려줍니다.


 

16. 그리고 새로만든 벽면의 재질 id 역시 기존 벽면과 동일하게 2번으로 지정해 줍니다. 아래 그림처럼 됩니다.


 

17. 이번에는 문이 필요합니다.
 
플랜을 하나 만들어서 edit poly(editable poly) 모디파이어를 추가하고, uvw map 모디파이어를 하나 지정한 다음 id는 5번으로 지정합니다.
 
그리고 material 모디파이어를 추가하여 재질 id 5번을 설정하고 기존 interior multi/sub-object 재질을 assign 합니다.
 
플랜 형태의 UVW맵핑을 하였으므로 문 비트맵을 그대로 입혀서 아래 그림처럼 되었습니다.


 

18. 문을 하나 더 복사하여 새로 만든 벽에도 출입구를 만들어 줍니다.

 
 



~~ 2편에서 이어집니다.