모드 고해상도 텍스처가 원경에서 깜빡이고 지글거리는 원인
사용자 제작 4K 또는 2K 고해상도 텍스처를 게임에 적용할 때 DirectDraw Surface(DDS) 내보내기 단계에서 Mipmap(다중 해상도 피라미드) 생성을 누락하면, 그래픽 엔진이 원거리 미세 픽셀에 초대형 텍스처를 억지로 샘플링하게 됩니다. 이러한 언더샘플링은 심각한 모아레 현상과 시점 회전 시의 지글거림(Shimmering), 그리고 GPU 텍스처 캐시 적중률 급락을 초래합니다.
| 텍스처 설정 상태 | Mipmap 누락 (오류 상태) | 정상 Mipmap 피라미드 포함 | 시각적 효과 및 성능 영향 |
|---|---|---|---|
| VRAM 메모리 점유 | 4096x4096 단일 레이어만 보관 | 1x1까지 축소된 단계별 레이어 포함 | VRAM 점유량은 정확히 33% 증가 |
| 원거리 텍스처 샘플링 | 과도한 픽셀 건너뛰기로 노이즈 발생 | 사전 필터링된 축소 이미지 샘플링 | 깜빡임 완벽 제거, 매끄러운 원경 표현 |
| 텍스처 캐시 적중률 | 원경 렌더링 시 40% 이하로 급락 | 85% 이상의 높은 캐시 지역성 유지 | 대역폭 병목 및 마이크로 스터터링 완화 |
| 이방성 필터링 (AF) | 참조할 레벨이 없어 정상 작동 불가 | 16x AF가 경사면 투시 디테일 보정 | 지면 디테일이 선명하면서도 노이즈 없음 |
1단계: Texdiag 도구로 Mipmap 누락 텍스처 진단
Microsoft 공식 오픈소스 DirectXTex 도구 모음에 포함된 texdiag.exe를 사용하여 모드 내 DDS 파일을 검사합니다.
texdiag.exe info "Data\Textures\architecture\stonewall_d.dds"
출력 결과에서 mip levels: 1로 표시된다면 해당 파일은 원경용 Mipmap이 완전히 누락된 상태입니다. 돌바닥, 철조망, 지붕 기와 같은 고주파 패턴 텍스처에서 이 현상이 발생하면 극심한 화면 지글거림을 유발합니다.
2단계: Texconv 명령어로 Mipmap 일괄 생성 및 최적 포맷 변환
DirectXTex의 texconv.exe를 사용하여 원본 품질 손실을 최소화하면서 Mipmap을 일괄 생성합니다.
디퓨즈 / 알베도 텍스처 (sRGB 색공간) 처리
texconv.exe -f BC7_UNORM_SRGB -m 0 -srgb -y -o "FixedTextures" "stonewall_d.dds"
노멀 맵 (선형 벡터 데이터) 처리
노멀 맵은 표면 접선 벡터 정보를 담고 있으므로 sRGB 감마 보정을 적용해서는 안 되며 리니어 채널을 유지해야 합니다:
texconv.exe -f BC5_UNORM -m 0 -y -o "FixedTextures" "stonewall_n.dds"
주요 명령어 옵션 설명
-f BC7_UNORM_SRGB: 최신 게임 엔진에 최적화된 고품질 8비트 컬러 블록 압축 포맷.-f BC5_UNORM: 접선 공간 노멀 맵 전용 2채널 독립 압축 포맷.-m 0: 1x1 픽셀까지 전체 Mipmap 피라미드를 자동 재귀 생성.-srgb: 다운샘플링 과정에서 감마 보정을 적용하여 원경 텍스처가 어두워지는 현상 방지.
3단계: 식생 및 철조망 Alpha 경계 축소 현상 방지
나뭇잎, 잔디, 철망 등 Alpha Test 투명도 마스크를 사용하는 텍스처는 일반 필터로 축소할 경우 경계면 값이 옅어져 원거리에서 식생이 앙상해지거나 증발하는 문제가 발생합니다.
- NVTT 또는 포토샵 DDS 플러그인에서 Alpha Coverage Preservation 옵션을 활성화합니다.
- 알파 테스트 기준값을 0.5(또는 128)로 설정합니다.
texconv실행 시 알파 임계값 보호 플래그를 추가합니다:
texconv.exe -f BC7_UNORM_SRGB -m 0 -at 0.5 -o "FoliageFixed" "tree_leaves.dds"
- 생성된 텍스처를 모드 관리자의 staging 폴더로 교체한 뒤 인게임에서 원경 움직임을 확인합니다.