1. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.

Soft Дизассемблирование и декомпиляция программ(игр)

Тема в разделе "Hard & Soft", создана пользователем Mysyk, 30 ноя 2012.

  1. MisterGrim Very old

    MisterGrim

    Супер-модератор

    Регистрация:
    29 ноя 2007
    Сообщения:
    22.750
    Очень странно тогда вести пространные рассуждения в теме, ему посвящённой.
     
  2. INHELLER

    INHELLER

    Регистрация:
    19 май 2009
    Сообщения:
    7.335
    daemolisher
    А *** его знает, не разбирался в запекании освещения. Если есть исходники, то всегда понятно нахрена оно там. А если ещё и знаешь что это вообще за хрень, тогда вообще никаких проблем не возникает. В исходниках-то видно что прога с этими данными делает. Ну типа умножает степень освещения этого вертекса с цветом текстуры по методу Гуро (например). И так далее. Значит нам нужно, чтобы наш рендерер запекал освещение именно таким образом.
    Ну и так далее.

    Алгоритм (как понимаю всяких тулов) может, данные нет.
     
  3. daemolisher

    daemolisher

    Регистрация:
    2 дек 2009
    Сообщения:
    1.694
    до, конечно

    Код:
    float Q_rsqrt( float number )
    {
            long i;
            float x2, y;
            const float threehalfs = 1.5F;
     
            x2 = number * 0.5F;
            y  = number;
            i  = * ( long * ) &y;                       // evil floating point bit level hacking
            i  = 0x5f3759df - ( i >> 1 );               // what the fuck?
            y  = * ( float * ) &i;
            y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration
    //      y  = y * ( threehalfs - ( x2 * y * y ) );   // 2nd iteration, this can be removed
     
            return y;
    }
    и ладно если 10 строк кода чёрной магии

    а если 100 тысяч?

    с ума сойдёшь разбираться :crazy:

    это в теории

    на практике:

    749ccd3905b67a106e5665d2d9b039c9.jpg
     
  4. INHELLER

    INHELLER

    Регистрация:
    19 май 2009
    Сообщения:
    7.335
    daemolisher
    Что-то мне подсказывает, что Q_rsqrt вычисляет квадратный корень числа. Да. Что-то.

    И все эти 100 тысяч читают требуемый файл? Или же просчитывают какую-то отдельную графическую фиговину? И прям все 100 тысяч строк кода нам нужны, или нужно найти какой-либо определённый участок? Тем более, когда знаем что нам нужно и что можно ожидать?
     
  5. MisterGrim Very old

    MisterGrim

    Супер-модератор

    Регистрация:
    29 ноя 2007
    Сообщения:
    22.750
    Быстрый обратный квадратный корень. Что и подтверждает гугление по константе 0x5f3759df.
    Ну и ходовые алгоритмы знать полезно всё-таки.
     
    INHELLER нравится это.
  6. INHELLER

    INHELLER

    Регистрация:
    19 май 2009
    Сообщения:
    7.335
    MisterGrim > Лол.) Ну, почти угадал.

    /me шёпотом.
    У меня туговато с памятью. Ну и очень мало интересовался именно игровой графикой. Но знал бы что это "reciprocal of a square root", очень быстро бы понял что там.

    Ну а если брать именно просто исходники, то тут становится гораздо легче понять что оно делает (они-то "рассортированы" по файлам, не от балды).
     
  7. daemolisher

    daemolisher

    Регистрация:
    2 дек 2009
    Сообщения:
    1.694
    :facepalm: не расстраивайте меня так

    если бы Вы дизассемблировали Q3A в 1999 году, то гугление этой константы вряд ли бы помогло
     
  8. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.362
    daemolisher, к сожалению, этот базар имеет очень малое отношение к дизассемблированию. Что-то вроде быдлокодерской пенисометрии.
     
    daemolisher нравится это.
  9. INHELLER

    INHELLER

    Регистрация:
    19 май 2009
    Сообщения:
    7.335
    daemolisher
    Только у нас, к счастью, 2013-ый год. И Гугл может помочь легко найти информацию. Как и если бы ты, или MisterGrim, ну или я, разбирались бы в игровой графике, то просто знали бы что это такое без всяких Гуглов.
    Как и... В не изолированном виде, оно куда понятнее, чем просто в виде куска кода.
     
  10. A.P.$lasH

    A.P.$lasH

    Legacy

    Регистрация:
    27 фев 2010
    Сообщения:
    4.679
    Появилась какое-то время назад.

    http://rgho.st/7Vc2DHJ2J
     
  11. tuliss

    tuliss

    Регистрация:
    24 фев 2014
    Сообщения:
    5.957
    Буду некропостером !

    Код надо учится не только писать, но и читать ! При этом читать больше, чем писать !
     
    Al Arz нравится это.
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление