SkepticalFox 1,445 Posted June 17, 2018 (edited) Здесь будет происходить анализ .fxo файлов .fxo - zip архив, который в себе содержит скомпилированный шейдер(effect - результат компиляции ID3DXEffectCompiler - до 0.9.15), hash(MD5?) и зависимости(depends) Довольно странно, что нигде не встречал разбор этих файлов - придется это сделать мне Самые последние результаты исследования здесь: https://bitbucket.org/SkepticalFox/wot-shader-utils/src Edited February 6, 2019 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
Mixaill 1,740 #433942 Posted June 17, 2018 (edited) https://github.com/Microsoft/FX11 https://github.com/wine-mirror/wine/blob/master/dlls/d3dcompiler_43/blob.c https://github.com/doitsujin/dxvk/blob/master/tests/dxbc/test_dxbc_disasm.cpp https://msdn.microsoft.com/en-us/library/windows/desktop/dd607340(v=vs.85).aspx https://blogs.msdn.microsoft.com/chuckw/2012/10/23/effects-for-direct3d-11-update/ Edited June 17, 2018 by Mixaill 1 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #433944 Posted June 17, 2018 (edited) Вот что можно получить используя D3DXDisassembleEffect к effect из клиента 0.9.10 он игнорирует описания, которые можно встретить в effect файле Just now, Mixaill said: https://github.com/doitsujin/dxvk/blob/master/tests/dxbc/test_dxbc_disasm.cpp он получается DXBC превращает непосредственно в SPIR-V? Или в glsl, а затем компилирует? Edited June 17, 2018 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
Mixaill 1,740 #433945 Posted June 17, 2018 а эта штука? https://msdn.microsoft.com/en-us/library/windows/desktop/dd607326(v=vs.85).aspx Quote Share this post Link to post Short link Share on other sites
Алик1 1 #433946 Posted June 17, 2018 Ну ладно даю добро делай. Хотя я ни чего не понял. 3 Quote Share this post Link to post Short link Share on other sites
Mixaill 1,740 #433947 Posted June 17, 2018 11 минут назад, SkepticalFox сказал: он получается DXBC превращает непосредственно в SPIR-V? Или в glsl, а затем компилирует? ссылку я дал на обвязку к d3dcompiler, который просто дергает майкрософтовский декомпилятор. сам DXVK самостоятельно разбирает DXBC байткод и переводит его в SPIR-V без посредников. Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #433948 Posted June 17, 2018 (edited) Just now, Mixaill said: а эта штука? это ж мне целый DXSDK ставить ) может скомпилирует кто fxd для dx11? хотя там тоже ассемблер будет, скорее всего, а мне интереснее парсер описаний Edited June 17, 2018 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
Mixaill 1,740 #433949 Posted June 17, 2018 (edited) 43 минуты назад, SkepticalFox сказал: это ж мне целый DXSDK ставить DXSDK устарел и не обновляется, теперь всё входит в состав Windows 10 SDK, особенно d3dcompiler_47. dxbc-disasm.zip Но есть нюансы, effect - это не просто выхлоп d3dcompiler, это что-то своё, что может содержать несколько шейдеров. (сигнатура - DXBC) возможно, применяется метод как в space.bin ---- ещё кстати такое есть http://timjones.io/blog/archive/2015/09/02/parsing-direct3d-shader-bytecode --- ещё AMD кое-что выкладывало, в частности, расчёт чексуммы для DXBC https://github.com/GPUOpen-Tools/common-src-ShaderUtils Edited June 17, 2018 by Mixaill 1 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #433954 Posted June 17, 2018 Just now, Mixaill said: это что-то своё ага - wgFX compiler (Aug 9 2017, 11:07:37) и в новых DX9-effect тоже так наверное стоит сравнивать их с теми, что были до разделения на DX11/DX9 Just now, SkepticalFox said: wgFX compiler оно даже гуглится https://www.slideshare.net/IntelSoftware/world-of-tanks-10-enriching-gamers-experience-with-multicore-optimized-physics-and-graphics Quote Share this post Link to post Short link Share on other sites
Pavel3333 1,148 #433955 Posted June 17, 2018 20 минут назад, SkepticalFox сказал: wgFX compiler Кошмар, у них и компилер свой... Quote Share this post Link to post Short link Share on other sites
Mixaill 1,740 #433956 Posted June 17, 2018 6 минут назад, Pavel3333 сказал: Кошмар, у них и компилер свой… Это только так называется, на конечной стадии сами шейдеры по итогу перегоняет d3dcompiler. 1 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #433957 Posted June 17, 2018 Just now, Mixaill said: Это только так называется, на конечной стадии сами шейдеры по итогу перегоняет d3dcompiler. надо pyd писать) Quote Share this post Link to post Short link Share on other sites
Mixaill 1,740 #434105 Posted June 18, 2018 В 17.06.2018 в 21:28, SkepticalFox сказал: надо pyd писать) Так это, а зачем именно pyd? Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #434110 Posted June 18, 2018 (edited) 13 minutes ago, Mixaill said: Так это, а зачем именно pyd? лень запускать читэнжин для инжекта хотя pyd писать тоже лень Edited June 18, 2018 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
Andrakann 35 #434134 Posted June 19, 2018 5 часов назад, SkepticalFox сказал: лень запускать читэнжин для инжекта хотя pyd писать тоже лень Насчет инструментария, Coffee мне скинул занятную штуку, что-то типа артмани/читэнджина, но артмани точно превосходит, при этом денег не просит: http://memoryhacking.com/download.php 1 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #437030 Posted July 26, 2018 https://github.com/baldurk/renderdoc вот еще утилита, на скринах вроде дизассемблер есть Quote Share this post Link to post Short link Share on other sites
Pavel3333 1,148 #437033 Posted July 26, 2018 @Andrakann читенджин имхо функциональнее. @SkepticalFox одинхрен макс понимает только сорцы шейдеров. Уверен, один PBS_tank.fx привязан к куче зависимостей. Дизасм помогает только когда кода действительно мало. Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #437034 Posted July 26, 2018 (edited) 5 minutes ago, Pavel3333 said: одинхрен макс понимает только сорцы шейдеров а ты глянь на скрины - там вроде как не только асм надо бы проверить Edited July 26, 2018 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
Pavel3333 1,148 #437035 Posted July 26, 2018 (edited) @SkepticalFox глянул. Заголовки есть. В BW2.1.0 валяются исходники шейдеров, может быть, есть какие-то схожести, или используются такие же зависимости. @SkepticalFox кстати, на счет исходников. можно попробовать дизасмить группу lightonly шейдеров и глянуть из сорцев BW 2.1.0, где, что, откуда берется. Edited July 26, 2018 by Pavel3333 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #448754 Posted January 21, 2019 shaders.json сейчас появилась идея собрать всю инфу по шейдерам в одном файле(пример выше) Также хочется, чтобы был внутриигровой просмотр шейдеров и изменение их параметров применимо к какой-нибудь модели + текстурам можно его реализовать основываясь на этом - https://kr.cm/f/t/29351/ 1 Quote Share this post Link to post Short link Share on other sites