У меня полнофункциональное приложение для iOS, и сейчас я работаю над версией Android в Android Studio.Приложение не является 3D-игрой, оно использует обычный просмотр списка и т. Д., Но в одном упражнении приложение использует дополненную реальность.Я решил использовать Vuforia (чтобы получить больше устройств, чем ARCore + ARKit) и купил эту простую 3D-модель.
https://www.turbosquid.com/3d-models/blend-gift/977474
Теперь я просто хочу показать свою собственную модель на своемVuforia Image Marker.Легко!Я думал ...
Vuforia использует OpenGL для рендеринга своей 3D-модели.Это чайник (https://library.vuforia.com/articles/Training/Image-Target-Guide), и похоже, что класс, необходимый для рендеринга чайника, выглядит следующим образом:
public class Teapot extends MeshObject {
private Buffer mVertBuff;
private Buffer mTexCoordBuff;
private Buffer mNormBuff;
private Buffer mIndBuff;
private int indicesNumber = 0;
private int verticesNumber = 0;
public Teapot()
{
setVerts();
setTexCoords();
setNorms();
setIndices();
}
private void setVerts()
{
double[] TEAPOT_VERTS = { 11.222200, 0.110300, 20.030291, 10.302300, ect. }
mVertBuff = fillBuffer(TEAPOT_VERTS);
verticesNumber = TEAPOT_VERTS.length / 3;
}
private void setTexCoords()
{
double[] TEAPOT_TEX_COORDS = { 0.608828, 0.354913, 0.609037, 0.414650, ect. }
mTexCoordBuff = fillBuffer(TEAPOT_TEX_COORDS);
}
private void setNorms()
{
double[] TEAPOT_NORMS = { -0.964496, 0.067011, -0.255454, -0.865037, ect. }
mNormBuff = fillBuffer(TEAPOT_NORMS);
}
private void setIndices()
{
short[] TEAPOT_INDICES = { 0, 1, 2, 2, 3, 0, 4, 5, 6, 6, 7, 4, 8, 9, ect. }
mIndBuff = fillBuffer(TEAPOT_INDICES);
indicesNumber = TEAPOT_INDICES.length;
}
}
Так что я подумал - ага - если бы я мог просто найти Вертс,TexCoords, Нормы и Индексы моей 3D-модели. Я мог бы вставить их сюда, а затем нарисовать свой удивительный рождественский подарок вместо чайника.
У меня есть 3D-модель в:
- 3D Studio Project
- Collada
- OBJ
- Другие текстуры
- FBX
И у меня тоже есть блендер (но почти нулевых навыков blender.) После долгого поиска я подумал, что если бы я мог преобразовать модель в файл j-son. Я мог бы получить правильные входные данные для его рисования. Но созданный файл j-son очень большой!И когда я вставляю числа, полученные из файла, приложение вылетает с ошибкой: error: слишком большой код, который я, конечно, не хочу: - (
Так что теперь я снова застрял ... Может быть,мой подарок большой? Или мой способ сделать это совершенно неправильно?
Я думаю, что Android Studiosсоздатели должны упростить 3D-импорт и рендеринг - но это мне сейчас не поможет!
Это просто 3D-подарок, и я хочу его там, где находится простой 3D-чайник.