3D 모델을 사용한 OpenGL의 애니메이션


11

블렌더에서 모델을 만들었습니다. 이제 C ++ 프로그램에서 3D 모델을 읽고 싶습니다. 모델을 다양한 파일 형식 (예 : .obj, .3ds 또는 COLLADA)으로 내 보낸 다음 c ++ 프로그램에서 읽을 수 있다고 생각했습니다. 나는 꽤 오랫동안 웹을 검색하고 많은 튜토리얼을 찾았습니다. 그러나 나는 대부분의 문제에 부딪쳤다. 예를 들어, Nehe 튜토리얼에서 그들은 프로그램에서 사용하고 싶지 않은 glaux를 사용하고 있습니다. 나머지 자습서에서는 Blender에서 지원하지 않는 md2를 사용합니다.

그렇다면 누구나 3D 모델을 내보내는 데 사용할 파일 형식과 OpenGL 프로그램에로드하는 방법을 알려줄 수 있습니까? 또한 어떻게 그 모델에 애니메이션을 적용 할 수 있습니까? OpenGL을 사용하여 C ++ 프로그램에로드 된 후에 톤 매핑과 같은 추가 효과를 추가 할 수 있습니까? 그렇다면 어떻게?

추신 : 게임 개발에 Linux를 사용하고 있습니다

답변:


2

OBJ 형식으로 갈 것입니다. 이미 알고 있듯이 C ++ 용 수백 개의 OBJ 로더 있습니다. 가장 성숙한 것 중 하나는 Assimp 이며 많은 다른 형식을 지원하며 꽤 잘 문서화되어 있습니다. 여기 에 그들이 사용하는 예가 있습니다.


lighthouse.com 링크가 작동하지 않습니다
스네이프

그것은 모든 브라우저에서 작동합니다 ...이 링크 시도 x90.es/1CC
Dan

2
Obj는 애니메이션 메시를 지원하지 않습니까? 그냥 구글 "Blender opengl skinned mesh"그리고 난 당신이 원하는 편집에 맞는 형식을 찾을 것으로 기대합니다 : 내 게시물을 삭제할 수 없습니다, obj 형식을 추천하는 이전 게시물에 대한 답장을 의미했다
Stowelly

1
.obj는 애니메이션을 지원하지 않으므로이 답변이 잘못되었습니다. stackoverflow.com/questions/757145/…
Sean Middleditch

2

Blender 2.60은 COLLADA 애니메이션 지원을 수정했으며, 이전 버전에서는 다소 손상되었습니다. 그러나 아직 자신의 코드로 모델 형식을로드하지 않은 경우 먼저 .obj를로드하는 것을 배우는 것이 좋습니다. ASCII로되어있어 외부 로더 라이브러리 없이도 사람이 읽고 읽을 수 있습니다.


1

3ds에 애니메이션 데이터가 포함되어 있지 않아 작동하지 않습니다. Collada에 대해 잘 모르지만 게임에서 사용할 형식을 결정하고 많이 검색하고 비교 한 결과 마지막으로 B3D 형식을 사용하여 골격 애니메이션을 지원하고 Irrlicht에서로드 할 수 있습니다 (조명 값도 포함 함) ).

3dsMax의 'b3d pipeline'익스포터를 사용하고 메쉬에 애니메이션을 적용하고 조명을 내기 위해 자체 hlsl 쉐이더를 코딩했습니다. 정말 잘 작동합니다.

Irrlicht 가 어떻게하는지 (예 :로드 및 애니메이션) 소프트웨어에서 애니메이션을 수행하는지 확인할 수 있지만 셰이더를 사용하여 비트를 수행하는 방법에 대해 조금 검색하면 예제가 있습니다 (원하는 경우). 좋은 점은 Irrlicht가 OpenGL과 Linux를 모두 지원한다는 것입니다.

매우 간단한 또 ​​다른 형식은 .X 형식입니다. 골격을 내보내고로드하고 구문 분석하고 설정하고 애니메이션을 적용하는 방법에 대한 많은 예제가 있어야합니다. Microsof 형식이므로 사용하고 싶지 않을 것입니다 :-)

톤 매핑 등은 애니메이션과 전혀 관련이 없으므로 그렇습니다. 해당 기술을 사용하는 방법을 알고 있다면 애니메이션 메시로이를 수행 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.