이번 짧은 튜토리얼에서는 Blender 5.2에 도입된 Cycles의 Texture Cache 기능을 소개해 드리겠습니다. 이 기능은 렌더링 중 메모리를 더욱 효율적으로 관리하여 많은 수의 텍스처가 포함된 장면도 렌더링할 수 있도록 해줍니다.


이 튜토리얼의 동영상 버전은 현재 이 언어로 제공되지 않습니다. 아래에서 자막이 포함된 영어 버전을 시청할 수 있으며, 동영상 아래에는 한국어로 번역된 스크립트가 있습니다.


영상 자막 텍스트

안녕하세요, 여러분! 이번 짧은 튜토리얼에서는 Blender 5.2에 도입된 Cycles의 Texture Cache 기능을 소개해 드리겠습니다. 이 기능은 렌더링 중 메모리를 더욱 효율적으로 관리하여 많은 수의 텍스처가 포함된 장면도 렌더링할 수 있도록 해줍니다.

실제 사례를 보여드리기 위해, 제가 제작했고 다른 튜토리얼에서도 사용했던 유치원 전체 장면을 사용하겠습니다. 이전 영상에서는 교실, 극장, 놀이터처럼 필요한 환경의 일부만 남겨두어야 했습니다. 모든 텍스처를 포함한 전체 프로젝트는 현재 디스크에서 4GB의 용량을 차지하기 때문입니다. Blender는 학교 놀이터처럼 비교적 텍스처가 적은 영역의 간단한 장면조차 렌더링하지 못했고, 대신 "System is out of GPU and shared host memory."라는 오류 메시지를 표시했습니다. 이제 이 문제를 해결하기 위해 Texture Cache를 사용하는 방법을 살펴보겠습니다.

계속하기 전에 한 가지 말씀드리겠습니다. 다른 많은 영상과 마찬가지로, 이 튜토리얼의 문서 버전과 추가 자료는 제 웹사이트에서 확인하실 수 있습니다. 다른 언어로 번역된 버전도 제공되며, 링크는 설명란에 있습니다.

Texture Cache 옵션은 Properties Editor의 Render > Performance 패널에 있으며, 제 시스템에서는 기본적으로 활성화되어 있었습니다. 문서에 따르면 이 옵션을 활성화하면 Blender는 이미지를 최적화된 TX 형식으로 생성하여 디스크에 저장하고, 렌더링 중에는 해당 파일을 사용합니다.

이 이미지들이 저장될 위치는 Preferences Editor의 File Paths 탭에 있는 Data Render Texture Cache 섹션에서 지정할 수 있습니다. 이 필드를 비워두면 TX 텍스처는 원본 텍스처가 있는 디렉터리 안의 하위 폴더에 저장됩니다.

현재 이미지는 Blender 파일 안에 Pack되어 있으며 디스크에는 별도의 파일로 존재하지 않습니다. 따라서 Texture Cache는 TX 형식으로 변환할 이미지를 찾을 수 없습니다. 그 결과 Blender는 "No image files found to generate TX files."라는 메시지를 표시합니다.

가장 먼저 해야 할 일은 Blender 파일에 포함된 텍스처를 추출하여 디스크에 별도로 저장하는 것입니다. 저는 File > External Data에 있는 Unpack Resources를 사용하며, 그에 앞서 같은 메뉴의 Automatically Pack Resources를 비활성화합니다. 여기서는 "Write files to current directory, overwrite existing files" 옵션을 선택하겠습니다. 그러면 프로젝트의 Blender 파일 옆에 Textures 폴더가 생성됩니다. Blender는 프로젝트에 745개의 파일이 포함되어 있다고 알려줍니다. 원본 텍스처 이미지는 새 폴더로 추출되어 저장되지만, 이 변경 사항을 프로젝트에 적용하려면 Blender 파일을 저장해야 합니다. 저장을 마치면 파일 크기가 절반으로 줄어드는데, 원래 용량 중 약 2GB가 Pack된 텍스처였기 때문입니다.

