XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Моделлинг> MdlVis
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

 
tysch_tysch
Работаем
offline
Опыт: отключен
Алексей респект за конвертер...правда он мягко говоря тормозит систему, но терпимо
Старый 15.11.2005, 17:03
Алексей
Где кошачья мята?!
offline
Опыт: 26,303
Активность:
Тормозит? Возможно, просто "захватывает" процессор - чтобы быстрее конвертить. Я его тестировал на "куче" из 216 текстурных файлов - процесс конверсии занял всего 0,5 сек! Или у тебя он работает медленнее? Сильные тормоза?
П.С.: В любом случае, я могу утешать себя мыслью, что мой конвертер весит в 80 раз меньше иностранного! :D
Старый 15.11.2005, 17:14
tysch_tysch
Работаем
offline
Опыт: отключен
да медленней, минуты полторы конвертирует(примерно тоже количество)... возможно виртуальной памяти мало, ну тут уж я ничего не поделаю - моя постоянная проблема
тормозит так, что остаётся ждать пока закончит работать...
кста ньюз видел?=)
Старый 15.11.2005, 17:26
NETRAT

offline
Опыт: 83,712
Активность:
Цитата:
Или сопрут MdlVis? Хм, пусть попробуют... С этой программой такой трюк, как с War3Viewer'ом, когда её переводили безо всякого исходного кода, не прокатит: там все ресурсы (и строки) упакованы. По LZW-алгоритму.

Подтверждаю, без drc файла строк там ничего ловить.

Алексей гы, не на асме писал конвертер?
Старый 15.11.2005, 21:30
Алексей
Где кошачья мята?!
offline
Опыт: 26,303
Активность:
ZlaYa1000. Новости глянул, спасибо.
NETRAT: Конечно на asm'е. А то как бы я иначе уложил всё это в 3Кб? (На Си можно было уложиться лишь в 25-30Кб). Кстати, размер исходника составил 14Кб - всего на 2 Кб больше, чем аналогичный сишный исходник. Т.е. на Си пришлось бы писать (в символах) примерно столько же. Думаю, разница в размерах набежала из-за слишком подробных комментариев - ассемблерные программы я всегда стараюсь писать аккуратно и подробно комментировать, т.к. отлаживать их довольно трудно. Гораздо лучше слегка подстраховаться, чем перелопачивать asm-код.
П.С.: За последние 5 лет ассемблер сделал большой шаг вперёд. Fasm - это уже транслятор нового поколения. Скорость разработки на нём (разумеется, при наличии некоторых базовых знаний) не меньше, чем на MSVC без MFC. Весь конвертер я создал довольно быстро. Чуть медленнее кодировалась математика - расчёты на asm'е запрограммировать ощутимо сложнее, чем на Си.
Кстати, asm - наиболее дешёвый и доступный язык программирования. Достаточно закачать всего 758Кб (!) - и у вас есть всё для полноценной работы. В этот крохотный объём входит IDE-среда (жуткий двухпроходный вариант компилятор-линковщик с кучей ключей давно канул в прошлое)+транслятор+включаемые файлы+исходники примеров+документация (последняя, увы, не очень - рассчитана на тех, кто уже хорошо знает asm).
Этот пакет поддерживает все архитектурные особенности современных процессоров (в т.ч. возможность создавать код для 64-битных машин/ОС). Позволяет писать код для DOS, Windows, Linux, BeOS. Плюс драйвера, obj-файлы (для будущей влинковки, к примеру, в Delphi-программы) и т.д.
Для тех, кто всё ещё представляет себе asm в виде унылой последовательности опкодов, в которых невозможно ориентироваться, привожу фрагмент кода конвертера blpxtga:
Код:
Start:
 ;1. Проверим, что содержится в командной строке
 invoke GetCommandLine                           ;получить командную строку (UNICODE)
 invoke CommandLineToArgv,eax,dwCnt       ;парсинг этой строки

 ;Получить первый аргумент
 push   eax                                               ;сохранить хэндл списка аргументов
 push   eax
 invoke GetProcessHeap                             ;получить хэндл кучи процесса
 mov    [hHeap],eax                                  ;сохранить его
 invoke HeapAlloc,eax,HEAP_ZERO_MEMORY,4096 ;выделить блок памяти (4Кб)
 mov    [hBuf1],eax
 invoke HeapAlloc,[hHeap],HEAP_ZERO_MEMORY,4096 ;выделить блок памяти(второй)
 mov    [hBuf2],eax
 pop     eax                                              ;восстановить хэндл списка аргументов

 .if[dwCnt]>1                                            ;если в командной строке что-то есть...
  mov    ecx,[eax+4]
  invoke WideCharToMultiByte,CP_ACP,0,ecx,-1,[hBuf1],4096,0,0 ;получить аргумент
 .else
  mov    [hBuf1],szBlp                                ;указатель на строку
 .endif
 invoke GlobalFree                                    ;освободить список (+pop)

 ;2. Начинаем поиск файлов для конверсии
 stdcall FindAndConvert,[hBuf1]                    ;собственная процедура

 ;3. Вывод сообщения об успехе.
 invoke MessageBox,0,szSuccess,szCptSuc,MB_ICONINFORMATION
 invoke ExitProcess,0                                   ;выход
Как видно, самый обычный язык. Довольно похоже на Си. Это как раз и есть вся интерфейсная часть кода конвертера(где-то 20% по объёму). Остальное - процедура FindAndConvert, там осуществляется поиск файлов и собственно конверсия (в основном это математические преобразования).

Отредактировано Алексей, 15.11.2005 в 22:17.
Старый 15.11.2005, 22:10
NETRAT

offline
Опыт: 83,712
Активность:
Алексей конечно оффтоп, но читал гайд, пока немного времени чтобы с ассемблером копаться, но макросы - это моя любимая часть в асме, с учетом того насколько их подняли (по сути там многие функции из того же С запараллелили соответствующими макросами - я в шоки был когда увидел знакомый синтаксис - тут даже С с Asm-вставками(любил такое делать, и в Delphi тоже) в пролете. На лекциях почитываю - сокурсники смотрят - думают вообще системщик какой-то - ты чего за этот геморр сел спрашивают =)

Э, да, а поскольку у нас лабы все математические, то перспектива использования в них асма не кажется такой уж радужной.

Да при наличии своей библиотечки макросов там вообще не придется ни о чем беспокоиться.

Это точно, никаких проблем с переносом на другой комп(несовместимости всякие и т.п. не беспокоят).

Гм, документация, имхо, на средний уровень рассчитана - для новичков там описуха основных комманд и методы их перегрузки при помощи макросов, впрочем, мне было понятно, но показалось мало материала - хотелось бы еще почитать. Ну и не совсем понял смысл комманд match (по-моему они нигде не нужны).

Ага еще он позволяет создавать dll и PE

TONIC думаю, что исходники пока рано выкладывать
Старый 16.11.2005, 12:29
Olorin

offline
Опыт: 11,841
Активность:
При вставке модели в Вар заметил один глюк - нет портрета, не знаете как можно исправить?
Старый 16.11.2005, 14:12
WildCat
General Mapmaker
offline
Опыт: 10,232
Активность:
сделать модель портрета :)
Старый 16.11.2005, 16:57
NETRAT

