3차원 그래픽 이미지가 저장된 파일의 형태 (3 차원 그래픽 파일 포맷) 중 하나이다.

 

참고로

그래픽 파일은 어떠한 방식으로 압축하고 저장하느냐에 따라 이미지 용량을 줄이거나 늘릴 수 있다.

사용되는 애플리케이션에 따라 저장방식이 다 다르다.

보통 3차원 데이터는 벡터형식을 기반으로 아스키(Ascii) 혹은 바이너리(Bin) 형식으로 저장된다.

그래픽 관련 프로그램들이 모든 그래픽 파일 포맷을 지원하지는 않으므로 사용할 때 체크필요하다.

DWG/ DXF/ IGES/ LWO/ OBJ/ RIB/ SDL/ STL/ VRML/ WMF/ 3dMF/ 3DS 등있다.

 

OBJ (Wavefront file format specification)
Wavefront의 Visualizer고유 파일 포맷. DXF나 IGES 처럼 ASCII 형태(확장자 .obj)로 데이터를 저장할 수도 있고 binary 형식(확장자 .mod)으로 저장할 수도 있다. ASCII 형태인 OBJ로 저장을 하더라도 DXF나 IGES 만큼 데이터의 크기가 커지지는 않으며 MTL이라는 별도의 material 파일을 사용하기 때문에 모델 정보 이외에 texture map이나 material에 대한 데이터를 함께 옮길때에는 관련된 MTL 데이터도 찾아서 같이 옮겨야 한다.
확장자 : obj (for ASCII), mod (for binary)

여기 가면 https://www.youtube.com/watch?v=yqnKeGa5o24 영어설명도 들을 수 있다.

이런설명이 적혀있음

OBJ (or .OBJ) is a geometry definition file format first developed by Wavefront Technologies for its Advanced Visualizer animation package. The file format is open and has been adopted by other 3D graphics application vendors. For the most part it is a universally accepted format.
The OBJ file format is a simple data-format that represents 3D geometry alone — namely, the position of each vertex, the UV position of each texture coordinate vertex, vertex normals, and the faces that make each polygon defined as a list of vertices, and texture vertices. Vertices are stored in a counter-clockwise order by default, making explicit declaration of face normals unnecessary. OBJ coordinates have no units, but OBJ files can contain scale information in a human readable comment line.


This video is targeted to blind users.

구조는?

폴리곤을 구성하는 정보는 obj 파일에 저장되어있으며 재질과 텍스쳐에 관한 정보는 mtl 파일에 있다. mtl파일에는 사용하는 텍스쳐파일을 명시해 놓았다.

예시하나

파일마다 저장된 순서가 약간 다를 수 있다. 그렇지만 형태는 모두같다. 따라서 오브젝트 로더를 한개 만들어놓으면 계속 사용할 수 있다.

 

.obj

#                                                //생성한 프로그램정보나 생성일자등의 설명
#
mtllib ./재질텍스쳐파일명.mtl            //사용할 material texture 정보가

#                                                 //무언가설명
#
v                                                //버텍스의 로컬좌표 .


#  vertices                                  //점갯수설명

vt                                              //텍스쳐 좌표
vt 
vt 
vt 
#  texture vertices                        //텍스쳐갯수 설명

vn                                                //노말값
vn 
vn 
#  vertex normals                            //노말 점 갯수 설명

g                                                   //그룹명
usemtl                                            //사용하는 재질(재질그룹은 사용하는 텍스쳐파일 명을 포함하고있다)
s
f v/vt/vn v/vt/vn v/vt/vn                      //한 면을 구성하는 위치, 텍스쳐, 노말정점 인덱스 구성
f
s
f
f
#  faces                                        //면갯수 설명

.mtl

#                                                    //무언가설명
#
newmtl                                             //시작태그, 그룹이름 색상재질을명시       
Ka                                                   //ambient                    
Kd                                                  //diffuse
Ks                                                    //specular
d                                                  //알파값 d 혹은 Tr 로도 씀
Ns 
illum                                             //일루미네이션 모델
map_Ka                                         //ambient 텍스쳐맵
map_Kd                                         //diffuse texture map
map_Ks                                         //specular color texturemap
map_bump                                     //some implementations use 'map_bump' instead of 'bump' below