여기서 제 경우에 해당하는 한 가지를 말씀드리겠습니다. 이제는 Texture Cache를 사용하지 않아도 Blender가 프로젝트를 렌더링할 수 있습니다. 텍스처를 디스크로 추출하는 것만으로도 장면을 다시 렌더링할 수 있게 되었기 때문입니다. 이것이 이 튜토리얼 제목의 첫 번째 부분인, Unpack을 사용하여 텍스처로 인해 발생하는 Out of Memory 문제를 해결하는 방법입니다. 하지만 일부 프로젝트는 이 방법과 다른 최적화 기법을 적용한 후에도 여전히 메모리가 부족해질 수 있으므로, 그런 상황에서 Texture Cache가 어떻게 도움이 되는지 살펴보겠습니다.

이제 텍스처가 디스크에 저장되었으므로, Texture Cache 섹션의 Generate를 클릭하여 Blender가 TX 파일을 생성하도록 하겠습니다. 이 파일들은 빠르게 생성되며 Textures 디렉터리 안의 하위 폴더에 저장됩니다.

이제 렌더링을 시작하면 Blender는 TX 폴더의 텍스처를 불러옵니다. 제 경우에는 이전보다 렌더링 속도가 실제로 더 빨라졌지만, 이는 Performance 섹션의 Persistent Data와 같은 다른 최적화의 영향일 수도 있습니다. Texture Cache의 주된 목적은 메모리 사용량을 줄이는 것입니다. 렌더링 시간에 미치는 영향은 장면, 하드웨어, 그리고 다른 렌더링 설정에 따라 크게 달라질 수 있습니다.

여기서 이렇게 생각하실 수도 있습니다. 프로젝트의 TX 텍스처를 생성하는 데 몇 초가 걸렸으니, 그 시간도 전체 렌더링 시간에 포함해야 하지 않을까요? 충분히 타당한 지적입니다. 하지만 Texture Cache를 사용하지 않으면 렌더링 자체가 시작되지 않는 경우도 있다는 점을 제외하더라도, TX 텍스처는 한 번만 생성하면 된다는 점을 기억하는 것이 중요합니다. 이후에는 디스크에 그대로 저장되어 이후의 모든 렌더링에서 다시 사용되며, 프로젝트의 다른 영역을 렌더링할 때도 그대로 활용됩니다. 화면에서는 다른 구역으로 이동한 뒤 렌더링을 시작했고, 51초 만에 완료되었습니다. 저에게는 이것만으로도 매우 큰 개선입니다.

이 작업 방식의 단점은 TX 텍스처가 차지하는 디스크 공간입니다. 이 예제에서는 TX 텍스처가 3.21GB를 차지하는 반면, 원본 텍스처는 2GB보다 약간 작은 용량을 차지하며, 두 종류의 파일을 모두 보관해야 합니다. 이것이 개발자들이 의도한 절충안입니다. 렌더링 중 메모리 사용량을 줄이는 대신 더 많은 디스크 공간을 사용하는 것입니다. 개인적으로는 전체 장면을 훨씬 안정적으로, 그리고 훨씬 짧은 시간 안에 렌더링할 수만 있다면 충분히 만족스럽습니다.

이번 튜토리얼은 여기까지입니다! 도움이 되셨다면 좋아요를 눌러주시고 채널도 구독해 주세요. 다음 영상에서 뵙겠습니다!

이 사이트는 제 작업 일부를 소개하기 위한 목적만을 가지고 있으며, 어떠한 홍보 목적도 포함하지 않습니다. 현재 맞춤 작업, 컨설팅 또는 기타 어떤 형태의 업무 협업에 대한 요청도 받고 있지 않으며, 이에 대해 응답하지 않으니 양해 부탁드립니다.


확장된 개인정보 및 쿠키 사용 정책