Normal Map 규칙: OpenGL vs DirectX 설명
Unreal에서는 normal map이 반전되어 보이는데 Unity에서는 잘 보이는 이유 — tangent-space Y축 규칙을 쉽게 설명하고 구체적인 해결책을 제시합니다.
Normal map을 Unreal에 연결하면 태양이 아래에서 나오는 것처럼 표면이 밝아집니다. 같은 파일을 Unity나 Blender에 연결하면 완벽해 보입니다. 메시도 같고 텍스처도 같은데. 무슨 일이 일어나고 있는 걸까요?
두 업계, 하나의 축 차이
Normal map은 RGB 채널에 표면 방향을 저장합니다. Red = X, green = Y, blue = Z. 모든 PBR 엔진은 한 가지 예외를 제외하고 동일한 방식으로 디코딩합니다: Y의 부호입니다.
OpenGL 규칙 (Y+): green 채널이 더 밝으면 표면이 위를 향합니다. Unity, Godot, Blender(Cycles 및 Eevee), Substance Painter의 기본 내보내기, 그리고 모든 WebGL 기반 엔진에서 사용합니다.
DirectX 규칙 (Y−): green이 더 밝으면 표면이 아래를 향합니다. Unreal Engine, 레거시 Direct3D 툴체인, 그리고 일부 CryEngine/Xbox 시대 에셋에서 사용합니다.
PNG의 바이트는 동일합니다. 물리적 의미는 반대입니다.
한눈에 구별하는 방법
Normal map에서 반구형 범프(버튼이나 돔처럼)를 보세요. OpenGL 규칙에서는 범프의 아래쪽이 더 짙은 green입니다. 표면이 Y− 방향으로 회전하고 있기 때문입니다. DirectX 규칙에서는 아래쪽이 더 밝은 green입니다.
엔진 내에서 조명이 거꾸로 보이면 — 그림자가 있어야 할 곳에 하이라이트가 있으면 — 규칙 불일치가 있는 것입니다.
해결책은 5초면 됩니다
Unreal에서는 텍스처 임포트 대화상자에 Flip Green Channel 체크박스가 있습니다. 켜면 엔진이 샘플 시점에 G 채널을 반전시킵니다. 소스를 다시 내보낼 필요가 없습니다.
Unity에서는 텍스처 타입을 Normal map으로 설정하면 임포터가 모든 것을 처리합니다 — Unity는 OpenGL을 예상하지만 파일이 잘못된 것처럼 보이면 경고합니다. Blender에서는 Separate Color → Invert G → Combine Color 노드 체인을 사용하거나, Normal Map 노드에서 DirectX 스타일 입력을 직접 선택하세요.
처음부터 두 가지 표준이 있었던 이유는?
1990년대에 OpenGL과 DirectX는 반대의 텍스처 좌표 공간을 정의했습니다 — OpenGL은 Y가 위로 증가하고 DirectX는 Y가 아래로 증가합니다. 2000년대 중반에 normal map이 일반화되었을 때 각 툴체인은 자신의 공간을 출력물에 구워버렸습니다. 이미 구축된 파이프라인을 뒤집는 것이 비싸기 때문에 차이가 고착되었습니다.
혼동 없이 Normal Map 생성하기
aukimi Normal Map Generator를 사용하면 내보낼 때 규칙을 명시적으로 선택할 수 있습니다. heightmap의 밝기에 Sobel gradient를 실행한 후 (−dx·s, −dy·s, 1)을 RGB에 패킹합니다 — DirectX를 선택하면 Y를 뒤집습니다. 생성 후에 규칙을 토글하고 다시 업로드할 필요 없이 다시 다운로드할 수 있습니다.
내부적으로 공식은 동일합니다. 유일한 차이는 green 채널을 쓰기 전에 Y 성분에 적용하는 부호입니다. 이것을 알면 any 이미지 에디터로 파일을 규칙 간에 변환할 수 있습니다: PNG를 열고, green 채널을 선택하고, 반전시키고, 저장합니다. 이것이 Unreal의 "Flip Green Channel"이 하는 모든 것입니다.
빠른 참조
- Unity, Godot, Blender, Substance Painter (기본): OpenGL (Y+).
- Unreal Engine, 레거시 Direct3D: DirectX (Y−).
- Unreal에서 잘못 보이나요? 임포트 설정에서 Flip Green Channel을 활성화하세요.
- Unity에서 잘못 보이나요? 아마 DirectX 규칙 툴에서 내보낸 것 같습니다 — green 채널을 반전시키거나 다시 내보내세요.
규칙을 이해하면 해결책은 사소합니다. 가장 어려운 부분은 처음으로 인식하는 것입니다.
이 글이 도움이 되셨나요?
관련 기사
창작 스택이 무너졌다: 2026년 4월 말 한 주간의 AI 도구들
2026년 4월 27일부터 5월 4일 사이, Adobe, Luma, Novi, fal, Figma, Canva, HeyGen, Anthropic이 모두 8일 만에 같은 임계점을 넘었다. 여기 무엇이 출시되었는지, 그것이 무엇을 의미하는지, 그리고 이 모든 것을 통합하려고 애쓰는 브라우저 기반 창작 도구들이 어디에 서 있는지를 정리했다.
2026년 AI 음악과 SFX: 인디 게임 오디오에서 실제로 작동하는 것
3년 전 인디 게임 오디오는 로열티 프리 라이브러리 라이선싱(저렴하지만 평범하고 모든 게임이 똑같이 들림) 또는 작곡가 고용(훌륭하지만 비쌈) 둘 중 하나였다. 2026년에는 AI가 배포 가능한 스코어를 생성한다. 어떤 도구가 실제로 작동하는지, 그리고 인간 작곡가가 여전히 필요한 곳은 어디인지 살펴본다.
2026년 AI 메시 생성: 게임 파이프라인에서 실제로 출시되는 것
Image-to-3D는 18개월 만에 "으스스한 데모"에서 "인디 프로젝트에 출시"로 진화했다. Tripo, Meshy, Rodin, Hyper3D가 실제 프로덕션에서 하는 일 — 그리고 3D 아티스트가 항상 모델을 이기는 부분을 살펴본다.