ResourceManager Resources.cpp

Материал из Моддинг трилогии S.T.A.L.K.E.R. - modFAQ.RU | +TES/Fallout
Перейти к навигации Перейти к поиску

1 вариант

Обнаружение

Lagos[1], Dimonich[2], Sany@Prizrak[3], TYOPA[4], kiperenok[5]

Решение

SkyLoader[6], BozKurt[7]

Expression    : fs
Function    : CResourceManager::_CreateVS
File        : E:\stalker\patch_1_0004\xr_3da\ResourceManager_Resources.cpp
Line        : 185
Description    : shader file doesnt exist
Arguments    : d:\stalker\gamedata\shaders\r2\deffer_impl_flat.vs

Ошибка

Не найден файл шейдера (в данном случае: deffer_impl_flat.vs), либо он не может быть прочитан движком игры.
Возможно шейдер был неправильно сгенерирован, при компиляции уровня на качестве, более высоком чем Draft.
Для ЧН\ЗП это может ещё быть из-за отсутствия thm'ок для текстур террейна уровня.

Решение

Проверьте наличие файла, если его нет - добавьте, а если не читается - замените шейдер или сгенерируйте заново.

2 вариант

Обнаружение

Strchi[8], 7sasha777[9], Sany@Prizrak[10], Earth2Space[11], DoK74rus[12], mvv999[13]

Решение

KD87[14]

Expression    : An undetermined error occurred
Function    : CResourceManager::_CreateVS
File        : E:\stalker\sources\trunk\xr_3da\ResourceManager_Resources.cpp
Line        : 232
Description    : _hr

Ошибка

Проблема с одним из шейдеров в формате *.vs

Решение

Чтобы определить какой именно из них вызывает ошибку, попробуйте по очереди удалять *.vs шейдеры, и проверять запускается ли игра.

3 вариант

Обнаружение

Samaritan[15], 1_A[16], D1key[17]

Решение

Ork[18], karavan[19], Vano_Santuri[20], Ekagors[21]

Expression : assertion failed
Function : CResourceManager::_CreateTexture
File : E:\stalker\patch_1_0004\xr_3da\ResourceManager_Resources.cpp
Line : 479
Description : _Name && _Name[0]

Ошибка

Вылет происходит при загрузке уровня, из-за того, что не найдена какая-то необходимая уровню текстура или/и её *.thm-файл по пути: gamedata\textures\detail

ЧН\ЗП: причиной вылета могут служить *.thm-файлы скомпилированные в X-Ray SDK 0.4.

Решение

Проверить наличие и правильность имени текстур необходимых уровню, по указанному пути.

Если отсутствуют только *.thm-файлы, создать их при помощи инструмента Image Editor из состава Actor Editor X-Ray SDK.

Для этого достаточно конвертировать оригинальные *.dds-текстуры в формат *.tga (например, с помощью Dds2tga), после чего импортировать через Image Editor. Их *.thm-файлы создадутся при этом автоматически.

ЧН\ЗП: проверьте отсутствие в папке с текстурами *.thm-файлов формата ТЧ.

4 вариант

Обнаружение

Gaskonec11[22], imack[23]

Решение

Deathman[24]

Expression    : R
Function      : CResourceManager::_CreatePS
File          : E:\stalker\sources\trunk\xr_3da\ResourceManager_Resources.cpp
Line          : 273
Description   : d:\s.t.a.l.k.e.r. Òåíü ×åðíîáûëÿ\gamedata\shaders\r2\deffer_impl_lmh_flat.ps

Ошибка

Происходит на типе рендера "полное динамическое освещение".

Неправильно подключены детальные текстуры к террейну.

Подробнее

Поверхности в X-Ray Engine делятся на 2 типа:

  • Отрисовываются в GBuffer
  • Дорисовываются поверх кадра

В момент создания шейдерного прохода (пары из вершинного и фрагментного шейдеров), поверхности, которые рисуются в GBuffer делятся на классы, а от классов на подгруппы, и из этого набора, внутри функции uber_deffer, собирается название и набор семплеров, идущих в шейдерную пару.

Работает это так:

1) Впереди ставится приставка deffer_

2) Далее, один из идентификатор класса поверхности:

  • base — это шейдеры типа поверхности static geometry, но другие поверхности используют эти шейдеры постоянно, так что пиксельные шейдеры класса base не привязаны к типу поверхностей, а вот вершинные шейдеры привязаны, и это уже реальные static geometry.
  • model — шейдеры для dynamic model, т.е. модели со своим скиннингом. Для справки, динамические модели используют собственные только вершинные шейдеры, а пиксельные используются от класса шейдеров base.
  • impl — это implicit lighted тип геометрии, т.е. террейны.
  • tree — это multiple usage геометрия, причем это не только деревья, но и также другие модели, которые могут отгружаться и заменяться на билборды с достижением определенной дистанции. Пиксельные шейдеры используют из набора base, это нужно помнить при работе с ними.
  • detail — это detail object, т.е. трава и другие детальные объекты вроде листьев и т.д.
  • particle — особый тип частиц, который в игре используется по минимуму.

3) Затем подкласс, который заключается в том использует ли поверхность bump+bump# текстуры или у нее есть только альбедо, за это отвечают приставки flat_ и bump_

4) И в конце, набор опций применяемых к материалу:

  • aref — использование Alpha test операции к поверхности. Отвечает будут ли отрезаться от альбедо пиксели со слабой альфой или нет.
  • d — будет ли использоваться для поверхности детальная текстура.
  • hq — будет ли эта поверхность высокого качества или низкого.
  • lmh — используется ли LightMap освещение для поверхности.

Для детальных и multiple usage объектов также может быть:

  • _s или _w приставки — определяют будет ли использоваться анимация волнения (ветра) или нет.

В ЧН также появились опции:

  • _steep — определяет нужно ли использовать parallax occlusion mapping (в релизе осталось, как steep parallax)
  • _db — определяет есть ли у детальной текстуры собственная пара из bump+bump#

Решение

Временное решение: Попробуйте временно изменить тип рендера на "статическое освещение" и пройти проблемное место.

Полное решение:

Проанализируйте название шейдера, который требует uber_deffer, чтобы понять, где была допущена ошибка.

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

Т.к. такое использование для террейна не предполагалось, и этого шейдера нет, то при попытке найти шейдер с таким именем — происходит вылет.

После того, как исправили ошибку и правильно подключили детальные текстуры к террейну — пересобирите уровень.

В качестве теста, можете установить (см. Свойства сцены в Level Editor): Quality = High и Pixel per meter = 0.01

Источники

  1. ↑ "Lagos" amk-team.ru 30.04.2011
  2. ↑ "Dimonich" old.ap-pro.ru 29.07.2011 Архивировано: archive.ph 30.09.2026
  3. ↑ "Sany@Prizrak" amk-team.ru 14.02.2013
  4. ↑ "TYOPA" old.ap-pro.ru 19.06.2015 Архивировано: web.archive.org 30.09.2026 ; archive.ph 30.09.2026
  5. ↑ "kiperenok" gameru.net
  6. ↑ "SkyLoader" old.ap-pro.ru 29.07.2011 Архивировано: web.archive.org 30.09.2026 ; archive.ph 30.09.2026
  7. ↑ [ "BozKurt" old.ap-pro.ru] 27.07.2013 Архивировано: web.archive.org 17.07.2026 ; archive.ph 30.09.2026
  8. ↑ "Strchi" stalker-portal.ru 09.06.2011 Архивировано: web.archive.org 30.09.2026 ; archive.ph 30.09.2026
  9. ↑ "7sasha777" old.ap-pro.ru 08.02.2013 Архивировано: web.archive.org 30.09.2026 ; archive.ph 30.09.2026
  10. ↑ "Sany@Prizrak" amk-team.ru 14.02.2013
  11. ↑ "Earth2Space" igromania.ru 03.07.2013 Архивировано: archive.ph 30.09.2026
  12. ↑ "DoK74rus" amk-team.ru 19.03.2014
  13. ↑ "mvv999" old.ap-pro.ru 01.04.2014 Архивировано: web.archive.org 30.09.2026 ; archive.ph 30.09.2026
  14. ↑ "KD87" amk-team.ru 19.03.2014
  15. ↑ "Samaritan" gameru.net
  16. ↑ "1_A" amk-team.ru 16.06.2011
  17. ↑ "D1key" old.ap-pro.ru 24.06.2013 Архивировано: archive.ph 30.09.2026
  18. ↑ "Ork" xiani.xray-engine.org 02.08.2010 Архивировано: web.archive.org 30.09.2026 ; archive.ph 30.09.2026
  19. ↑ "karavan" amk-team.ru 08.03.2011
  20. ↑ "Vano_Santuri" amk-team.ru 22.08.2011
  21. ↑ "Ekagors" amk-team.ru 11.02.2020 Архивировано: web.archive.org 01.08.2025
  22. ↑ "Gaskonec11" old.ap-pro.ru 29.10.2012 Архивировано: web.archive.org 30.09.2026 ; archive.ph 30.09.2026
  23. ↑ "imack" old.ap-pro.ru 08.02.2019 Архивировано: web.archive.org 30.09.2026 ; archive.ph 30.09.2026
  24. ↑ "Deathman" ap-pro.ru 07.12.2023 Архивировано: web.archive.org 30.09.2026 ; archive.ph 30.09.2026