WinCNT

Bakery(라이트 맵 생성 에셋)로 작성한 라이트 맵의 텍스처 설정이 이상해서 라이트 맵이 제대로 적용되지 않던 이슈 본문

Unity/Unity 개발 중 발생한 이슈 정리

Bakery(라이트 맵 생성 에셋)로 작성한 라이트 맵의 텍스처 설정이 이상해서 라이트 맵이 제대로 적용되지 않던 이슈

WinCNT_SSS 2023. 6. 30. 13:37

발생한 이슈

※ 이전에 작성한 글과 겹치는 부분이 많지만 발생한 이슈를 좀 더 남기고 싶어서 따로 정리함

라이트 맵을 Bake하는 Asset(Bakery)를 현 프로젝트에 적용하던 중, 라이트 맵의 결과에 위화감이 있다는 사실을 깨달았다


이슈 상세

라이트 맵 자체는 제대로 만들어지고 있는 것 같았다

또한 임시로 새로 만 프로젝트에서 비슷한 씬을 만들어서 실험해봤는데 비슷한 라이트 맵이 만들어졌으며, 적용 자체도 문제가 없는 듯 했다


발생 원인

원인을 찾기 위해 온갖 삽질하였으나 좀처럼 찾지 못 해 좌절하던 무렵…

우연히 라이트맵 텍스처의 텍스처 타입이나 설정이 이상하다는 걸 알게 되었다

이 설정을 살짝 조절해보니 그나마 정상적으로 표현되었다


발생 원인 상세

당연히 왜 이러한 현상이 일어나는냐에 대해서도 알아볼 필요가 있어니 좀 더 알아봤다

어쨌거나 라이트 맵의 임포트 설정에 직접적인 원인이 있어서 자세히 살펴보았다

그러자 인스펙터의 하단에 표시된 함수명(?)이 눈에 띄었다

(참고로 ft는 Bakery 에셋에서 주로 사용되는 접두사)

마음에 걸려서 코드를 뒤져보니…

다음과 같은 느낌의 매우 그럴듯한 코드를 발견하였다!!

switch(texType)
{
    case TEX_LM:
    {
        importer.textureType = TextureImporterType.Lightmap;
        break;
    }
    case TEX_LMDEFAULT:
    {
        importer.textureType = TextureImporterType.Default;
        break;
    }
		// ...
}

그래서 우선 냅다 브레이크 포인터를 걸고 다시 한 번 라이트 맵을 Bake해봤다

그런데 매우 놀랍게도 전혀 걸리지 않았다

임시로 새로 만 프로젝트에서는 제대로 브레이크 포인트에 멈추는데도!

 

여기까지 알게 됐으면 내 범주를 넘었다고 생각해서 해당 에셋의 Forum thread를 뒤져봤다

냅다 OnPreprocessTexture()로 검색하니 나와 같은 현상을 겪은 사람이 있었고, parallel asset import의 설정이 원인이라고 알려주기도 하였다

Bakery - GPU Lightmapper (v1.95) + RTPreview [RELEASED]

 

Bakery - GPU Lightmapper (v1.95) + RTPreview [RELEASED]

Asset store link: https://assetstore.unity.com/packages/tools/level-design/bakery-gpu-lightmapper-122218 Link to RTPreview plugin for Bakery:...

forum.unity.com

Bakery - GPU Lightmapper (v1.95) + RTPreview [RELEASED]

 

Bakery - GPU Lightmapper (v1.95) + RTPreview [RELEASED]

Asset store link: https://assetstore.unity.com/packages/tools/level-design/bakery-gpu-lightmapper-122218 Link to RTPreview plugin for Bakery:...

forum.unity.com

현재 프로젝트의 프로젝트 설정 → 에디터 부분을 보니 아니나 다를까 parallel asset import가 체크되어 있었다


해결법

해결법은 2가지 존재한다

하나는 parallel asset import를 끄는 것이고, 다른 하나는 최신 버전(...)를 다운받는 것이다

아래는 parallel asset import를 끄고 라이트 맵을 다시 구운 결과이다


마무리

필자의 멘탈을 상당히 좌절시킨 이슈였다

그래도 잘 해결되서 다행이다

잘 생각해보니 삽질시킨 이슈는 대부분 텍스처 관련인 것 같은 느낌이 드는데…?


참고 자료

생략