У меня есть парсер, написанный на ActionScript для импорта файлов .obj. Затем я рендерил их в Molehill, и это здорово. До сих пор я могу импортировать то, что я считаю стандартными файлами .obj с вершинами в порядке x, y, z или z, x, y. Однако любой файл .obj, экспортированный из Cinema 4D, просто не работает.
Например, тетраэдр даже не отображает компонент z (файл .obj имеет индексы с правильной глубиной z!). В простом кубе отсутствует половина граней треугольника. Я слышал, что Cinema 4D экспортирует в порядке x, z, y, и поэтому я попытался объяснить это, но безуспешно. И действительно, порядок вершин в любом случае не должен приводить к отсутствию полигонов.
Кто-нибудь импортировал сетки Cinema 4D из файлов .obj? Есть ли какая-то особая хитрость? Cinema 4D просто использует стандарты Wavefront .obj? Заранее спасибо за любую помощь.
Обновление:
Я считаю, что виновником является то, что данные индекса для полигонов находятся в наборе 4 вместо 3. Например, я хочу это: 1/1 2/2 3/3, но не это: 1/1 2/2 3 / 3 4/4. Cinema 4D экспортирует файлы .obj как последние. В любом случае, чтобы решить эту проблему на конце синтаксического анализа или экспорта Cinema 4D?
Update2:
Теперь данные индекса - это то, что мне нужно, но я все равно не могу правильно отобразить. Следующее для правильного тетраэдра. Когда я пытаюсь сделать это, появляются только два из четырех лиц:
# WaveFront *.obj file (generated by CINEMA 4D)
g __
v -70.571068 -100 122.232675
v 141.142136 -100 0
v 0 100 0
v -70.571068 -100 -122.232675
vt 0.666667 0 0
vt 0.5 0.5 0
vt 0 0 0
vt 1 0 0
vt 0 0.5 0
vt 0.333333 1 0
vt 1 1 0
vt 0.666667 1 0
vt 0.333333 0 0
vt 0.75 0.933013 0
f 4/10 2/5 1/2
f 1/1 3/8 4/9
f 2/4 3/7 1/1
f 4/9 3/6 2/3
Есть что-нибудь странное в вышеуказанном содержании? (Было бы полезно, если бы у меня был файл .obj, экспортированный из другого стандартного программного обеспечения 3D того же тетраэдра)