#opengl-es #xcode4.2 #3dsmax #ios5 #qcar-sdk
#opengl-es #xcode4.2 #3dsmax #ios5 #qcar-sdk
Вопрос:
Дополненная реальность Quancomm (QCAR) для iOS, которая использует OpenGL ES для отображения 3D-модели. Он считывает несколько файлов:
- список вершин, координат текстуры, индексов и нормалей (в формате ОДНОГО
.h
заголовочного файла, например, Teapot.h) - файл текстуры (в формате PNG)
- файл шейдера (в формате FSH и VSH)
Мой вопрос в том, как преобразовать a 3D Studio Max (3ds/max) file
в vertices, texture coordinates, indices amp; 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?
2. да. файлы .3ds или .max подходят. Просто потому, что все еще много бесплатных 3D-моделей, доступных для загрузки онлайн, находятся в формате .3ds.
3. Вы все еще не ответили, можно ли использовать программное обеспечение 3dsmax. у 3dsmax есть несколько методов работы с данными сетки, поэтому имеет смысл использовать эту кодовую базу.
4. Нет. Поскольку у 3dsmax высокая лицензионная плата, я не могу позволить себе такую цену. Можно использовать только бесплатное программное обеспечение для 3D, такое как Blender.
Ответ №1:
я полагаю, что то, что вы ищете, находится здесь: утилита 3DS для заголовка.
Отвечая на ваш второй вопрос, параметры материала 3DS теоретически могут быть преобразованы в шейдеры, если кто-то написал все возможные шейдеры, которые может использовать 3DS, и запрограммировал некоторый код для выбора и настройки шейдера на основе свойств материала. Но нет, нет прямого / простого способа, как это сделать. Хотя, если я правильно помню, в 3DS не так много вариантов выбора материалов, поэтому для этого может потребоваться не так много шейдеров.