문제

간단한 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 객체 변환기

http://web.t-online.hu/karpo/

이 도구는 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 변환기는이 기간 동안 유용 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top