Точно не уверен в Android, но, вообще говоря, вам нужен скрипт в 3DS Max, который вручную записывает нужное вам форматирование из модели.
Что касается того, существует ли он для Android, я не знаю.
Это должно быть возможно. У вас может быть файл как файл данных с вашей программой (и как таковой он будет загружен в эмулятор и упакован для установки на фактическое устройство). Затем вы можете написать загрузчик и средство просмотра модели на java, используя библиотеки Android и GLES для отображения модели.
Однако конкретные ресурсы по этому вопросу, вероятно, ограничены. 3ds является проприетарным форматом, поэтому сторонних загрузчиков не хватает, и они в основном подвергаются обратному проектированию. Другие форматы (такие как blender или milkshape) более открыты, и вы сможете довольно легко найти подробную информацию о написании загрузчика для них на java.
вы можете экспортировать его в формат ASE. из ASE, вы можете преобразовать его в свой код вручную или программно. Вам понадобится вершина для массива вершин и грани для индексов в Android. не забывай, ты должен установить
gl.glFrontFace(GL10.GL_CCW);
потому что 3ds max по умолчанию - против часовой стрелки.
Вот куда я попал:
int vertices[] = context.getResources().getIntArray(R.array.vertices);gl.glDrawElements(GL10.GL_TRIANGLES, 212*6, GL10.GL_UNSIGNED_SHORT, mIndexBuffer); - вы можете найти это число (в данном случае 212) поверх файла OFF.Здесь вы можете найти страницу моего проекта, в котором используется это решение: Проект Github> vsiogap3d
Вы пробовали min3d для android? Он поддерживает модели 3ds max, obj и md2.
Хороший учебник по этой библиотеке: mat-d.com/site/…
Вы также можете преобразовать модель 3DS MAX с помощью Конвертер 3D-объектов
Этот инструмент может преобразовать объект 3ds в формат text \ xml или код c. Обратите внимание, что инструмент платный. Вы можете попробовать 30-дневный пробный период. Доступны "C" -код и конвертеры XML.
'c' Пример вывода OpenGL:
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 не только эти коллекции объектов.
Спасибо, это очень похоже на то, что я сделал - вместо этого я использовал OFF и Blonder.