본문 바로가기
Programming/Unity

[Unity] .mtl file 이란?

by 타임박스 2021. 5. 18.
반응형


✔ .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

 

Wavefront .obj file - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Geometry definition file format OBJ (or .OBJ) is a geometry definition file format first developed by Wavefront Technologies for its Advanced Visualizer animation package. The file for

en.wikipedia.org

감사합니다.

반응형

댓글