2010-12-29 3 views
1

3DS Max에서 내 간단한 OpenGL 뷰어/앱으로 내 보낸 .OBJ 파일을 가져올 수있는 OBJ 로더를 만들었습니다. 이 튜토리얼의 도움으로 작성된 Vector3.h가이 중심에 있습니다.C++을 사용하여 3ds Max OBJ 가져 오기

내가 사용했던 몇 가지 모델에서는 훌륭하게 작동했지만, 내가 사용하기를 원하는 모델은 다른 점이있었습니다. 그것은 여기에 4의 정점에있는 점 대신 3을 가지고 내가 함께 일하고 라인의 샘플입니다.

g Box02 
usemtl Wood_Bark 
s 4 
f 1/1/1 2/2/1 3/3/1 4/4/2 
f 4/1/3 3/2/3 5/3/3 

첫 번째 'F'라인은 내가 관심 오전 4 개 정점을 가지고 내 Vertex3.h는 X 소요 , Y, Z. 내가 가지고있는 다른 모델들에서, 모든 선들은 오직 세 개의 요소들만 가진 두 번째 'f'선과 같았습니다. 나는 정점이 범위를 벗어나므로 어떤 일이 일어나고 있는지 확인하려고 할 때이 선에있는 것을 보았 기 때문에 처리 할 수있는 선에 더 많은 데이터가 있기 때문에 생각했습니다. 여기에 전체 Vertex3.h

http://pastebin.com/dgGSBSFe

입니다 그리고 이것은 실패 코드의 라인입니다. vertices는 Vector3입니다.

tempVertices.push_back (vertices[--vertex]); 

제 질문은 무엇입니까? 내 Vector3.h 파일과 같은 것을 어떻게 설명하겠습니까? Vector4.h를 만들고 라인에 3이 있으면 4th var을 무시해야합니다. 그러나 나는 내가 무엇을 다루고 있는지, 그리고 어떻게해야하는지에 대해 더 알고 싶다. 네 번째 요소는 알파인가? Vector3.h의 계산 방법은 어떻게 사용되어야합니까?

답변

3

네 개의 점이있는 얼굴을 쿼드라고합니다. 보통 그것을 렌더링하고 싶다면 두 개의 삼각형으로 나누어야합니다. 에서 시작 꼭지점이 시계 반대 방향 (OpenGL을의 기본을) 이동 가정

___ 
|\ | 
| \ | 
|__\| 

:

___ 
| | 
| | 
|___| 

당신이로 그것을 돌 필요 :

그래서 예를 들어, 당신이 있습니다 왼쪽 위, 당신은 두 개의 삼각형을 만들 수 있습니다. 첫 번째 삼각형의 꼭지점은 쿼드의 첫 번째, 두 번째 및 세 번째 꼭지점입니다. 두 번째 삼각형의 정점은 쿼드의 세 번째, 네 번째 및 첫 번째 정점입니다.

+0

나는 이것이 문제 일 수 있다고 생각했지만, 이것은 다른 누군가가 만든 3dsMax 모델입니다. 나는 그것을 고칠 수있는 기술이나 기술이 없다. 나는 그 일을하는 사람을 찾아야 할 수도 있습니다. 쏴, 나 스스로 해결할 수 있다고 생각 했어. – Nathan

+1

@Hallik : 모델 변경을 제안하는 것이 아닙니다. 나는 당신이 코드를 자동 분할 된 쿼드로 만들 것을 제안하고있다. – icktoofay

+0

OK 어떻게해야하는지 생각해야 할 것입니다. 저는 어딘가에서 항상 삼각형을 깨뜨린 것을 읽었습니다. 그러나 꼭지점과 같은 선상에 법선과 UVW를 저장하는 얼굴 때문에 저를 버렸습니다. 내 생각을 재교육해야 해. 이것의 많은 것은 꽤 새롭다. – Nathan

0

왜 삼각형으로 만 내보내시겠습니까? 3ds max에서 EMesh로 변환하고 모든 가장자리를 표시하고 내보내십시오. 또는 적절한 OBJ 내보내기 옵션을 사용하기 만하면됩니다.

관련 문제