Конференция "Прочее" » Программа для создания врапперов
 
  • Правильный$Вася (18.09.08 14:38) [20]

    > Интересное кино, куда-то пропал exit

    т.е. теперь враппит в вечном цикле, пока не уложит систему в позу [3]?
  • pasha_golub © (18.09.08 14:44) [21]
    Еще раз. ШО это такое? я не понял. извините
  • Palladin © (18.09.08 14:46) [22]
    создатель fake библиотек, транслирующих вызовы в не fake библиотеки :)
  • pasha_golub © (18.09.08 14:47) [23]
    Ух ты. А зачем?
  • Renegat © (18.09.08 14:50) [24]
    Ну вот хотя бы для перехвата функций. Вызывает кто-то функцию, а управление получаем мы!
  • @!!ex © (18.09.08 15:36) [25]
    Вообще такие dll позволяют переписывать часть приложения не имея исходного кода.
    Вообще это затеял четыре дня назад, чтобы улучшить качество графики(уже добавил антиальязинг) и прикрутить шейдеры(вот тут проблема, но не в том, чтобы прикрутить шейдеры, а в том, чтобы они функционально соответствовали стандартному конвееру) к движку игры Half-Life 1.
  • @!!ex © (18.09.08 15:50) [26]
    > [20] Правильный$Вася   (18.09.08 14:38)

    Нет. Там вот такой код был:
    program HookMaker;

    {$APPTYPE CONSOLE}

    uses
     SysUtils,
     Maker2 in 'Maker2.pas';

    begin
     { TODO -oUser -cConsole Main : Insert code here }
     Writeln('Create by @!!ex. Samara 2008');
     Writeln('Thanx: Palladin, Renegat, www.delphimaster.ru');
     if ParamCount<>3 then begin
       Writeln('HookMaker.exe <FuncList> <HookDllName> <OriginalDllName>');
       Writeln('Example: HookMaker.exe funcs.txt OpenGL32.dll Original_OpenGL32.dll');
       exit;//Этого екзита не было.
     end;

     CreateHook(ParamStr(1),ParamStr(2),ParamStr(3));
     Writeln('Press enter for exit...');
     Readln;
    end.


    Если exit убрать, то без параметров попытается вызвать CreateHook и естественно упадет.
  • pasha_golub © (18.09.08 17:03) [27]

    > @!!ex ©   (18.09.08 15:36) [25]
    >
    > Вообще такие dll позволяют переписывать часть приложения
    > не имея исходного кода.

    Можно пример? А то я нужности ну не понимаю нифига.
  • @!!ex © (18.09.08 18:13) [28]
    > [27] pasha_golub ©   (18.09.08 17:03)
    > Можно пример? А то я нужности ну не понимаю нифига.


    Я уже привел.
    Можно посмотреть как меняется графика в том же GTA:SA при подключении подставной либы dx9 с реализованным блумом.
    А вообще то что вам это не нужно - ну так я за вас рад, не используйте. :)
  • @!!ex © (18.09.08 18:32) [29]
    Кстати ссылка.
    Особенно различие видно на нижних скринах:
    http://boris-vorontsov.narod.ru/ss_gtasa_ru.htm

    Правда там длл не только блум добавляет, но еще бамп, отражения и тени.
  • @!!ex © (18.09.08 18:38) [30]
  • {RASkov} © (18.09.08 20:16) [31]
    > [30] @!!ex ©   (18.09.08 18:38)

    А как сделал скрин на одном и том же практически месте? :) ...с разными dll)
  • @!!ex © (18.09.08 20:52) [32]
    > [31] {RASkov} ©   (18.09.08 20:16)

    ну так что мешает в длл по условию(например нажатие клавиши) либо просто перенаправлять вызов, либо делать какой-то вызов.
    Например, у меня в коде сейчас есть вот такая штука:
    procedure glEnd(); stdcall;
    begin
     OrigGL.glEnd();
     if (NDC<>0) then
       if (GetAsyncKeyState(VK_RETURN) and $8000) <> 0 then
         unitOldOpenGL32.wglSwapBuffers(NDC);
     On_glEndAfter();
    end;



    Смысл простой. если нажата клавиша Ентер, то экран меняется после рисования каждого элемента сцены, а не ждет полного завершения отрисовки. В итоге можно понаблюдать как постепенно из кусочков строится сцена. :) Очень позновательно. :))
    У Бориса просто отлавливаются нажатия определенных в ini файле конопок и включается или выключается некий эффект по нажатию. ничего сложного.
  • @!!ex © (18.09.08 22:38) [33]
    Вот сделал специально примерчик. :)
    Режим переключается нажатием одной кнопки, а 4 секунды разницы, это из-за того, что надо переключить режим, нажать принтскрин, перейти к паинту, нажать контрол+в, перейти обратно в игру, переключить режим, сделать принсткрин еще раз.

    http://img68.imageshack.us/my.php?image=csnormalef2.jpg
    http://img220.imageshack.us/my.php?image=csgrayqv0.jpg

    Сейчас пробую с лайтмапами поэкспериментировать. Если получится - удастася уйти от этих жутких ступенек на границе...
    Шейдер обещает быть не порстым...
  • {RASkov} © (18.09.08 22:47) [34]
    > [33] @!!ex ©   (18.09.08 22:38)

    Одна "Ч/Б" другая в цвете. В этом вся разница? :)
  • VirEx © (18.09.08 22:49) [35]
    интересная штука..
  • @!!ex © (18.09.08 22:57) [36]
    > [34] {RASkov} ©   (18.09.08 22:47)

    Ну не буду же я тратить два часа на то, чтобы написать сертезный фильтр. :))
    чб тоже все прекрасно демострирует, а кода в шейдере - 2 лишних строчки.
  • pasha_golub © (19.09.08 11:34) [37]

    > А вообще то что вам это не нужно - ну так я за вас рад,
    > не используйте. :)

    Ну шо вы сразу все в штыки? Может действительно нужно, а я не доганяю.
  • @!!ex © (19.09.08 16:15) [38]
    > [37] pasha_golub ©   (19.09.08 11:34)

    Да не в штыки. Просто если не нужно, ну и отлично. Меньше проблем. :))

    Вот чего добился. Эффекты, правда еще сырые, и сделать их достаточно сложно, потому что в глубь движка никто не пускает... :(

    Взрыв.
    Было:
    img81.imageshack.us/my.php?image=csexplosionwu3.jpg
    Стало:
    img228.imageshack.us/my.php?image=csexplosionhazead3.jpg

    Окно.
    Было:
    img228.imageshack.us/my.php?image=cswindownormaltj8.jpg
    Стало:
    img81.imageshack.us/my.php?image=cswindowbloomzr7.jpg

    P.S.
    Наро, может кто знает как сделать.
    проблема первая:
     Haze искажает все на кадре, а реально он не может исказить что находится ближе источника искажения... как можно от этого избавится??
    проблема вторая:
     Как сделать нормальный Bloom??? То что у меня получается мне вообще не нравится... и инфы адекватной найти не могу...
  • @!!ex © (19.09.08 16:16) [39]
    P.P.S.
    Еще водичка классная получилось, но в статике она не смотрится вообще, а видео ролик я буду сто лет заливать...
 
Конференция "Прочее" » Программа для создания врапперов
Есть новые Нет новых   [134442   +13][b:0][p:0.001]