3D 모델을 Android로 가져 오는 방법이 있습니까?
문제
간단한 3D 모델 (예 : 3D Max)을 작성한 다음 Android로 가져올 수 있습니까?
해결책
그것이 내가 얻은 곳입니다.
- Google의 아파이 모를 시작점으로 사용했습니다. 각각에는 정점과 지수의 두 배열로 지정된 회전 큐브가 있습니다.
- Blender를 사용하여 모델을 빌드하고 꺼짐 파일로 내보냈습니다. 모든 정점을 나열한 다음 이러한 정점 (색인 형상)의 관점에서면에 직면하는 텍스트 파일입니다.
- 그런 다음 간단한 C ++ 앱을 만들어이를 제거하고 배열을 포함하는 두 개의 XML로 씁니다 (하나는 정점 및 지수 용).
- 그런 다음이 XML 파일을 RES/값으로 복사하여 다음과 같이 포함하는 데이터를 다음과 같이 배열에 할당 할 수 있습니다.
int vertices[] = context.getResources().getIntArray(R.array.vertices);
- 또한 여기에 그릴면 수를 수동으로 변경해야합니다.
gl.glDrawElements(GL10.GL_TRIANGLES, 212*6, GL10.GL_UNSIGNED_SHORT, mIndexBuffer);
- 해당 숫자 (이 경우 212)를 찾을 수 있습니다.
여기 에서이 솔루션을 사용하는 내 프로젝트 페이지를 찾을 수 있습니다. GitHub 프로젝트> vsiogap3d
다른 팁
ASE 형식으로 내보낼 수 있습니다. ASE에서 수동 또는 프로그래밍 방식으로 코드로 변환 할 수 있습니다. vertices 배열에 대한 정점과 Android의 지수에 대한 얼굴이 필요합니다. 당신이 설정해야한다는 것을 잊지 마십시오
gl.glFrontFace(GL10.GL_CCW);
3DS 최대 기본값은 시계 방향으로 이루어지기 때문입니다.
가능해야합니다. 당신은 당신의 프로그램과 함께 파일을 데이터 파일로 가질 수 있습니다 (따라서 에뮬레이터로 푸시하여 실제 장치에 설치할 수 있도록 패키지됩니다). 그런 다음 Android 및 GLES 라이브러리를 사용하여 Java에서 모델 로더와 뷰어를 작성하여 모델을 표시 할 수 있습니다.
이에 대한 특정 리소스는 아마도 제한적 일 것입니다. 3DS는 독점 형식이므로 타사 로더는 공급이 짧고 대부분 리버스 엔지니어링됩니다. 다른 형식 (예 : 믹서기 또는 밀크 쉐이프)이 더 개방적이며 Java에서 로더를 상당히 쉽게 작성하는 것에 대한 세부 정보를 찾을 수 있어야합니다.
Android 용 Min3d를 사용해 보셨습니까? 3DS MAX, OBJ 및 MD2 모델을 지원합니다.
Android에 대해 구체적으로 확실하지 않지만 일반적으로 3ds Max의 스크립트가 필요합니다.
안드로이드에 존재하는지 여부에 관해서는, 나는 모른다.
당신은 이것도 할 수 있습니다 3D 객체 변환기
이 도구는 3DS 객체를 텍스트 XML 형식 또는 C 코드로 변환 할 수 있습니다.
열린 GL 'C'출력의 예 :
glDisable(GL_TEXTURE_2D);
glEnable(GL_LIGHTING);
glEnable(GL_NORMALIZE);
GLfloat Material_1[] = { 0.498039f, 0.498039f, 0.498039f, 1.000000f };
glBegin(GL_TRIANGLES);
glMaterialfv(GL_FRONT,GL_DIFFUSE,Material_1
glNormal3d(0.452267,0.000000,0.891883);
glVertex3d(5.108326,1.737655,2.650969);
glVertex3d(9.124107,-0.002484,0.614596);
glVertex3d(9.124107,4.039649,0.614596);
glEnd();
또는 'C'출력
Point3 Object1_vertex[] = {
{5.108326,1.737655,2.650969},
{9.124107,-0.002484,0.614596},
{9.124107,4.039649,0.614596}};
long Object1_face[] = {
3,0,1,2,
3,3,4,5
3,6,3,5};
그런 다음이 코드의 일부를 Java 코드로 바꿀 수 있습니다.
추신이 도구는 무료가 아니며 30 일 시험 기간 동안 만 사용할 수 있습니다. 그러나 'C'코드 및 XML 변환기는이 기간 동안 유용 할 수 있습니다.