Jump to content
Korean Random

Шейдеры 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
Link to comment
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
Link to comment
Short link
Share on other sites

11 минут назад, SkepticalFox сказал:

 

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

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

 

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

Link to comment
Short link
Share on other sites

Just now, Mixaill said:

а эта штука?

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

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

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

Edited by SkepticalFox
Link to comment
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
Link to comment
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 

Link to comment
Short link
Share on other sites

6 минут назад, Pavel3333 сказал:

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

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

  • Upvote 1
Link to comment
Short link
Share on other sites

5 часов назад, SkepticalFox сказал:

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

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

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

MHS.thumb.png.c34d21893b8060815150f8397c9fb023.png

  • Upvote 1
Link to comment
Short link
Share on other sites

  • 1 month later...

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

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

Link to comment
Short link
Share on other sites

5 minutes ago, Pavel3333 said:

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

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

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

Edited by SkepticalFox
Link to comment
Short link
Share on other sites

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

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

Edited by Pavel3333
Link to comment
Short link
Share on other sites

shaders.json

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

 

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

 

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

 

  • Upvote 1
Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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...