Как загрузить сетку в Android OpenGL - PullRequest
2 голосов
/ 06 сентября 2011

Как загрузить сетку (3dmax) в Android OpenGL в ByteBuffer?

пример:

float triangleCoords[] = {
    -0.5f, -0.25f      , 0, // 0,
 0.5f, -0.25f      , 0, // 1,
 0.0f, 0.559016994f, 0  // 2,
};

ByteBuffer vbb = ByteBuffer.allocateDirect(triangleCoords.length * _4_FLOAT_LENGTH);
vbb.order(ByteOrder.nativeOrder());
triangleVB = vbb.asFloatBuffer();
triangleVB.put(triangleCoords);
triangleVB.position(0);

как загрузить сетку, например, массив или Coords или создать библиотекуэта работа

1 Ответ

0 голосов
/ 07 сентября 2011

В основном все сводится к загрузке данных из файла в ваши структуры данных (например, массив вершин из вашего фрагмента кода) и предоставлению их в OpenGL для рендеринга (в вашем случае, например, glDrawArrays).Как правило, это одна и та же процедура, независимо от того, работаете ли вы с Android, Windows, Plan9, OpenGL или Direct3D.Только детали реализации имеют значение, поэтому этот вопрос немного широк.

Вы можете посмотреть это описание формата файла 3DS (подсказка в вашем вопросе), которое также имеет ссылки на учебные пособия.для загрузки этих файлов.Хотя формат 3DS довольно прост для чтения в двоичном формате, для начала вы также можете взглянуть на Wavefront OBJ , простой формат файла ASCII, в который может экспортировать почти каждое программное обеспечение для моделирования (но это такжедержать для 3DS).Загрузка этих форматов в кучу простых вершинных массивов должна сводиться к нескольким строкам кода.

Это должно помочь вам начать.Если вы столкнулись с какими-либо конкретными проблемами при реализации этих функций загрузки сетки на вашей конкретной платформе, не стесняйтесь задавать более конкретный вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...