2011-11-04 3 views
7

Quancomm Augmented Reality (QCAR) для iOS, которые используют OpenGL ES для отображения 3D-модели. Он читает несколько файлов:Преобразование 3D Studio Max model (3DS/MAX) в QCAR SDK для совместимого с iOS/OpenGL ES формата?

  1. вершин, текстурные координаты, индексы & список нормалей (в формате одного файла .h заголовка, например Teapot.h)
  2. текстура файл (в формате PNG)
  3. шейдерного файла (ФСГ и формат ВШ)

Мой вопрос, как преобразовать 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

Почему файлы ".3ds"? «.3ds» - это устаревший формат. Может ли ответ включать использование 3dsmax себя или вам нужно, чтобы он работал на файлы, предоставленные вам без использования 3dsmax? –

+0

да. .3ds или .max файлы в порядке. Просто потому, что еще много бесплатных 3D-моделей, доступных для загрузки онлайн, находится в формате .3ds. – Raptor

+0

Вы все еще не ответили, может ли использоваться программное обеспечение 3dsmax. 3dsmax имеет несколько методов работы с данными сетки, поэтому имеет смысл использовать эту базу кода. –

ответ

2

я считаю, что то, что вы ищете, находится здесь: 3DS to Header utility.

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