W4Tweaks
Меню сайта
Последние файлы
Последние темы


Вход



Мини-чат
 
500

Статистика
Онлайн:

Сегодня заходили: AlexBond, Joker, 4erveR, Unaited, Emishka_Roper, PROFILE


Друзья сайта

Если вы хотите увидеть в этом спиcке свой сайт загляните сюда

Наш баннер:



· Регистрация · Вход
[ Новые сообщения · Участники · Подписки · Поиск · RSS ]
Страница 6 из 11«12456781011»
Форум » Worms 4 Mayhem » 4.3. Ваши идеи по моделированию » Декодируем Xom, Тип за типом... шаг за шагом... (Собираю группу психов не жалеющих свое время и мозги...)
Декодируем Xom, Тип за типом... шаг за шагом...
DrHitman27
Дата: СБ, 11.07.2009, 04:46:43 | Сообщение # 101
DrHitman27
•Polarized•
Группа: Админы
Сообщений: 2109
Репутация: 52
Статус: Offline
Quote (AlexBond)
эффекты или сами модели?

эффекты( точней ссылки к ним) эффекты главного меню описаны в .xml файле, если удалить модель меню эфекты собирутся в 1 точке


 
AlexBond
Дата: СБ, 11.07.2009, 15:47:36 | Сообщение # 102
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1031
Репутация: 106
Инвентарь: 8
Статус: Offline
Так продолжу 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

Надеюсь этого хватит для анализа....


 
AlexBond
Дата: СБ, 11.07.2009, 18:55:41 | Сообщение # 103
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1031
Репутация: 106
Инвентарь: 8
Статус: Offline

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


 
AlexBond
Дата: СБ, 11.07.2009, 19:58:11 | Сообщение # 104
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1031
Репутация: 106
Инвентарь: 8
Статус: Offline
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
-------------------------
? | ?


Осталось два последних значения расшифровать....



 
AlexBond
Дата: СБ, 11.07.2009, 21:23:58 | Сообщение # 105
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1031
Репутация: 106
Инвентарь: 8
Статус: Offline
Раскодировал!!!! Последние два значения:
1 - наличие альфа канала
2 - Размер XImage в полубайтном формате

Теперь увеличилась скорость листания картинок, и загрузки моделей!!!


 
AlexBond
Дата: СБ, 11.07.2009, 21:40:33 | Сообщение # 106
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1031
Репутация: 106
Инвентарь: 8
Статус: Offline
Еще кое что нашел... В W4 шейдеры идут по умолчанию, т.е. инфа про них не пишется... что усложняет отображение моделей в истинной форме....

 
AlexBond
Дата: ВС, 12.07.2009, 18:44:14 | Сообщение # 107
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1031
Репутация: 106
Инвентарь: 8
Статус: Offline
У меня ПРОГРЕСС!!!!! Import Image работает!!!!!!!

Червь после моего Тату Салона =)

Прикрепления: 2190860.jpg(51Kb)


 
vera34
Дата: ВС, 12.07.2009, 18:46:45 | Сообщение # 108
vera34
Его узнают в чате
Группа: Проверенные
Сообщений: 666
Репутация: 18
Статус: Offline
крутооо! cool



Затянись, и мир станет прекрасным.
С каждым днем я все больше убеждаюсь в том, что людей умышленно делают идиотами (С).
 
Symbianer
Дата: ВС, 12.07.2009, 18:50:34 | Сообщение # 109
Symbianer
Позитивный чел
Группа: Проверенные
Сообщений: 112
Репутация: 10
Статус: Offline
Супер!

^----------,--------,--------------,-----
.... `\\_,---------,---------,--------------------|
....../...SILA... /\'|......../\'
...../...SILA... /..`\\.... /\'
..../...SILA.../`-------\'
.../...SILA.../
../...SILA.../
.( _______
 
DrHitman27
Дата: ПН, 13.07.2009, 05:19:29 | Сообщение # 110
DrHitman27
•Polarized•
Группа: Админы
Сообщений: 2109
Репутация: 52
Статус: Offline
ещё бы это круто тут выложил

 
AlexBond
Дата: ВТ, 14.07.2009, 03:11:39 | Сообщение # 111
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1031
Репутация: 106
Инвентарь: 8
Статус: Offline
Quote (AlexBond)
-- Далее еще в проекте --
6. Редактируем нужные места
7. Сохраняем через Save *.xom3D

8. В XomView выделяем ту группу что хотим изменить и жмем Load *.xom3D
9. Программа сверяет дерево и имена в группе и файле и если они идентичны, производится замена.
10. Сохраняем Xom

Осталось два пункта cool

Прикрепления: 2711953.png(88Kb)


 
AlexBond
Дата: ВТ, 14.07.2009, 21:26:15 | Сообщение # 112
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1031
Репутация: 106
Инвентарь: 8
Статус: Offline
Quote (AlexBond)
8. В XomView выделяем ту группу что хотим изменить и жмем Load *.xom3D
9. Программа сверяет дерево и имена в группе и файле и если они идентичны, производится замена.

Осталось только придумать, как реализовать сверку двух деревьев... И как его вообще строить...

Прикрепления: 5841531.png(17Kb)


 
AlexBond
Дата: ПТ, 17.07.2009, 21:06:40 | Сообщение # 113
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1031
Репутация: 106
Инвентарь: 8
Статус: Offline
Дерево построил, только вот с матрицами проблема...

Прикрепления: 9860139.png(65Kb)


 
AlexBond
Дата: СБ, 18.07.2009, 00:27:28 | Сообщение # 114
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1031
Репутация: 106
Инвентарь: 8
Статус: Offline
завтра думаю допишу импорт, и выложу его тут, мало осталось....

 
AlexBond
Дата: СБ, 18.07.2009, 17:25:15 | Сообщение # 115
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1031
Репутация: 106
Инвентарь: 8
Статус: Offline
Нужна функция 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?????


 
AlexBond
Дата: СБ, 18.07.2009, 18:00:45 | Сообщение # 116
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1031
Репутация: 106
Инвентарь: 8
Статус: Offline
Последние достижения

P.S. глаза по дурацки сделаны в W4... за маской не видно зрачков...

Прикрепления: 9068548.jpg(37Kb) · 3726543.jpg(43Kb)


 
KROLь
Дата: СБ, 18.07.2009, 19:32:02 | Сообщение # 117
KROLь
Позитивный чел
Группа: Проверенные
Сообщений: 86
Репутация: 10
Статус: Offline
Класс! biggrin
 
Герыч
Дата: СБ, 18.07.2009, 22:30:22 | Сообщение # 118
Герыч
Админ
Группа: Админы
Сообщений: 1240
Репутация: 60
Инвентарь: 5
Статус: Offline
На всякий случай сюда сохраню мою идею:
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))


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
AlexBond
Дата: СБ, 18.07.2009, 23:23:27 | Сообщение # 119
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1031
Репутация: 106
Инвентарь: 8
Статус: Offline
Идея вылетела... размеры всегда положительные... а это ошибка!

 
AlexBond
Дата: ВС, 19.07.2009, 00:44:12 | Сообщение # 120
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1031
Репутация: 106
Инвентарь: 8
Статус: Offline
cool
Прикрепления: 6433947.jpg(69Kb)


 
Форум » Worms 4 Mayhem » 4.3. Ваши идеи по моделированию » Декодируем Xom, Тип за типом... шаг за шагом... (Собираю группу психов не жалеющих свое время и мозги...)
Страница 6 из 11«12456781011»
Поиск:

Copyright W4Tweaks™ 2008-2017 Хостинг от uCoz