Декодируем Xom, Тип за типом... шаг за шагом...
|
|
Сообщений: 2115
|
Опубликовано: 11.07.2009, 04:46:43
Quote (AlexBond) эффекты или сами модели? эффекты( точней ссылки к ним) эффекты главного меню описаны в .xml файле, если удалить модель меню эфекты собирутся в 1 точке
|
|
|
|
Сообщений: 1042
|
Опубликовано: 11.07.2009, 15:47:36
Так продолжу XImage декодирование: 64x64x32 type 1 Code 00 00 00 C8 10 40 00 40 00 01 00 02 00 01 00 01 00 00 01 00 00 00 00 01 00 00 00 80 80 01 64x64x24 type 7 Code 00 00 00 04 40 00 40 00 07 00 00 00 07 C0 00 00 00 60 00 00 00 30 00 00 00 18 00 00 00 0C 00 00 00 06 00 00 00 03 00 00 00 07 00 00 00 00 00 30 00 00 00 3C 00 00 00 3F 00 00 C0 3F 00 00 F0 3F 00 00 FC 3F 00 00 00 00 00 00 FF 7F 32x32x32 type 6 Code 00 00 00 08 20 00 20 00 06 00 00 00 06 60 00 00 00 30 00 00 00 18 00 00 00 0C 00 00 00 06 00 00 00 03 00 00 00 06 00 00 00 00 00 0C 00 00 00 0F 00 00 C0 0F 00 00 F0 0F 00 00 FC 0F 00 00 00 00 00 00 FF 1F 32x32x32 type 1 Code 00 00 00 F7 03 20 00 20 00 01 00 02 00 01 80 00 00 00 01 00 00 00 00 01 00 00 00 80 20 128x128x24 type 8 Code 00 00 00 54 80 00 80 00 08 00 00 00 08 80 01 00 00 C0 00 00 00 60 00 00 00 30 00 00 00 18 00 00 00 0C 00 00 00 06 00 00 00 03 00 00 00 08 00 00 00 00 00 C0 00 00 00 F0 00 00 00 FC 00 00 00 FF 00 00 C0 FF 00 00 F0 FF 00 00 FC FF 00 00 00 00 00 00 FF FF 128x128x32 type 8 Code 00 00 00 FA 02 80 00 80 00 08 00 02 00 08 00 02 00 00 00 01 00 00 80 00 00 00 40 00 00 00 20 00 00 00 10 00 00 00 08 00 00 00 04 00 00 00 08 00 00 00 00 00 00 01 00 00 40 01 00 00 50 01 00 00 54 01 00 00 55 01 00 40 55 01 00 50 55 01 00 01 00 00 00 D4 AA 05 256x256x32 type 9 Code 00 00 00 7F 00 01 00 01 09 00 00 00 09 00 03 00 00 80 01 00 00 C0 00 00 00 60 00 00 00 30 00 00 00 18 00 00 00 0C 00 00 00 06 00 00 00 03 00 00 00 09 00 00 00 00 00 00 03 00 00 C0 03 00 00 F0 03 00 00 FC 03 00 00 FF 03 00 C0 FF 03 00 F0 FF 03 00 FC FF 03 00 00 00 00 00 FF FF 256x256x24 type 1 Code 00 00 00 81 06 00 01 00 01 01 00 00 00 01 00 03 00 00 01 00 00 00 00 00 00 00 00 80 80 0C 8x8x24 type 1 Code 00 00 00 EF 09 08 00 08 00 01 00 00 00 01 18 00 00 00 01 00 00 00 00 00 00 00 00 C0 01 128x64x32 type 1 Code 00 00 00 B5 11 80 00 40 00 01 00 02 00 01 00 02 00 00 01 00 00 00 00 01 00 00 00 80 80 02 16x32x32 type 1 Code 00 00 00 AA 01 10 00 20 00 01 00 02 00 01 40 00 00 00 01 00 00 00 00 01 00 00 00 80 10 Надеюсь этого хватит для анализа....
|
|
|
|
Сообщений: 1042
|
Опубликовано: 11.07.2009, 18:55:41
64x64x32 type 1
Code 00 00 00 C8 10 40 00 40 00 01 00 02 00 01 00 01 00 00 01 00 00 00 00 01 00 00 00 80 80 01 64x64x24 type 7
Code 00 00 00 04 40 00 40 00 07 00 00 00 07 C0 00 00 00 60 00 00 00 30 00 00 00 18 00 00 00 0C 00 00 00 06 00 00 00 03 00 00 00 07 00 00 00 00 00 30 00 00 00 3C 00 00 00 3F 00 00 C0 3F 00 00 F0 3F 00 00 FC 3F 00 00 00 00 00 00 FF 7F 32x32x24 type 6
Code 00 00 00 08 20 00 20 00 06 00 00 00 06 60 00 00 00 30 00 00 00 18 00 00 00 0C 00 00 00 06 00 00 00 03 00 00 00 06 00 00 00 00 00 0C 00 00 00 0F 00 00 C0 0F 00 00 F0 0F 00 00 FC 0F 00 00 00 00 00 00 FF 1F 32x32x32 type 1
Code 00 00 00 F7 03 20 00 20 00 01 00 02 00 01 80 00 00 00 01 00 00 00 00 01 00 00 00 80 20 128x128x24 type 8
Code 00 00 00 54 80 00 80 00 08 00 00 00 08 80 01 00 00 C0 00 00 00 60 00 00 00 30 00 00 00 18 00 00 00 0C 00 00 00 06 00 00 00 03 00 00 00 08 00 00 00 00 00 C0 00 00 00 F0 00 00 00 FC 00 00 00 FF 00 00 C0 FF 00 00 F0 FF 00 00 FC FF 00 00 00 00 00 00 FF FF 128x128x32 type 8
Code 00 00 00 FA 02 80 00 80 00 08 00 02 00 08 00 02 00 00 00 01 00 00 80 00 00 00 40 00 00 00 20 00 00 00 10 00 00 00 08 00 00 00 04 00 00 00 08 00 00 00 00 00 00 01 00 00 40 01 00 00 50 01 00 00 54 01 00 00 55 01 00 40 55 01 00 50 55 01 00 01 00 00 00 D4 AA 05 256x256x24 type 9
Code 00 00 00 7F 00 01 00 01 09 00 00 00 09 00 03 00 00 80 01 00 00 C0 00 00 00 60 00 00 00 30 00 00 00 18 00 00 00 0C 00 00 00 06 00 00 00 03 00 00 00 09 00 00 00 00 00 00 03 00 00 C0 03 00 00 F0 03 00 00 FC 03 00 00 FF 03 00 C0 FF 03 00 F0 FF 03 00 FC FF 03 00 00 00 00 00 FF FF 256x256x24 type 1
Code 00 00 00 81 06 00 01 00 01 01 00 00 00 01 00 03 00 00 01 00 00 00 00 00 00 00 00 80 80 0C 8x8x24 type 1
Code 00 00 00 EF 09 08 00 08 00 01 00 00 00 01 18 00 00 00 01 00 00 00 00 00 00 00 00 C0 01 128x64x32 type 1
Code 00 00 00 B5 11 80 00 40 00 01 00 02 00 01 00 02 00 00 01 00 00 00 00 01 00 00 00 80 80 02 16x32x32 type 1
Code 00 00 00 AA 01 10 00 20 00 01 00 02 00 01 40 00 00 00 01 00 00 00 00 01 00 00 00 80 10
|
|
|
|
Сообщений: 1042
|
Опубликовано: 11.07.2009, 19:58:11
32x32x24 type 6
Code 00 00 00 08 20 00 20 00 06 00 00 00 06 60 00 00 00 30 00 00 00 18 00 00 00 0C 00 00 00 06 00 00 00 03 00 00 00 06 00 00 00 00 00 0C 00 00 00 0F 00 00 C0 0F 00 00 F0 0F 00 00 FC 0F 00 00 00 00 00 00 FF 1F Итак, из того что я тут понавыделял, видно что XImage выглядит так: Quote Name | Width| Height | MapNum | Type | WidthLenNum ------WidthLen N------ WidthLen = Width*Bytes[Type] - ширина картинки в байтах ------------------------- OffsetMapNum ------OffsetMap N------ OffsetMap ------------------------- ? | ?
Осталось два последних значения расшифровать....
|
|
|
|
Сообщений: 1042
|
Опубликовано: 11.07.2009, 21:23:58
Раскодировал!!!! Последние два значения: 1 - наличие альфа канала 2 - Размер XImage в полубайтном формате Теперь увеличилась скорость листания картинок, и загрузки моделей!!!
|
|
|
|
Сообщений: 1042
|
Опубликовано: 11.07.2009, 21:40:33
Еще кое что нашел... В W4 шейдеры идут по умолчанию, т.е. инфа про них не пишется... что усложняет отображение моделей в истинной форме....
|
|
|
|
Сообщений: 1042
|
Опубликовано: 12.07.2009, 18:44:14
У меня ПРОГРЕСС!!!!! Import Image работает!!!!!!!
Червь после моего Тату Салона =)
|
|
|
|
Сообщений: 666
|
Опубликовано: 12.07.2009, 18:46:45
крутооо!
Затянись, и мир станет прекрасным. С каждым днем я все больше убеждаюсь в том, что людей умышленно делают идиотами (С).
|
|
|
|
Сообщений: 112
|
Опубликовано: 12.07.2009, 18:50:34
Супер!
^----------,--------,--------------,----- .... `\\_,---------,---------,--------------------| ....../...SILA... /\'|......../\' ...../...SILA... /..`\\.... /\' ..../...SILA.../`-------\' .../...SILA.../ ../...SILA.../ .( _______
|
|
|
|
Сообщений: 2115
|
Опубликовано: 13.07.2009, 05:19:29
ещё бы это круто тут выложил
|
|
|
|
Сообщений: 1042
|
Опубликовано: 14.07.2009, 03:11:39
Quote (AlexBond) -- Далее еще в проекте -- 6. Редактируем нужные места 7. Сохраняем через Save *.xom3D 8. В XomView выделяем ту группу что хотим изменить и жмем Load *.xom3D 9. Программа сверяет дерево и имена в группе и файле и если они идентичны, производится замена. 10. Сохраняем Xom Осталось два пункта
|
|
|
|
Сообщений: 1042
|
Опубликовано: 14.07.2009, 21:26:15
Quote (AlexBond) 8. В XomView выделяем ту группу что хотим изменить и жмем Load *.xom3D 9. Программа сверяет дерево и имена в группе и файле и если они идентичны, производится замена.
Осталось только придумать, как реализовать сверку двух деревьев... И как его вообще строить...
|
|
|
|
Сообщений: 1042
|
Опубликовано: 17.07.2009, 21:06:40
Дерево построил, только вот с матрицами проблема...
|
|
|
|
Сообщений: 1042
|
Опубликовано: 18.07.2009, 00:27:28
завтра думаю допишу импорт, и выложу его тут, мало осталось....
|
|
|
|
Сообщений: 1042
|
Опубликовано: 18.07.2009, 17:25:15
Нужна функция MatrixDecompose(XMatrix,XPos,XRot,XSize)... Чтобы разложить матрицу на позицию углы и размер. углы XRot достаются так: Code The final algorithm is then as follows:
-----------------------------------
angle_y = D = -asin( mat[2]); /* Calculate Y-axis angle */ C = cos( angle_y ); angle_y *= RADIANS;
if ( fabs( C ) > 0.005 ) /* Gimball lock? */ { trx = mat[10] / C; /* No, so get X-axis angle */ try = -mat[6] / C;
angle_x = atan2( try, trx ) * RADIANS;
trx = mat[0] / C; /* Get Z-axis angle */ try = -mat[1] / C;
angle_z = atan2( try, trx ) * RADIANS; } else /* Gimball lock has occurred */ { angle_x = 0; /* Set X-axis angle to zero */
trx = mat[5]; /* And calculate Z-axis angle */ try = mat[4];
angle_z = atan2( try, trx ) * RADIANS; }
angle_x = clamp( angle_x, 0, 360 ); /* Clamp all angles to range */ angle_y = clamp( angle_y, 0, 360 ); angle_z = clamp( angle_z, 0, 360 );
----------------------------------- XPos достается из XMatrix[1][4] Вопрос в следующем, как достать XSize?????
|
|
|
|
Сообщений: 1042
|
Опубликовано: 18.07.2009, 18:00:45
Последние достижения P.S. глаза по дурацки сделаны в W4... за маской не видно зрачков...
|
|
|
|
Сообщений: 86
|
Опубликовано: 18.07.2009, 19:32:02
Класс!
|
|
|
|
Сообщений: 1240
|
Опубликовано: 18.07.2009, 22:30:22
На всякий случай сюда сохраню мою идею: Code Дано матрица, назовём её G. В ней заложен растяжение(s_x,s_y,s_z), поворот(r_x,r_y,r_z), перенос(p_x,p_y,p_z) ну ещё потребуется cx=cos(rx),cy=cos(ry),cz=cos(rz) sx=sin(rx),sy=sin(ry),sz=sin(rz)
Матрица G будет состоять из элементов: a b c 0 d e f 0 g h i 0 j k l 1
1) Выделяем сдвиг: p_x=j p_y=k p_z=l
2) Новая матрица M зануляем в G последнюю строку: a b c 0 d e f 0 g h i 0 0 0 0 1
Из её элементов находим растяжение:
s_x=sqrt(a*a+b*b+c*c) s_y=sqrt(d*d+e*e+f*f) s_z=sqrt(g*g+h*h+i*i)
3) Ищем матрицу R: a/s_x b/s_x c/s_x 0 d/s_y e/s_y f/s_y 0 g/s_z h/s_z i/s_z 0 0 0 0 1
ну и для простоты её элементы я назову: ra rb rc 0 rd re rf 0 rg rh ri 0 0 0 0 1
Дальше ищем углы эйлера из матрицы R r_x=arcsin(rh/sqrt(1-rg*rg)) r_y=arcsin(rg) r_z=arcsin(rd/sqrt(1-rg*rg))
Только с arcsin могут быть проблемы, ибо иногда он даёт не то значение. Тогда наверно сверять результат с arccos: r_x=arccos(ri/sqrt(1-rg*rg)) r_y=arcsin(rg) r_z=arccos(ra/sqrt(1-rg*rg))
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1042
|
Опубликовано: 18.07.2009, 23:23:27
Идея вылетела... размеры всегда положительные... а это ошибка!
|
|
|
|
Сообщений: 1042
|
Опубликовано: 19.07.2009, 00:44:12
|
|
|
|