# EOF                                            //파일끝

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

#은 무언가 설명한다.  즉 주석이다.

.obj

mtllib 를 만나면 

.mtl 파일을 열어서 재질그룹들에 대한 정보를 저장하면 된다.

.mtl

참고로 여러재질이 한개의 텍스쳐를 사용할 수 도 있다.

newmtl 을 만나면 해당 이름으로 된 mtl texture 정보가들어있는 데이터 묶음을 만든다.

다시 .obj로 돌아와서

정점(v) 텍스쳐(vt) 노말(vn) 좌표를 저장했다가

g를 만났을 때 저장해놓은 정보들을 가지고 해당그룹의 폴리곤정보를 저장한다.

v/vt/vn 순이다 ( v || v/vt ||  v/vt/vn || v/vn 뭐 이런식)

 

 

 

 

 

//맨위 내용 출처 DWG/ DXF/ IGES/ LWO/ OBJ/ RIB/ SDL/ STL/ VRML/ WMF/ 3dMF/ 3DS 얘네 설명도 볼수 있다.

 http://kbp.kongju.ac.kr/cg_edu/cg2_data/4week_2.htm

//일루미네이션모델옵션등 추가정보도 ㅇ ㅣㅆ음

http://blog.naver.com/PostView.nhn?blogId=leonhong&logNo=20176225259

http://docs.mcneel.com/rhino/5/help/ko-kr/index.htm#fileio/wavefront_obj_import_export.htm

 [출처] https://danac.tistory.com/155

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
878 머신러닝의 한계 The Limitations of Machine Learning file 졸리운_곰 2020.02.10 220
877 HackerNews-Scraper file 졸리운_곰 2020.02.05 71
876 Hacker News scraping challenge. file 졸리운_곰 2020.02.05 271
875 [3D 모델링][3D modeling] Collada란 무엇인가? 졸리운_곰 2020.02.01 152
» [3D modeling][3D 모델링] 3d 에서 .OBJ .obj 파일이란? 구조파악 파일 파싱 방법 졸리운_곰 2020.02.01 101
873 생각하라, 객체지향처럼 file 졸리운_곰 2020.02.01 86
872 Tutorial: Develop a Mobile App With Ionic and Spring Boot file 졸리운_곰 2020.02.01 94
871 [docker]도커 처음 사용자를 위한 윈도우 도커 설치 및 실행하기 file 졸리운_곰 2020.01.26 77
870 도커와 젠킨스 파이프라인 : Using Docker with Pipeline file 졸리운_곰 2020.01.26 84
869 도커와 젠킨스를 이용한 지속적 배포 Tutorial: Continuous Delivery with Docker and Jenkins file 졸리운_곰 2020.01.26 70
868 Docker Desktop 언인스톨시 지워지지 않고 남아있는 찌꺼기완전 삭제 스크립트 졸리운_곰 2020.01.26 393
867 Web scraping [로제타스톤] file 졸리운_곰 2020.01.13 160
866 인공지능 꿀팁 모음 : Honey Tips 모음 졸리운_곰 2020.01.11 77
865 인공지능 Framework &Tools 인공지능 프레임워크와 도구(툴)들 file 졸리운_곰 2020.01.11 131
864 머신러닝 참고 리소스 북마크 졸리운_곰 2020.01.11 85
863 한국어를 이해하는 언어 AI 모델 KoBERT file 졸리운_곰 2020.01.05 133
862 기계독해 SQuAD 스쿼드가 뭐야? file 졸리운_곰 2020.01.05 117
861 [Python] Selenium 사용하기 (+PhantomJS) file 졸리운_곰 2019.12.29 122
860 The-genetic-algorithm-VBA-code file 졸리운_곰 2019.12.28 83
859 GENETIC ALGORITHM OPTIMIZATION FOR MS EXCEL file 졸리운_곰 2019.12.28 186
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED