2011-11-04 8 views
7

Quancomm Augmented Reality (QCAR) dla iOS, które korzystają z OpenGL ES, aby wyświetlić model 3D. Odczytuje kilka plików:Konwersja 3D Studio Max model (3DS/MAX) do QCAR SDK dla formatu zgodnego z iOS/OpenGL ES?

  1. wierzchołków, współrzędne tekstury, indeksy & listy normalne (w formie jednego pliku .h nagłówka, np Teapot.h)
  2. plik tekstury (w formacie PNG)
  3. pliku shaderów (w formacie FSH i VSH)

Moje pytanie brzmi: jak przekonwertować 3D Studio Max (3ds/max) file na vertices, texture coordinates, indices & normals list? Ponadto, w trakcie procesu konwersji, czy plik modułu cieniującego może zostać wygenerowany na podstawie ustawień w pliku 3DS?

Pliki są używane w pakiecie QCAR SDK dla systemu iOS w wersji 1.0.

Jako przykład, zawartość pliku jest następująca:

#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

Dlaczego pliki ".3ds"? ".3ds" jest przestarzałym formatem. Czy odpowiedź może obejmować użycie samego 3dsmax, czy potrzebujesz go do pracy nad plikami dostarczonymi bez użycia 3dsmax? –

+0

tak. Pliki .3ds lub .max są w porządku. Tylko dlatego, że nadal wiele bezpłatnych modeli 3D dostępnych do pobrania w Internecie jest w formacie .3ds. – Raptor

+0

Nadal nie odpowiedziano, czy można użyć oprogramowania 3dsmax. 3dsmax ma kilka metod radzenia sobie z danymi siatki, więc warto wykorzystać tę podstawę kodu. –

Odpowiedz

2

wierzę, że to, czego szukasz, jest tutaj: 3DS to Header utility.

W odpowiedzi na twoje drugie pytanie, ustawienia materiału 3DS mogą zostać teoretycznie przekonwertowane na shadery, jeśli ktoś napisze wszystkie możliwe shadery, których 3DS może użyć i zaprogramuje jakiś kod, aby wybrać i skonfigurować moduł cieniujący na podstawie właściwości materiału. Ale nie, nie ma bezpośredniego/łatwego sposobu, jak to zrobić. Chociaż, jeśli dobrze pamiętam, 3DS nie ma zbyt wielu materialnych wyborów, więc aby to zrobić, może nie być zbyt wielu shaderów.

Powiązane problemy