노멀맵 생성기
높이맵이나 사진으로 탄젠트 공간 노멀맵을 만듭니다. 소벨 또는 샤르 필터, 세기, 블러, 반전, OpenGL·DirectX 초록 채널, 타일링 가장자리를 지원하며 PNG로 저장합니다.
노멀맵은 텍스처의 각 픽셀에 대해 표면이 어느 쪽을 향하는지 저장합니다. 게임 엔진과 3D 프로그램은 이를 이용해 평평한 폴리곤이 요철과 홈, 흠집이 있는 것처럼 조명합니다. 이 생성기는 높이맵(또는 밝기를 높이로 쓰는 사진)을 읽어 픽셀마다 기울기를 재고, OpenGL 또는 DirectX 방식의 탄젠트 공간 노멀맵을 만들며, 타일링 텍스처를 위한 이음매 없는 가장자리 옵션도 있습니다. 브라우저에서 실행됩니다.
사용 방법
- 높이맵(흰색 = 높음)이나 텍스처 사진을 고릅니다.
- 높이를 가져올 곳을 고르고, 어두운 부분이 튀어나와야 하면 반전합니다.
- 부드럽게 하는 정도, 경계 필터, 세기를 정하고, 타일링 텍스처라면 이음매 없는 가장자리를 켭니다.
- 엔진에 맞는 초록 채널 방식을 고르고 노멀맵을 내려받습니다.
계산식
n = normalize(−s × ∂h/∂x, ±s × ∂h/∂y, 1); RGB = (n + 1) ÷ 2 × 255
h는 0에서 1 사이의 높이이고 s는 세기입니다. 기울기는 Sobel (1, 2, 1) ÷ 8 또는 Scharr (3, 10, 3) ÷ 32 필터, 또는 중심 차분 ÷ 2로 구합니다. 이미지의 행은 아래로 늘어나므로 OpenGL(Y+ 위쪽) 방식은 +∂h/∂y를, DirectX(Y− 아래쪽) 방식은 −∂h/∂y를 씁니다. 부드럽게 하기는 σ = 반경 ÷ 2인 가우시안 블러입니다. 이음매 없는 가장자리를 켜면 필터가 테두리를 넘어 반대편으로 이어져 맵이 이음매 없이 타일링됩니다.
예시
평평한 영역은 기울기가 0이므로 n = (0, 0, 1)이고 색은 우리가 아는 연한 파랑 (128, 128, 255)입니다. 한 픽셀 사이에서 높이가 0.38 오르는 곳은 Sobel 기울기가 0.19이고, 세기 2에서는 0.38이므로 n = (−0.38, 0, 1) ÷ 1.07이 되어 빨강 채널이 82로 내려갑니다.
자주 묻는 질문
OpenGL과 DirectX 중 무엇을 골라야 하나요?
Blender, Godot, Unity와 대부분의 glTF 도구는 OpenGL(초록이 위쪽)을, Unreal Engine과 3ds Max는 DirectX(초록이 아래쪽)를 기대합니다. 요철의 조명이 엉뚱한 쪽에서 들어오면 이 설정을 바꾸세요.
아무 사진이나 쓸 수 있나요?
쓸 수는 있지만 밝기는 높이를 짐작한 값일 뿐입니다. 어두운 갈라진 틈은 낮고 밝은 돌은 높게 처리되어 돌, 나무껍질, 천에는 자주 잘 맞습니다. 칠해진 색이나 그림자는 가짜 요철을 만들 수 있으므로 진짜 높이맵이 가장 좋은 결과를 줍니다.
타일링하면 텍스처에 이음매가 보이는 이유는 무엇인가요?
이음매 없는 가장자리를 켜서 테두리의 기울기를 반대편까지 이어서 재도록 하세요. 텍스처 자체도 타일링이 되어야 하며, 이음매 없는 텍스처 만들기 도구가 도움이 됩니다.
내 텍스처가 업로드되나요?
아니요. 모든 계산은 기기에서 이뤄집니다.
최종 업데이트:
이 입력값이 담긴 페이지 주소: https://kakao.mobile/ko/tools/normal-map-generator/
인용·퍼가기
kakaoCalc. (2026, November 8). 노멀맵 생성기. https://kakao.mobile/ko/tools/normal-map-generator/
“노멀맵 생성기.” kakaoCalc, 8 Nov. 2026, kakao.mobile/ko/tools/normal-map-generator/.