Я создал загрузчик OBJ, который может импортировать файлы .OBJ, которые были экспортированы из 3DS Max, в мое простое приложение / просмотрщик OpenGL.В основе этого был Vector3.h, написанный с помощью некоторых учебных пособий.
Он отлично работал на паре моделей, которые я использовал, но у той, с которой я хочу работать, есть что-то другое, что не учитываетсяза.В его вершинах 4 точки вместо 3. Вот пример строки, с которой я работаю:
g Box02
usemtl Wood_Bark
s 4
f 1/1/1 2/2/1 3/3/1 4/4/2
f 4/1/3 3/2/3 5/3/3
Первая строка 'f' содержит 4 интересующие меня вершины. Мой Vertex3.hпринимает X, Y, Z. В других моих моделях все линии были похожи на вторую линию 'f', только с 3 элементами.Я получаю вершину вне диапазона, поэтому, когда я пошел, чтобы проверить, где это происходит, я увидел, что она находится в этой строке, поэтому я предположил, потому что на линии есть больше данных, которые можно обработать.Вот весь Vertex3.h
http://pastebin.com/dgGSBSFe
И эта строка кода не работает.вершины - это вектор 3.
tempVertices.push_back ( vertices[--vertex] );
Мой вопрос: что такое 4-ая точка?Как бы вы объяснили это в чем-то вроде моего файла Vector3.h?Похоже, мне нужно создать Vector4.h и игнорировать 4-ую переменную, если в строке только 3.Но я хотел бы узнать больше о том, с чем я имею дело, и какие-либо советы о том, как это сделать.4-й элемент - это альфа или что-то еще?Как его использовать или вообще использовать в моих вычислениях в Vector3.h?