форма записи в файле с расширением x имеет вид:
xof 0302txt 0064 Header { //начало файла// 1; 0; 1; }
Frame x3ds_Pyramid {
FrameTransformMatrix { //матрица преобразования матрикса 0.490196, 0.000000, 0.000000, 0.000000, (координат и масштаба 0.000000, 0.490196, 0.000000, 0.000000, объекта в пространстве)// 0.000000, 0.000000, 0.490196, 0.000000, -0.000000, 0.819444, 0.000000, 1.000000;; } //начало описания объекта(сетки объекта). Вместо Mesh Pyramid { слова Pyramid можно поставить любое другое имя// 18; //количество строк до ;;// -0.000000; 8.333334; -0.000000;, //координаты точек пространства -10.000000; -1.666667; -10.000000;, (x,y,z соответственно) 10.000000; -1.666667; -10.000000;, строки имеют номера: первая - 0, 10.000000; -1.666667; 10.000000;, вторая - 1,.......последняя - 17 -10.000000; -1.666667; 10.000000;, здесь 18 точек // -0.000000; -1.666667; -0.000000;, 10.000000; -1.666667; -10.000000;, 10.000000; -1.666667; 10.000000;, -10.000000; -1.666667; 10.000000;, -10.000000; -1.666667; -10.000000;, -10.000000; -1.666667; -10.000000;, 10.000000; -1.666667; -10.000000;, 10.000000; -1.666667; -10.000000;, 10.000000; -1.666667; 10.000000;, 10.000000; -1.666667; 10.000000;, -10.000000; -1.666667; 10.000000;, -10.000000; -1.666667; 10.000000;, -10.000000; -1.666667; -10.000000;;
8; //количество строк до следующих ;; 3;0,2,1;, первое число - кол-во точек многоугольника 3;0,3,6;, 3;0,4,7;, следующие за первым числом через запятую - 3;0,9,8;, номера точек пространства, описаных выше 3;10,11,5;, //!!!видимая сторона многоугольника опреде- 3;12,13,5;, ляется направлением обхода его точек 3;14,15,5;, если обход по часовой стрелке, то это 3;16,17,5;; видимая сторона//
MeshMaterialList { 1; 1; 0; Material { //указание на материал 1.000000;0.800000;0.000000;0.900000;; и текстуру// 25.000000; 0.300000;0.000000;0.000000;; 0.4; 0.4; 0.1;; TextureFilename {"lava.bmp";} } }
MeshTextureCoords { //описание текстурирования объекта// 18; 0.500000;0.000000;, //каждая строка до знака ;; соответствует строке с 0.000000;1.000000;, координатами точек, которые описаны выше 1.000000;1.000000;, рисунок текстуры рассматривается как единичный 1.000000;1.000000;, квадрат в системе координат с началом координат 1.000000;1.000000;, в левом верхнем углу 0.500000;0.500000;, вертикальная ось Oy направлена вниз 0.000000;1.000000;, горизонтальная ось Ox направлена вправо 0.000000;1.000000;, первое число в каждой строке х-координата 0.000000;1.000000;, текстуры, второе - y-координата // 1.000000;1.000000;, 1.000000;1.000000;, 0.000000;1.000000;, 0.000000;1.000000;, 0.000000;0.000000;, 0.000000;0.000000;, 1.000000;0.000000;, 1.000000;0.000000;, 1.000000;1.000000;; } } }
В общем как Вы поняли - вначале header(обязателен), затем
перечисляются координаты всех вершин, затем они соединяютя, потом
тектсурируются - все просто! Нормали и темплейты а также материалы и
анимацию мы не включили в описание - но учтите без них объект показан
не будет. изучите их самостоятельно.
Чтобы получше изучить X-файлы возьмите какой-нибудь образец и просто посмотрите как он устроен. А здесь можно скачать наш генератор цилиндрического х-объекта и генератор сферы написанные автором игры Убойные роботы. Источник: http://x3dgames.narod.ru/
|