Самоучитель по 3dsmax 7

         

То есть, скажем, CHUNK_OBJMESH нам надо знать из-за того, что каждый объект в сцене описывается...


То есть, скажем, CHUNK_OBJMESH нам надо знать из-за того, что каждый объект в сцене описывается блоком CHUNK_OBJBLOCK, который появляется только как подблок CHUNK_OBJMESH, и просто игнорировать весь CHUNK_OBJMESH из-за этого нельзя. Кроме того, они задают структуру - например, все данные, что относятся к текущему блоку CHUNK_OBJBLOCK, относятся к текущему объекту, а подблоки этого блока уже могут быть разбросаны как угодно.

А теперь - относительно полное описание того, какие данные содержатся в каждом из блоков. Будут использоваться следующие обозначения:

char[]ASCIIZ-строка (ASCII-строка, оканчивающаяся нулем)
byte 8-битное беззнаковое целое число
word 16-битное беззнаковое целое число
dword 32-битное целое число
float 32-битное число с плавающей запятой
vectorfloat x,z,y

Здесь (в самой последней строчке) опечатки нет! В файле 3DS везде изменен порядок следования y и z; то есть в файле данных ось y смотрит вглубь экрана, а ось z - вверх. Несмотря на то, что в самой 3D Studio ось y смотрит как раз вверх, а z - вдаль.

Блок: CHUNK_VERTLIST
Данные: список вершин текущего объекта
Формат:

word num; // число вершин vector vertices[num]; // координаты каждой из вершин
Блок: CHUNK_FACELIST
Данные: список граней текущего объекта
Формат: word num; // число граней struct { // word v0; // номер первой вершины грани word v1; // номер второй вершины грани word v2; // номер третьей вершины грани word flags; // флаги грани } faces[num]; // собственно список граней
Блок: CHUNK_FACEMAT
Данные: название материала и список тех граней объекта, которым назначен этот материал; таких блоков может быть несколько (грани с разными материалами в одном объекте), а может вообще не быть, если объекту материалы вообще не назначены (нетекстурированный объект)
Формат: char name[]; // название материала word num; // число граней из этого материала word face_nums[num]; // список номеров граней из этого // материала
Блок: CHUNK_MAPLIST
Данные: текстурные координаты вершин текущего объекта
Формат: word num; // число вершин struct { // float u; // координата текстуры U // (по горизонтали) float v; // координата текстуры V // (по вертикали) } texcoords[num]; // собственно список текстурных // координат

Текстурные координаты задаются в диапазоне 0..1.



Содержание раздела