✔ .MTL File 이란?
obj , mtl 파일 속성 정리
.mtl 파일은 Material Library File 이다.
3D 모델링 툴(3dmax, 스케치업, maya 등등)에서 .obj로 Export를 하게되면 .obj와 .mtl파일을 볼 수 있다.
mtl파일은 obj에서 사용되는 재질 속성들에 대한 정보를 포함하고 있다.
그래서 obj 파일과 mtl 파일은 세트라고 볼 수 있다.
그럼 mtl 파일 구조는 어떻게 구성되어 있을까?
이 속성들을 알게되면 mtl 파일만 수정해서 효과를 바로 볼 수 있다.
아래는 3D MAX에서 obj로 Export한 예시 mtl 파일이다.
메모장이나 Notepad++로 mtl 파일을 열면 아래와 같은 내용을 볼 수 있다.
그럼 이제 우리는 mtl 파일의 구성을 하나하나 뜯어봅시다~~!!
# 3ds Max Wavefront OBJ Exporter
# File Created:
newmtl Test01
Ns 90.000000
Ni 1.500000
d 1.000000
Tr 0.000000
Tf 1.000000 1.000000 1.000000
illum 2
Ka 0.588000 0.588000 0.588000
Kd 1.000000 1.000000 1.000000
Ks 0.000000 0.000000 0.000000
Ke 0.000000 0.000000 0.000000
map_Kd white.png
map_Ks specular.png
newmtl Test02
Ns 80.000000
Ni 1.500000
d 1.000000
Tr 0.000000
Tf 1.000000 1.000000 1.000000
illum 2
Ka 0.588000 0.588000 0.588000
Kd 1.000000 1.000000 1.000000
Ks 0.000000 0.000000 0.000000
Ke 0.000000 0.000000 0.000000
map_Kd red.png
newmtl : 새로운 매테리얼을 나타낸다. newmtl이 여러개가 있다면 여러개의 재질을 사용했다는 뜻이다.
Ns : 현재 재질의 반사 지수를 지정하는 값이다. 반사광 하이라이트 초점. 0~1000값을 가진다.
기본값은 60이며 100보다 크면 앨리어싱 효과가 발생한다. (unity에서는 material의 smoothness 값)
Ni : 표면의 광학 밀도를 지정. 굴절률. 0.001 ~ 10.
1.0 일때 : 개체를 통과할때 구부러지지 않음을 의미
1.5 정도 : 유리의 굴절률
1.0 미만 : 결과가 이상하게 나타나므로 권장하지 않음
d : 재질의 투명성.
1 일때 : 불투명
1 미만 : 투명도적용
Tr : d와 마찬가지로 투명성을 나타내는 것 d값의 반전이라고 생각하면된다 . Tr = 1 - d (왜 두개로 나눠놨는지..)
Tf : 빛의 투과 속성. 예로 Tf 0 1 0은 모든 녹색이 통과하도록 허용하고 빨간색, 파란색은 필터링됨
illum : 재료에 사용할 조명 모델지정. 0~10까지 숫자
0 -> Color on and Ambient off
1 -> Color on and Ambient on
2 -> Highlight on
3 -> Reflection on and Ray trace on
4 -> Transparency: Glass on Reflection: Ray trace on
5 -> Reflection: Fresnel on and Ray trace on
6 -> Transparency: Refraction on Reflection: Fresnel off and Ray trace on
7 -> Transparency: Refraction on Reflection: Fresnel on and Ray trace on
8 -> Reflection on and Ray trace off
9 -> Transparency: Glass on Reflection: Ray trace off
10 -> Casts shadows onto invisible surfaces
Ka : 주변 반사율을 지정(Ambient). Ka r g b 값에서 r값만 인식하고 g,b값은 r과 같은것으로 인식됨.
Kd : 기본 재질 색상 (diffuse color)
Ks : 정반사율 지정 (specular color)
Ke : 표면에서 방출되는 빛의 색상 (emission color)
map_Kd : diffuse Texture map
map_Ks : specular Texture map
map_Ka : ambient Texture map
map_Ns : specular highlight component
map_bump : bump map (normal map)
map_d : alpha Texture map
위의 형태에서 map_XX 형태 뒤에 map_Ks maps/red.png 이런 형태로 나타날 수도 있다.
map_XX 유형 뒤에 오는 것은 결국 현재폴더에서 maps 폴더 안에 있는 red.png 파일을 쓴다는 뜻으로 파일경로를 뜻한다.
이제 속성을 알았으니.. 런타임에서 불러올때 매테리얼을 만들어 효과를 적용시킬 수 있을 것으로 보인다.
참고 사이트 :
https://en.wikipedia.org/wiki/Wavefront_.obj_file
감사합니다.
'Programming > Unity' 카테고리의 다른 글
[Unity3D] Unity에서 MSSQL 연동 및 사용하기 , 빌드 후 Encoding 949 문제 해결 (0) | 2021.11.07 |
---|---|
[Unity] URP - Lit Shader Properties 런타임에서 변경 (4) | 2021.06.11 |
[Unity] EventSystem.current - 클릭했을때 UI인지 Gameobject인지 구별하기 (0) | 2021.05.10 |
[Unity] UnityWebRequest로 json 데이터를 Http body에 Post로 전달방법 (4) | 2021.04.21 |
[Unity3D] 웹 데이터 파일 다운로드,업로드(GET, POST) 및 저장 (UnityWebRequest) (0) | 2021.03.16 |
댓글