Кратко о динамической памяти
Мы будем использовать массивы разной и на перед неизвестной длинны. А массив в С++ - можно отождествить с указателем на первый элемент этого массива. Т. е. если мы хотим выделить память для n=10 элементов некого типа ТMyType, то необходимо объявить переменную указатель на данный тип.
TMyType *pArray;//Объявить указатель на переменную типа TMyType
И после этого выделить память с помощью оператора new возвращающего указатель.
pArray=new TMyType[n];//Выделить память под n элементов данного типа
И теперь мы имеем, что
pArray= &pArray[0], pArray+9= &pArray[9]где & - адрес.
Для освобождения памяти используем delete.
C++ Копировать
delete[] pArray;//Если массив delete x;//Если одна переменная
Пример для понятности:
Рис. 1
Для данного объекта куба мы имеем:
nVertexs=8;
nTriangles=12 (6 граней по 2 треугольника);
Координаты точки 1=(5.0, -5.0, 0.0); 2=(-5.0, -5.0, 0.0); и т. д. для всех остальных.
Массив Vertexs[] очевидно будет иметь 8 элементов типа TPointR3.
Массив текстурных координат TexCoords[] так же будет иметь 8 элементов, но уже типа TPointR2.
Массив граней Triangles[] будет иметь 12 элементов типа TFace.
Для того чтобы нарисовать нижнюю грань куба (два треугольника) необходимо из массива Triangles взять два элемента (1, 2, 4) и (2, 4, 3). И нарисовать два треугольника взяв координаты их вершин из массива Vertexs. Т. е. первый треугольник определяется точками Vertexs[1], Vertexs[2] и Vertexs[4]. Также при задании нормалей для него нужно использовать Normals[1], Normals[2], Normals[4]. Текстурные координаты: TexCoords[1], TexCoords[2], TexCoords[4].
Короче все очень просто. А если Вам не понятно, то Ваши базовые знания явно требуют пополнения.
Что же будем импортировать?
Запустите 3DStudioMax и создайте чайник (идем по пути наименьшего сопротивления; если Ваш лозунг: "Мы легких путей не искали!", то откройте один из файлов примеров и возьмите объект от туда). Создайте чайник радиусом 1.0 и центром в начале координат. В параметрах чайника задайте 10 сегментов (что даст 6400 граней) и поставьте галочку для генерации текстурных координат. Потом передвиньте его на 3.0 по оси Ох и наклоните на 45 градусов. Эти действия нам потом проиллюстрируют разницу между мировыми координатами и локальными.
Выделите объект (чайник), меню File->Export Selected: и сохраните как Peapot01.3DS.
Рис. 2
Страницы: 1 2 3 4 Следующая страница