Jump to content
Korean Random
SkepticalFox

Шейдеры BigWorld

Recommended Posts

Здесь будет происходить анализ .fxo файлов

.fxo - zip архив, который в себе содержит скомпилированный шейдер(effect - результат компиляции ID3DXEffectCompiler - до 0.9.15), hash(MD5?) и зависимости(depends)

Довольно странно, что нигде не встречал разбор этих файлов - придется это сделать мне

 

Самые последние результаты исследования здесь:

https://bitbucket.org/SkepticalFox/wot-shader-utils/src

Edited by SkepticalFox

Share this post


Link to post

Short link
Share on other sites

image.thumb.png.7e03bb40850b512219aba64a7ecda41d.png

Вот что можно получить используя D3DXDisassembleEffect к effect из клиента 0.9.10

он игнорирует описания, которые можно встретить в effect файле

Just now, Mixaill said:

он получается DXBC превращает непосредственно в SPIR-V? Или в glsl, а затем компилирует?

Edited by SkepticalFox

Share this post


Link to post

Short link
Share on other sites
11 минут назад, SkepticalFox сказал:

 

он получается DXBC превращает непосредственно в SPIR-V? Или в glsl, а затем компилирует?

ссылку я дал на обвязку к d3dcompiler, который просто дергает майкрософтовский декомпилятор.

 

сам DXVK самостоятельно разбирает DXBC байткод и переводит его в SPIR-V без посредников.

Share this post


Link to post

Short link
Share on other sites
Just now, Mixaill said:

а эта штука?

это ж мне целый DXSDK ставить )

может скомпилирует кто fxd для dx11?

хотя там тоже ассемблер будет, скорее всего, а мне интереснее парсер описаний

Edited by SkepticalFox

Share this post


Link to post

Short link
Share on other sites
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 by Mixaill
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
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 

Share this post


Link to post

Short link
Share on other sites
20 минут назад, SkepticalFox сказал:

wgFX compiler

Кошмар, у них и компилер свой...

Share this post


Link to post

Short link
Share on other sites
6 минут назад, Pavel3333 сказал:

Кошмар, у них и компилер свой…

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

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
Just now, Mixaill said:

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

надо pyd писать)

Share this post


Link to post

Short link
Share on other sites
В ‎17‎.‎06‎.‎2018 в 21:28, SkepticalFox сказал:

надо pyd писать)

Так это, а зачем именно pyd?

Share this post


Link to post

Short link
Share on other sites
13 minutes ago, Mixaill said:

Так это, а зачем именно pyd?

лень запускать читэнжин для инжекта

хотя pyd писать тоже лень

Edited by SkepticalFox

Share this post


Link to post

Short link
Share on other sites
5 часов назад, SkepticalFox сказал:

лень запускать читэнжин для инжекта

хотя pyd писать тоже лень

Насчет инструментария, Coffee мне скинул занятную штуку, что-то типа артмани/читэнджина, но артмани точно превосходит, при этом денег не просит: http://memoryhacking.com/download.php

MHS.thumb.png.c34d21893b8060815150f8397c9fb023.png

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

@Andrakann читенджин имхо функциональнее.

@SkepticalFox одинхрен макс понимает только сорцы шейдеров. Уверен, один PBS_tank.fx привязан к куче зависимостей. Дизасм помогает только когда кода действительно мало.

Share this post


Link to post

Short link
Share on other sites
5 minutes ago, Pavel3333 said:

одинхрен макс понимает только сорцы шейдеров

а ты глянь на скрины - там вроде как не только асм

надо бы проверить

Edited by SkepticalFox

Share this post


Link to post

Short link
Share on other sites

@SkepticalFox глянул. Заголовки есть. В BW2.1.0 валяются исходники шейдеров, может быть, есть какие-то схожести, или используются такие же зависимости.

@SkepticalFox кстати, на счет исходников. можно попробовать дизасмить группу lightonly шейдеров и глянуть из сорцев BW 2.1.0, где, что, откуда берется.

Edited by Pavel3333

Share this post


Link to post

Short link
Share on other sites

shaders.json

сейчас появилась идея собрать всю инфу по шейдерам в одном файле(пример выше)

 

Также хочется, чтобы был внутриигровой просмотр шейдеров и изменение их параметров применимо к какой-нибудь модели + текстурам

 

можно его реализовать основываясь на этом - https://kr.cm/f/t/29351/

 

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...