Notice
Recent Posts
Recent Comments
Link
«   2026/07   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

codingfarm

Texture Baking 본문

blender3d/기타

Texture Baking

scarecrow1992 2026. 7. 4. 19:04

1. 개요

Blender3d 에서 모델링된 3d 모델을 어플리케이션에서 사용하기 위해서는 glb 등의 확장자로 export 해야한다.

이때 해당 확장자 파일이 blender3d 의 기능을 요구하지 않는다면, 해당 데이터는 상실되며,

어플리케이션 내에서의 렌더링 결과도 blender3d와 달라지게된다.

glb로 exporting 불가능한, blender3d 자체 기능들은 대표적으로 shader node 가 있다.

 

https://docs.blender.org/manual/nb/3.6/addons/import_export/node_shaders_info.html

blender3d 는 Node Shader를 import/export 하는 가이드를 안내해주는데,

 사실상 Principled BSDFNormal Map, Textures를 제외한 나머지 노드나 설정등은

glb로 export 한 순간 데이터를 잃는다는 가정하에 작업하는것이 유용하다.

 

2. 베이킹

noise texture를 이용한 diffuse map과 normal map 이 적용된 간단한 material 이다.

위 쉐이더를 기준으로 모델에 적용된 Diffuse Map과 Normal Map 을 texture로 베이킹 하는 방법은 아래와 같다.

 

1) UV-unwrapping

shader node 를 사용하여 절차적으로 material을 만들때는, 좌표들을 3d 공간에서 직접 얻을 수 있지만,

베이킹을 위해선 모델에 map 적용될 uv 좌표를 알아야 하며, 이를 위해 unwrapping을 수행해야한다.

편집모드에서 모든 요소를 선택한 후 단축키 u를 누르면 UV Mapping 컨텍스트 메뉴를 볼 수 있다.

여기서 Smart UV Project를 통해 간단하게 uv mapping 수행이 가능하다.

 

2) Texture 생성하기

베이킹된 결과가 반영될 texture를 미리 생성한다.

텍스쳐는 Shading Editor 에서 Image Texture 노드를 생성한 후, new 버튼을 눌러 생성할 수 있다.

 

3) Baking 설정

https://docs.blender.org/manual/en/latest/render/cycles/baking.html

베이킹은 PropertiesRender 탭에서 설정/수행 가능하다.

매터리얼/조명 결과를 이미지 텍스쳐로 굽는 기능은 Cycles 전용이므로,  Render Engine 을 Cycles로 설정한다.

그러면 Bake 아코디언 UI가 활성화됨을 볼 수 있다.

원하는 베이킹 타입을 선택한 후, 상세 설정을 진행하면된다.

 

 Normal

Space는 TangentObject가 제공되는데, Tangent는 각 표면의 접선 좌표계를 기준으로 색상을 만들며,

Object는 오브젝트의 로컬 좌표계를 기준으로 색을 만든다.

즉, 객체의 옆면을 베이킹 할 경우 Tangent 에서는  (0.5, 0.5, 1.0) 색이 설정되지만,

Object는 해당 면이 향하는 실제 좌표를 기준으로 색을 형성하게 된다.

대부분의 경우 Tangent를 쓰면된다

 

 Diffuse

Contributions 항목에서는 3개의 옵션이 주어진다.

  • Direct / Indirect : 직접광, 간접광에 의한 조명효과 적용 여부
  • Color : Colorize Pass 적용 여부

Pricipled BSDFBaseColor에 적용된 색상이 그대로 베이킹 되길 원한다면, Color 옵션만 살린다.

 

4) Bake 수행

  • Layout View에서 모델 선택
  • Shading UI 에서 Image Texture 선택
  • Bake 수행

위 작업을 수행하면, 선택된 모델의 베이킹 결과를 Image Texture 노드에 할당된 Texture에 베이킹된다.

 

 

주의

https://docs.blender.org/manual/en/latest/editors/image/image_settings.html#bpy-types-colormanagedinputcolorspacesettings-name

Normal, Stencil, Bump 처럼 비색상 텍스쳐는 baking 및 load시 색공간을 sRGB가 아닌 Non-Color로 설정해야한다.

색보정이 발생하면서, 데이터 자체가 변조되는 현상을 막기 위함이며,

three.js에서 Normal 등의 비색상 텍스쳐에 명시적으로 NoColorSpace 를 지정하는것과 유사한 이유이다.

 

sRGB 적용시
Non-Color 적용시

Blender3d로 이미지를 Image Texture 노드에 로드시, 색공간을 Non-Color로 설정하면

Image Editor 윈도우에서 표시되는 이미지 색상에도 차이가 생긴다.

그러므로 Browser나 뷰어앱을 통해 이미지를 보는것보다 밝은색으로 표현될 수 있다.

 

베이킹된 텍스쳐 적용하기

Normal Texture의 경우, Normal Map을 통해 이미지 텍스쳐의 데이터를 노말벡터 정보로 정규화 하는 과정을 진행하면된다.

 

이미지파일을 외부에서 로드할 경우 Color Space를 직접 설정 가능gksep,

앞서 설명한대로 Non-Color로 설정해주면된다.

 

 

3. 마무리

본문에서는 당장 필요로한 Bake Type에 대해서만 간략히 정리하였으나,

Blender3d는 매우 다양한 종류의 Bake Type을 지원하며,

렌더링 품질을 올리기 위해서는, 해당 타입들 모두에 대해 면밀하게 학습하고,

import 환경에서도 품질 손실없이 렌더링 할 수 있는 기술들에 대해 부지런히 학습해야겠다.

'blender3d > 기타' 카테고리의 다른 글

Normal Map 쉐이딩  (0) 2026.07.04
텍스처 모음 사이트  (0) 2021.02.14
Comments