Конвертировать модель 3D Studio Max (3DS / MAX) в QCAR SDK для совместимого с iOS / OpenGL ES формата? - PullRequest
7 голосов
/ 04 ноября 2011

Дополненная реальность Quancomm (QCAR) для iOS, использующая OpenGL ES, для отображения 3D-модели.Он читает несколько файлов:

  1. вершин, координат текстур, индексов и списка нормалей (в формате ONE .h заголовочный файл, например, Teapot.h)
  2. текстурный файл (в PNGформат)
  3. файл шейдера (в формате FSH и VSH)

У меня вопрос, как преобразовать 3D Studio Max (3ds/max) file в vertices, texture coordinates, indices & normals list?Кроме того, можно ли генерировать файл шейдера в процессе преобразования на основе настроек в файле 3DS?

Файлы используются в QCAR SDK для iOS версии 1.0.

КакНапример, содержимое файла выглядит следующим образом:

#ifndef _QCAR_TEAPOT_OBJECT_H_
#define _QCAR_TEAPOT_OBJECT_H_


#define NUM_TEAPOT_OBJECT_VERTEX 824
#define NUM_TEAPOT_OBJECT_INDEX 1024 * 3


static const float teapotVertices[NUM_TEAPOT_OBJECT_VERTEX * 3] = 
{
// vertices here
};
static const float teapotTexCoords[NUM_TEAPOT_OBJECT_VERTEX * 2] =
{
// texture coordinates here
};
static const float teapotNormals[NUM_TEAPOT_OBJECT_VERTEX * 3] =
{
// normals here
};
static const unsigned short teapotIndices[NUM_TEAPOT_OBJECT_INDEX] =
{
// indices here
};

#endif

1 Ответ

2 голосов
/ 10 января 2012

Я считаю, что то, что вы ищете, здесь: Утилита 3DS to Header .

В ответ на ваш второй вопрос, настройки материала 3DS теоретически могут быть преобразованы в шейдеры, есликто-то написал все возможные шейдеры, которые 3DS может использовать, и запрограммировал некоторый код для выбора и настройки шейдера на основе свойств материала.Но нет, не существует прямого / простого способа, как это сделать.Хотя, если я правильно помню, в 3DS не слишком много материалов, поэтому для этого может потребоваться не слишком много шейдеров.

...