offline
Опыт: 83,712
Активность:
Создай камеру на лицо. А анимации portrait есть?
Старый 16.11.2005, 18:53
Алексей
Где кошачья мята?!
offline
Опыт: 26,303
Активность:
NETRAT: Почему рано? Исходники конвертера можно и выложить.
Olorin: Обычно бывает так: модель отдельно, портрет отдельно. А именно: если ты извлёк модель для редактирования из War'а, то в той же папке должна быть модель с суффиксом "_portrait". Это и есть портрет модели. Его тоже нужно отредактировать и тоже импортировать в карту вместе с изменённой моделью.
В ряде моделей содержатся камеры и портретные анимации (Portrait и Portrait Talk). Для таких моделей отдельный импорт портрета не требуется. Кроме того, изредка портрет лежит не в папке с моделью, а вообще в другом MPQ-архиве. А в ряде моделей, скачанных с wc3sear.ch его просто нет. Пока что создавать камеры умеет только W3ME, но далеко не факт, что он пойдёт на твоей машине. Ибо требует DirectX9 (и только 9, не 8, не 7 и не 10), а также строго определённые марки видеокарт (GeForce начиная с 3 или последние Radeon. Причём далеко не всех версий).
Старый 16.11.2005, 19:40
tysch_tysch
Работаем
offline
Опыт: отключен
Алексей насчёт исходников, думаю стоит выложить на большой картостроительной помойке( серче) сначало сам конвертор, а к нему уже приложить исходники
Старый 16.11.2005, 22:09
Troll
Ночной странник
offline
Опыт: 11,860
Активность:
АААААААААААААААААААААААА!!!!!!!!!!! Проклятые Близзардцы, жмоты!!!!!! Здания в формате wmo!!!!!!!! А они мне так нужны!!!!! Есть конвертор *.wmo в *.m2, или может Алексей сможешь сделать? Блин вообще срочно нужно!!
Старый 21.11.2005, 09:11
Алексей
Где кошачья мята?!
offline
Опыт: 26,303
Активность:
Срочно не получится. Сейчас готовлю MdlVis1.3, и дело продвигается небыстро, т.к. в универе очередная запарка. А WMO - это вроде бы только внутреннее оформление зданий (фактически, это мини-карта здания, World Map Object). Где-то должно быть и внешнее...
Старый 21.11.2005, 17:57
Iron
Листовой
offline
Опыт: 24,427
Активность:
Блин, Алексей, почитай наши посты про wmo.
Я писал, что есть три файла wmo для каждого здания:
1)Отделка (то о чем ты говоришь)
2)Внешняя геометрия (внешние стены)
3)Внутренняя геометрия (стены комнаты здания)

Если в первом ссылки на модели, то в двух других чистая геометрия модели здания.
Старый 22.11.2005, 00:06
Troll
Ночной странник
offline
Опыт: 11,860
Активность:
Алексей, я бы хотел увидеть в версии 1.3 следующие изменения:
1) Увеличить размер списка поверхностей, т.е. чтобы он растягивался, а не был постоянно одного размера. Кстате сделай так чтобы MdlVis, изначально был на весь экран.
2) Сделай возможно редактировать/удолять сразу несколько поверхностей.
Старый 22.11.2005, 10:02
WildCat
General Mapmaker
offline
Опыт: 10,232
Активность:
Точнее этих нумерованных wmo может быть и больше 2х (в общей сумме больше трёх).
Старый 22.11.2005, 14:28
Iron
Листовой
offline
Опыт: 24,427
Активность:
Я тут собрался с мыслями (было не легко) и решил, что кроме всего вышеперечисленного, мне часто не хватает:
1)Модуль маштаба (сделать, я думаю, не сложно, просто модуль который бы делил все координаты (кроме поворотов) на определенное число).
2)Наконец доработать редактор текстур (заменять текстуры можно, а удалять нельзя. Вы скажете:"Так возьми и замени все текстуры на одну и ту же". А я вам отвечу:"А заменить несколько адресов на один и тот же не получается, попробуйте - сами увидите".)
PS: Может еще что придумаю.
Старый 22.11.2005, 14:30
Алексей
Где кошачья мята?!
offline
Опыт: 26,303
Активность:
Как только закончу 1.3, займусь wmo (если не найдётся более важных вещей).
Troll: Всё, что ты перечислил, в 1.3. будет. Сейчас как раз работаю над возможностью редактирования нескольких поверхностей одновременно.
Iron: Это пока подождёт. Возможно, включу в версию 1.4. Сейчас главное (на что и пойдёт основная масса усилий) - нормальный редактор анимаций и отлов глюков.
TONIC: Хорошо. К тому времени, как перевод завершится, уже может выйти MdlVis1.3, и можно будет начинать переводить заново ;).
Старый 22.11.2005, 19:56
WildCat
General Mapmaker
offline
Опыт: 10,232
Активность:
Iron, а ты отредактируй список текстур открыв mdl в блокноте, там то ты точно сможешь сколько угодно раз проставить одну и ту же текстуру. Кстати стереть тоже можно, я сам разбирался: получилось с первого раза. Если надо, могу написать ч/з приват, чтобы не оффтопить.
Старый 22.11.2005, 23:18
Iron
Листовой
offline
Опыт: 24,427
Активность:
WildCat, понимаешь, хот Алексей и сказал, что поправил конвертер mdx->mdl->mdx . Но в нем всеравно полно багов, и при конвертировании едут вершины, анимации, ... .

PS: Как назначить определенную текстуру определенной поверхности ?
Старый 23.11.2005, 00:26

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 15:50.