라벨이 Tutorial인 게시물 표시

엔진에서 텍스처가 정상적으로 표현되지 않을 떄 (UV Channel 관련)

이미지
블랜더에서 정상으로 텍스처가 출력되는 오브젝트를 언리얼 엔진으로 옮겼더니 텍스쳐가 출력 되지 않는 문제가 있어 살펴보았습니다. 약간은 신기해 보이는 현상이지만 거의 UV문제일 것으로 예상하고 해당 부분을 확인해 봅니다.  문제 상황 블랜더에서의 모습 언리얼에서의 모습 확인해보니 문의 주신대로 블랜더에서는 정상, 언리얼에서는 텍스쳐가 출력되지 않고 있습니다. UV채널 문제로 예상했으니 UV 정보를 살펴봅니다. 원인 파악 언리얼 엔진에서  스타틱 매쉬 에디터를 열고(메쉬에 UV 정보가 있으니) UV정보를 살펴봅니다.  엔진에서 기본적으로 텍스쳐 표현에 쓰이는 UV0 채널이 비어 있습니다. 스타틱 매쉬 에디터, UV 0  UV1정보를 살펴보니 이쪽에 언랩 작업된 정보가 있는 것을 볼 수 있었습니다.  모델링시 UV 채널을 추가로 하나 더 생성된것으로 유추해봅니다. 스타틱 매쉬 에디터,UV 1   블랜더 에서도  확인해보면 UV Channel_1 이 추가 되어 있는 것을 볼 수 있습니다.  Blender-UV Editing-Data  Blender-UV Editing-Data 해결 방안 단순히 UV 채널이 추가 되어 있는 문제로,  FBX의 사용하지 않는 UV채널을 정리해주면 간단하게 해결 할 수 있습니다. 블랜더에서 UV channel1을 삭제 FBX를 다시 익스포트하여 Unreal Engine으로 Import. 추가 정보 혹시 어떠한 이유로 강제로 UV채널을 추가하여 사용했다면 아래 그림처럼 Texture Sample에 TexCoord노드를 연결 시킨 다음 좌표 인덱스를 UV 정보가 있는 인덱스 번호로 지정해 주면 됩니다. Unreal Engine - Material Editor -TexCoord  *. 해당 문제 해결을 통해 UV Channel이 추가적으로 이용될 수 있다는 부분에 대해서도 알고 가면 좋을 것 같습니다~  

Bake Normal map & ID map (With Blender, Substance)

이미지
  Bake Normal map & ID map  제작된 하이폴리곤 모델을 통해  Substance에서 텍스쳐링을 하기 위한 각종 텍츠쳐를 추출하고 본격적인 텍스쳐링을 위한 준비를 아래 모델을 통해 알아봅니다. dmwlw123님 모델링 Low, High Poly Model 로우폴르 모델은 각각의 파츠가 각각의 메쉬로 나누어저 있고 ID맵 추출을 위해서 재질별로 머터리얼이 설정되어 있어 잘 정리되어 있었습니다. 각기 나누어져있는 파츠에 재질별 머터리얼이 적용되어 있음 우선 해당 로우폴리곤 모델을 FBX로 추출하여 서브스텐스로 가져가 봅니다. 가져가보면  Substance는 머터리얼 별로 텍스처를 나누어 주기 때문에  해당 모델은 5장의 텍스처를 사용하는 것으로 셋팅이 됩니다.   현재 제작된 메쉬의 UV는 1장의 맵핑을 사용하는 것으로 맵이 펴있기 때문에 텍스쳐는 한장만 사용할 수 있도록 모델링을 다시 정리하여 가져와 보겠습니다. 편의를 위해 블랜더에서 각 재질별로 매쉬를 합치고  머터리얼적용도 해제 하였습니다.  (ID Map을 뽑는 것은 다른 방식으로 진행해 보겠습니다.)  해당 모델을 다시 Substance로 들고 왔습니다.  우측에 텍스처 목록은 1개로 적용된것을 보실수 있습니다.  이제 ID Map을 추출해 보겠습니다. 텍스쳐 세트 설정에서 '메시 맵 베이킹'을 진행합니다. ID맵만 베이트할 예정이니 Common settings에서 ID만 체크해주시고 오른쪽에서 '로우폴리 메시를 하이폴리 메시로 사용을' 활성화 해줍니다. 그리고 ID맵 슬롯을 선택한 다음 '색상 소스'를 '메시ID/폴리그룹' 으로 지정해 줍니다. '메시ID/폴리그룹'  은 ID 맵을 만들때 메쉬 단위로 만들어 줍니다.  해당 모델은 재질별로 메쉬를 나누어 주었기 때문에 해당 방식으로 ID맵을 만들어 줄 수 있습니다. 베이크 해주고 ID을 확인해 봅니다. 만들...

Decimate & Normal Map Bake

이미지
  하이폴리곤 모델의 음영 정보를 잘 추출하기 위해서는   잘 만들어진 로우 폴리 모델이 필요합니다.  다만 로우 폴리 모델을 제작하는데도 꽤 많은 시간이 들기 때문에 해당 글에서는 하이폴리곤 모델을 Decimate로 최적화 하여 로우폴리곤 모델을 만들어 노멀맵을 뽑는 과정을 설명하겠습니다. (해당 과정은 테스트를 위한 로우폴리 모델 만들기 정도로 봐주시면 됩니다. 실제 로우 폴리 모델링은 리토톨로지로 잘 만들어 주세요)   yeonhan22님 모델링을 참고로 설명합니다. 로우 폴리 모델에 적용한 노멀맵 아래 모델의 폴리곤은 약 25만개 으로 게임데이터로 쓰기에는 다소 폴리곤이 많으므로 로우 폴리 모델을 만들어 노멀맵을 베이크하여 사용하려 합니다. yeonhan22님 모델 기본적으로 로우폴리 모델은 리토폴로지를 통해 깔끔하게 제작되어야 하나  여기서는 테스트로 Decimate를 이용하여 간단히 로우폴라 모델을 만들어 사용하겠습니다. 폴리곤으로 제작된 새 문양은 노멀맵을 베이크 하기위한 용도로만 쓸 예정이므로 로우폴리곤의 구성에서는 제외합니다.  하이폴리곤 모델을 하나 복사하여 새는 지워줍니다. Modifier 텝에서 Decimate를 적용하여 줍니다.  Ratio를 적절하게 줄여줍니다. 저는 0,1정도로 줄여 주었습니다. 외형은 유지한 상태에서 어느 정도 모델의 폴리곤 갯수를 줄여줍니다. 물론 폴리곤 구조는 맘에 들지 않지만 테스트를 위한 거니 그대로 진행합니다. (Un-Subdivide를 이용하면 외형보다 폴리곤 구조를 유지하면서 면을 줄이는데 중점을 두고 작업 할 수도 있습니다.) 폴리곤은 약 4000정도로 줄어 들었습니다.     로우폴리 모델은 UV를 펴줘야 합니다.      물론 Smart UV로는 이렇게 복잡한 구조는 산산 조각을 내주기 때문에      어느정도 수동으로 펴줄 필요가 있습니다. 적절한 ...