Есть ли способ импорта 3D-модели в Android?

голоса
49

Можно ли создать простой 3D-модели (например, в 3DS MAX), а затем импортировать его в Android?

Задан 15/10/2008 в 12:17
источник пользователем
На других языках...                            


6 ответов

голоса
34

Вот где я получил:

  • Я использовал APIDemos Google в качестве отправной точки - есть вращающиеся кубы там, каждый задается два массивов: вершины и индексы.
  • Я построю свою модель с помощью Blender и экспортировать его в файл OFF - это текстовый файл, в котором перечислены все вершины, а затем сталкивается с точки зрения этих вершин (индексируется геометрия)
  • Затем я создал приложение ++ простой C, который принимает, что OFF и записывает его в два XMLs, содержащие массивы (один для вершин и один для индексов)
  • Эти XML-файлы копируются в рес / значений, и таким образом я могу присвоить данные, которые они содержат в массивы, как это:
    int vertices[] = context.getResources().getIntArray(R.array.vertices);
  • Также нужно вручную изменить количество граней , который можно сделать здесь: gl.glDrawElements(GL10.GL_TRIANGLES, 212*6, GL10.GL_UNSIGNED_SHORT, mIndexBuffer);- вы можете найти этот номер (212 в данном случае) на верхней части файла OFF

Здесь вы можете найти мою страницу проекта, который использует это решение: проект Github> vsiogap3d

Ответил 12/04/2009 в 18:35
источник пользователем

голоса
11

вы можете экспортировать его в формат ASE. от ASE, вы можете преобразовать его в код вручную или программно. Вам нужно будет вершина для вершин массива и граней для индексов в Android. не забывайте, что вы должны установить

gl.glFrontFace(GL10.GL_CCW);

потому что 3ds Max по умолчанию против часовой стрелки.

Ответил 12/04/2009 в 16:19
источник пользователем

голоса
5

Это должно быть возможным. Вы можете иметь файл в виде файла данных с вашей программой (и как таковой он будет выталкиваться на эмулятор и упаковывает для установки на реальное устройство). После этого вы можете написать модель погрузчик и зритель в Java с использованием библиотеки для Android и Глеса для отображения модели.

Конкретные ресурсы на это, вероятно, ограничены, хотя. 3ds это формат proprietry так 3-й партия погрузчики в коротковатом питании и в основном обратная инженерии. Другие форматы (такие как блендер или Milkshape) являются более открытыми, и вы должны быть в состоянии найти подробную информацию о написании загрузчика для них в Java довольно легко.

Ответил 15/10/2008 в 12:24
источник пользователем

голоса
4

Вы пробовали min3d для Android? Он поддерживает 3ds Max, OBJ и MD2 моделей.

Ответил 26/04/2012 в 10:47
источник пользователем

голоса
3

Не уверен, что Android конкретно, но, вообще говоря, вам нужен скрипт в 3DS Max, который вручную выписывает форматирование вам нужно от модели.

Что касается того, существует один для Android или нет, я не знаю.

Ответил 15/10/2008 в 12:20
источник пользователем

голоса
2

Вы можете сделать это также с 3D конвертер объектов

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

Этот инструмент может конвертировать 3ds объект в текст \ формате XML или с кодом.

Пример Open 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();

или «с» вывода

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 код.

Ps Этот инструмент не является бесплатным, и вы можете использовать его только в течение 30-дневного пробного периода. Но «с» код и конвертеры XML имеющиеся на этот период.

Ответил 26/09/2012 в 23:40
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more