SkepticalFox Posted June 17, 2018 Share 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 Link to comment Short link Share on other sites More sharing options...
Mixaill Posted June 17, 2018 Share 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 Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted June 17, 2018 Author Share 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 Link to comment Short link Share on other sites More sharing options...
Mixaill Posted June 17, 2018 Share Posted June 17, 2018 а эта штука? https://msdn.microsoft.com/en-us/library/windows/desktop/dd607326(v=vs.85).aspx @ Quote Link to comment Short link Share on other sites More sharing options...
Алик1 Posted June 17, 2018 Share Posted June 17, 2018 Ну ладно даю добро делай. Хотя я ни чего не понял. 3 @ Quote Link to comment Short link Share on other sites More sharing options...
Mixaill Posted June 17, 2018 Share Posted June 17, 2018 11 минут назад, SkepticalFox сказал: он получается DXBC превращает непосредственно в SPIR-V? Или в glsl, а затем компилирует? ссылку я дал на обвязку к d3dcompiler, который просто дергает майкрософтовский декомпилятор. сам DXVK самостоятельно разбирает DXBC байткод и переводит его в SPIR-V без посредников. @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted June 17, 2018 Author Share Posted June 17, 2018 (edited) Just now, Mixaill said: а эта штука? это ж мне целый DXSDK ставить ) может скомпилирует кто fxd для dx11? хотя там тоже ассемблер будет, скорее всего, а мне интереснее парсер описаний Edited June 17, 2018 by SkepticalFox @ Quote Link to comment Short link Share on other sites More sharing options...
Mixaill Posted June 17, 2018 Share 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 Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted June 17, 2018 Author Share 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 Link to comment Short link Share on other sites More sharing options...
Pavel3333 Posted June 17, 2018 Share Posted June 17, 2018 20 минут назад, SkepticalFox сказал: wgFX compiler Кошмар, у них и компилер свой... @ Quote Link to comment Short link Share on other sites More sharing options...
Mixaill Posted June 17, 2018 Share Posted June 17, 2018 6 минут назад, Pavel3333 сказал: Кошмар, у них и компилер свой… Это только так называется, на конечной стадии сами шейдеры по итогу перегоняет d3dcompiler. 1 @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted June 17, 2018 Author Share Posted June 17, 2018 Just now, Mixaill said: Это только так называется, на конечной стадии сами шейдеры по итогу перегоняет d3dcompiler. надо pyd писать) @ Quote Link to comment Short link Share on other sites More sharing options...
Mixaill Posted June 18, 2018 Share Posted June 18, 2018 В 17.06.2018 в 21:28, SkepticalFox сказал: надо pyd писать) Так это, а зачем именно pyd? @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted June 18, 2018 Author Share Posted June 18, 2018 (edited) 13 minutes ago, Mixaill said: Так это, а зачем именно pyd? лень запускать читэнжин для инжекта хотя pyd писать тоже лень Edited June 18, 2018 by SkepticalFox @ Quote Link to comment Short link Share on other sites More sharing options...
Andrakann Posted June 19, 2018 Share Posted June 19, 2018 5 часов назад, SkepticalFox сказал: лень запускать читэнжин для инжекта хотя pyd писать тоже лень Насчет инструментария, Coffee мне скинул занятную штуку, что-то типа артмани/читэнджина, но артмани точно превосходит, при этом денег не просит: http://memoryhacking.com/download.php 1 @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted July 26, 2018 Author Share Posted July 26, 2018 https://github.com/baldurk/renderdoc вот еще утилита, на скринах вроде дизассемблер есть @ Quote Link to comment Short link Share on other sites More sharing options...
Pavel3333 Posted July 26, 2018 Share Posted July 26, 2018 @Andrakann читенджин имхо функциональнее. @SkepticalFox одинхрен макс понимает только сорцы шейдеров. Уверен, один PBS_tank.fx привязан к куче зависимостей. Дизасм помогает только когда кода действительно мало. @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted July 26, 2018 Author Share Posted July 26, 2018 (edited) 5 minutes ago, Pavel3333 said: одинхрен макс понимает только сорцы шейдеров а ты глянь на скрины - там вроде как не только асм надо бы проверить Edited July 26, 2018 by SkepticalFox @ Quote Link to comment Short link Share on other sites More sharing options...
Pavel3333 Posted July 26, 2018 Share Posted July 26, 2018 (edited) @SkepticalFox глянул. Заголовки есть. В BW2.1.0 валяются исходники шейдеров, может быть, есть какие-то схожести, или используются такие же зависимости. @SkepticalFox кстати, на счет исходников. можно попробовать дизасмить группу lightonly шейдеров и глянуть из сорцев BW 2.1.0, где, что, откуда берется. Edited July 26, 2018 by Pavel3333 @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted January 21, 2019 Author Share Posted January 21, 2019 shaders.json сейчас появилась идея собрать всю инфу по шейдерам в одном файле(пример выше) Также хочется, чтобы был внутриигровой просмотр шейдеров и изменение их параметров применимо к какой-нибудь модели + текстурам можно его реализовать основываясь на этом - https://kr.cm/f/t/29351/ 1 @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.