Войти
ПрограммированиеСтатьиГрафика

Формат 3DS: Первый шаг. (2 стр)

Кратко о динамической памяти

Мы будем использовать массивы разной и на перед неизвестной длинны. А массив в С++ - можно отождествить с указателем на первый элемент этого массива. Т. е. если мы хотим выделить память для n=10 элементов некого типа ТMyType, то необходимо объявить переменную указатель на данный тип.

TMyType *pArray;//Объявить указатель на переменную типа TMyType

И после этого выделить память с помощью оператора new возвращающего указатель.

pArray=new TMyType[n];//Выделить память под n элементов данного типа

И теперь мы имеем, что

pArray= &pArray[0], pArray+9= &pArray[9]
где & - адрес.

Для освобождения памяти используем delete.

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 Следующая »

#3DS, #игровой объект, #импорт, #модель, #экспорт

8 мая 2003

Комментарии [65]