Перейти в начало страницы

Здравствуйте, гость ( Авторизация | Регистрация )

Gameru.net останавливает работу в связи с вторжением армии РФ в Украину. Следите за дальнейшими анонсами.
Support Gameru!

> Помощь по разделу

Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов

> Графика, рендер, шейдеры
=Diablo=
сообщение 17.08.2010, 10:38
Сообщение #3781


Игроман
**********

Репутация:   430  
Группа: Участник
Сообщений: 892
Регистрация: 14.08.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа




Работы участников

Шейдеры от Diablo
Шейдеры из билда 2232 под финалку.
До

После


Скачать
Наработки cjayho
ECB Shaderpack
Официальный репозиторий

Описание
ECB-Shaderpack
Улучшенный набор шейдеров для игры S.T.A.L.K.E.R.: Shadow of Chernobyl

_____________________________________________________________________________
Основные возможности:
_______________________
1) Непрозрачный туман на R2, возможность переключения
из файла конфигурации прозрачный/непрозрачный туман
2) Исправлена "синюшность" изображения на R2
3) Эффект компенсационного светового следа на R2
4) Статический и динамический Depth of field на R2,
Размытие объектов при прицеливании (требует дополнительного скрипта)
5) Билдовский блум с краснинкой на R2, возможность
переключения тонмаппинга в режим, который был в билде 2218
6) Screen space ambient occlusion на R2
7) Правильная отрисовка сияния ламп на R1
8) Правильная отрисовка солнечного градиента на обоих рендерах
9) Полноценная отрисовка occlusion-lightmaps на R2
10) Микроструктурный бамп
11) Правильная отрисовка бликов на блестящих поверхностях
12) Автосатурация - попиксельное уменьшение насышенности слабо
освещенных объектов
13) Мягкие тени на R2
14) Экспериментальная возможность - правильные тени от деревьев на R2
15) Улучшенный Motion blur, более похожий на билдовский
16) Исправлена "кислотность" (перенасыщенность) солнечного освещения объектов на R2
17) Отражабельная вода на R2
18) GodRays на R2 + эффект пылинок в лучах.
19) Мягкие партиклы на R2
20) Мягкая вода на R2

Плюс множество регулировок и исправлений мелких недостатков обоих рендеров
Условия использования
_______________________
Данный продукт предоставляется под соглашением Creative Commons CC-BY 3.0,
Подробнее описано по адресу http://creativecommons.org/licenses/by/3.0/deed.ru
Составитель данного набора шейдеров - cjayho
Свежие ревизии находятся по адресу http://code.google.com/p/ecb-shaderpack/downloads/list
Установка
___________
Данный продукт тестировался под версиями игры 1.0004 и 1.0006
Установка сводится к копированию файлов в папку gamedata мода,
изначальный набор файлов предназначается для чистой игры. В случае
установки погодных модов необходимо правильно совместить файл
config/weathers/flares.ltx

Для более полной настройки шейдеров R2 под свой мод можно править файл
shaders/r2/config.h.
Для корректной работы теней нужно установить следующие переменные
в игровой консоли:

r2_sun_near_border 1
r2_sun_near 20


Благодарности
_______________

Sergy172 за идеи и тестирование экспериментальных веток.
-=Diablo=- за изначально портированные шейдеры из 2232
macron за отражабельную воду и наборы шейдеров из билдов 2217 и 2588
Билдоман за набор шейдеров из билда 2571
BAC9-FLCL, KamikaZZe за дельные замечания и критику
Shadows за неоценимую помощь в разработке и тестирование экспериментальных версий
Meltac <metzinger@gmx.net> (Его мод "Dynamic shaders" здесь: http://www.moddb.com/mods/dynamic-shaders)
за алгоритм Depth of Field. Код DoF используется с его разрешения.
Sky4CE за алгоритм SSAO
K.D. За алгоритмы мягкой воды, мягких партиклов, GodRays
Скриншоты
Скриншоты (Shadows Addon 0.6 Edition)

Скачать все наработки | Зеркало
Наработки ECB Team распространяются под условиями Creative Commons CC-BY.
Правки рендера от K.D.
Подходит как к чистой игре, так и к любым модам.
Изменения
- саншафты (команда r2_sun_shafts off/low/medium/high)
- мягкая вода (команда r2_soft_water on/off)
- мягкие партиклы (команда r2_soft_particles on/off)
- регулировка дальности отрисовки травы через консоль (r__detail_radius [49, 501])
- расширенная регулировка плотности травы (r__detail_density [0.02, 0.6])
- расширенная регулировка четкости текстур (r1_tf_mipbias/r2_tf_mipbias [-3.0, 3.0], только R1/R2)
- расширенная регулировка расстояния переключения на лоды (r__geometry_lod [0.1, 3.0])
- восстановлены тени от травы (r2_sun_details, R2)
- восстановлены блудмарки (r2_bloodmarks, R1/R2)
- правильные тени от солнца (R2)
- увеличенный видеобуфер (фикс ошибки "(bytes_need<=mSize) && vl_Count" на R2, связанной с перегрузками видеобуфера*)

* То есть теперь можно на полной динамике загрузить ресурсоёмкую карту типа болота из ЧН, поставить видимость в 4 километра и взрывать вокруг дымовые гранаты с ЧНовскими партиклами дыма (тоже жутко ресурсоёмкие).
Скриншоты
Мягкие партиклы (до и после)

Установка: закинуть содержимое в папку с установленным ТЧ (6 патч, более ранние патчи не поддерживаются и просить сделать под них аналогичное бессмысленно!)
Настройка: смотрите ogse_config.h
Нюансы:
- мягкая вода работает и без бинарников
- экзешник нужен для пыли в саншафтах и правки вылета перегрузки видеобуфера. Он основан на выложенным в свое время официальном экзешнике для 6го патча без защиты (отсутвие starforce).
- рендер-библиотека обеспечивает работу консольных команд, пыли в саншафтах и мягких партиклов.
Использование: где и как угодно. Не возбраняется указать автора.

Скачать
Часть наработок еще здесь


Сообщение отредактировал ForserX - 21.07.2020, 13:58
Перейти в начало страницы
 
227 страниц V  « < 188 189 190 191 192 > »   
Начать новую тему
Ответов
Diesel
сообщение 21.05.2020, 22:40
Сообщение #3782


Почти Мастер
***********

Репутация:   111  
Группа: Участник
Сообщений: 1158
Награды: 3
Регистрация: 07.08.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


jamakasi, понятно что сломано. Я примерно в фотошопе подогнал визуал скрина.
На самом деле в игре приятнее графа.
Но еще: этот рендер нельзя сравнивать со сталком, тут другая технология подготовки уровня и освещения. У меня уникальный рендер, macron не даст соврать, это гибридный ренедер ЧН и ЗП, да плюс немерено накручено по шейдерам.

Позднее я выровню яркость неба и яркость воды.

Сообщение отредактировал Diesel - 21.05.2020, 22:42
Перейти в начало страницы
 
Diesel
сообщение 21.05.2020, 23:11
Сообщение #3783


Почти Мастер
***********

Репутация:   111  
Группа: Участник
Сообщений: 1158
Награды: 3
Регистрация: 07.08.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Zagolski, спасибо за оптимизацию. Такого у меня еще не было, сразу отпустило заметно, в кадрах не скажу фпс - лень выводить.
Обязательно тебе памятник в Прохоровке поставлю.
Перейти в начало страницы
 
Zagolski
сообщение 22.05.2020, 11:54
Сообщение #3784


Почти Игроман
*********

Репутация:   59  
Группа: Участник
Сообщений: 629
Награды: 1
Регистрация: 13.12.2016




Вставить ник Цитировать выделенное в форуму быстрого ответа


Можно еще препасс травы сделать, тогда получим еще больший буст. На первом скрине по дефолту, на втором с препассом (см. фпс). Для травы вообще очень желательно препасс делать, особенно на отложенном рендере. Иначе получим дикий overdraw. Видяха GTX 660.





Сообщение отредактировал Zagolski - 22.05.2020, 12:03
Перейти в начало страницы
 
Diesel
сообщение 22.05.2020, 13:46
Сообщение #3785


Почти Мастер
***********

Репутация:   111  
Группа: Участник
Сообщений: 1158
Награды: 3
Регистрация: 07.08.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Zagolski, надо начинать препассы готовить к зиме.
Перейти в начало страницы
 
sergy172
сообщение 22.05.2020, 18:39
Сообщение #3786


Босс
********************

Репутация:   447  
Группа: Участник
Сообщений: 4295
Награды: 6
Регистрация: 07.06.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа


Готовь sunny летом...


--------------------
...Где каждый в душе великий Кобзон,
А на деле банальный Сид Вишес...
Моя Музыка Наша Музыка
Самый последний Косметик мод
В контакте ЛаЖа Facebook
Я плюс... Потому что я плюс. (с) Дрянь Тань Ян из провинции Гас Коу Ань.
Никакой справедливости нет, все законы работают не правильно, месть разрушительна и бесперспективна, правда у каждого своя, разум вообще больной. Остаётся жить любовью? Это был риторический вопрос.
Перейти в начало страницы
 
Diesel
сообщение 22.05.2020, 22:47
Сообщение #3787


Почти Мастер
***********

Репутация:   111  
Группа: Участник
Сообщений: 1158
Награды: 3
Регистрация: 07.08.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Zagolski, где твои препассы? Я жду. biggrin.gif
А что такая графа хреновая на скринах, гипер-рендер и то симпатичнее выдаёт картину.
Перейти в начало страницы
 
eagleivg
сообщение 22.05.2020, 23:11
Сообщение #3788


Новичок
*

Репутация:   1  
Группа: Участник
Сообщений: 5
Регистрация: 05.12.2019




Вставить ник Цитировать выделенное в форуму быстрого ответа


Zagolski, подскажи, попробовал перенести на OpenXRay, но оно крэшится на втором проходе:
Код
1   CBackend::set_Element                                                                                                             R_Backend_Runtime.h   124 0x7fffe7922be4
2   pLandscape_1<xr_fixed_map_node<float, R_dsgraph::_MatrixItemS>>                                                                   r__dsgraph_render.cpp 694 0x7fffe7922be4
3   xr_fixed_map<float, R_dsgraph::_MatrixItemS, 2ul, xalloc<xr_fixed_map_node<float, R_dsgraph::_MatrixItemS>>>::recurse_left_right  FixedMap.h            163 0x7fffe7922ed6
4   xr_fixed_map<float, R_dsgraph::_MatrixItemS, 2ul, xalloc<xr_fixed_map_node<float, R_dsgraph::_MatrixItemS>>>::recurse_left_right  FixedMap.h            163 0x7fffe7922ed1
5   xr_fixed_map<float, R_dsgraph::_MatrixItemS, 2ul, xalloc<xr_fixed_map_node<float, R_dsgraph::_MatrixItemS>>>::recurse_left_right  FixedMap.h            163 0x7fffe7922ed1
6   xr_fixed_map<float, R_dsgraph::_MatrixItemS, 2ul, xalloc<xr_fixed_map_node<float, R_dsgraph::_MatrixItemS>>>::recurse_left_right  FixedMap.h            163 0x7fffe7922ed1
7   xr_fixed_map<float, R_dsgraph::_MatrixItemS, 2ul, xalloc<xr_fixed_map_node<float, R_dsgraph::_MatrixItemS>>>::recurse_left_right  FixedMap.h            163 0x7fffe791f094
8   xr_fixed_map<float, R_dsgraph::_MatrixItemS, 2ul, xalloc<xr_fixed_map_node<float, R_dsgraph::_MatrixItemS>>>::traverse_left_right FixedMap.h            371 0x7fffe791f094
9   D3DXRenderBase::r_dsgraph_render_landscape                                                                                        r__dsgraph_render.cpp 707 0x7fffe791f094
10  CRender::Render                                                                                                                   gl_R_render.cpp       432 0x7fffe781d819
11  CLevel::OnRender                                                                                                                  Level.cpp             633 0x7fffe615ff15
12  pureRender::OnPure                                                                                                                pure.h                20  0x7ffff7f90252
13  MessageRegistry<pureRender>::Process                                                                                              pure.h                101 0x7ffff7f90252
14  CRenderDevice::DoRender                                                                                                           device.cpp            272 0x7ffff7f90252
15  CRenderDevice::DoRender                                                                                                           device.cpp            261 0x7ffff7f90252
16  CRenderDevice::ProcessFrame                                                                                                       device.cpp            299 0x7ffff7f9050c
17  CRenderDevice::ProcessFrame                                                                                                       device.cpp            283 0x7ffff7f9050c
18  CRenderDevice::message_loop                                                                                                       device.cpp            426 0x7ffff7f9131f
19  CRenderDevice::Run                                                                                                                device.cpp            460 0x7ffff7f91654
20  Startup                                                                                                                           main.cpp              305 0x7ffff7f96472


Код примерно такой:
Код
template<class T>
void __fastcall pLandscape_0(const T& N)
{
    VERIFY(N);
    dxRender_Visual *V = N.second.pVisual;
    VERIFY(V && V->shader._get());
    RCache.set_Element(N.second.se, 0);
    float LOD = calcLOD(N.second.ssa, V->vis.sphere.R);
#ifdef USE_DX11
    RCache.LOD.set_LOD(LOD);
#endif
    V->Render(LOD);
}

template<class T>
void __fastcall pLandscape_1(const T& N)
{
    VERIFY(N);
    dxRender_Visual *V = N.second.pVisual;
    VERIFY(V && V->shader._get());
    RCache.set_Element(N.second.se, 1);
    RImplementation.apply_lmaterial();
    float LOD = calcLOD(N.second.ssa, V->vis.sphere.R);
#ifdef USE_DX11
    RCache.LOD.set_LOD(LOD);
#endif
    V->Render(LOD);
}

void D3DXRenderBase::r_dsgraph_render_landscape(u32 pass, bool _clear)
{
    RCache.set_xform_world                    (Fidentity);
    if (pass==0)    mapLandscape.traverse_left_right    (pLandscape_0);
    else            mapLandscape.traverse_left_right    (pLandscape_1);
    if (_clear)        mapLandscape. clear        ();
}


Падает внутри вызова RCache.set_Element(N.second.se, 1);

Походу, я что-то забыл, но вот что...

Если что, полный патч приложен.

Прикрепленные файлы
Прикрепленный файл  static_prepass..zip ( 2,62 килобайт ) Кол-во скачиваний: 36
 
Перейти в начало страницы
 
RayTwitty
сообщение 22.05.2020, 23:34
Сообщение #3789


Игровой Бог
**********************

Репутация:   648  
Группа: Участник
Сообщений: 5354
Награды: 9
Регистрация: 24.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Diesel @ 22.05.2020, 13:46) *
Zagolski, надо начинать препассы готовить к зиме.

Шо толку от этих препассов если мы не видим диффы!


--------------------
Перейти в начало страницы
 
Diesel
сообщение 23.05.2020, 02:54
Сообщение #3790


Почти Мастер
***********

Репутация:   111  
Группа: Участник
Сообщений: 1158
Награды: 3
Регистрация: 07.08.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

В ф-цию r_dsgraph_insert_static ближе к концу перед
Код
for ( u32 iPass = 0; iPass<sh->passes.size(); ++iPass)

Я случайно в динамику хренакнул, вылетало так же примерно.
Перейти в начало страницы
 
Zagolski
сообщение 23.05.2020, 07:51
Сообщение #3791


Почти Игроман
*********

Репутация:   59  
Группа: Участник
Сообщений: 629
Награды: 1
Регистрация: 13.12.2016




Вставить ник Цитировать выделенное в форуму быстрого ответа


eagleivg, Я у тебя нашел пару неточностей, а в остальном порядок.
1.
Код
C.SH->flags.bLandscape = TRUE;
нужно ставить также и в
Код
case SE_R2_NORMAL_LQ:

2. При установке рендертаргета нужно делать if else в зависимости от включенного MSAA: ставить базовый буфер глубины или мультисемплинговый. Вот так:
Код
if (!RImplementation.o.dx10_msaa) Target->u_setrt ( Device.dwWidth,Device.dwHeight,NULL,NULL,NULL,HW.pBaseZB);
else Target->u_setrt ( Device.dwWidth,Device.dwHeight,NULL,NULL,NULL,rt_MSAADepth->pZRT);

Еще у тебя организована какая-то самодеятельность в ResourceManager_Scripting.cpp. Я туда ничего не внедрял, может из-за этого проблемы.

Цитата(Diesel @ 22.05.2020, 22:47) *
А что такая графа хреновая на скринах, гипер-рендер и то симпатичнее выдаёт картину.

Там у меня нет ничего, ни постпроцесса, ни даже теней. Только базовое освещение diff+spec, считай как на статике.

Цитата(Diesel @ 22.05.2020, 22:47) *
где твои препассы? Я жду.

С травой сложнее, как будет время, опишу процесс внедрения.

Сообщение отредактировал Zagolski - 23.05.2020, 08:37
Перейти в начало страницы
 
Zagolski
сообщение 23.05.2020, 08:31
Сообщение #3792


Почти Игроман
*********

Репутация:   59  
Группа: Участник
Сообщений: 629
Награды: 1
Регистрация: 13.12.2016




Вставить ник Цитировать выделенное в форуму быстрого ответа


Я ранее писал, что на втором проходе нужно отключить запись в буфер глубины. Но не привел конкретного примера. Глюков мы не получим, если не сделаем, но производительность малость ухудшится из-за двойной записи в буфер глубины.
Поэтому обязательно лезем в
Код
void    uber_deffer    (CBlender_Compile& C, bool hq, LPCSTR _vspec, LPCSTR _pspec, BOOL _aref, LPCSTR _detail_replace=0, bool DO_NOT_FINISH=false);

и добавляем в конце
Код
void    uber_deffer    (CBlender_Compile& C, bool hq, LPCSTR _vspec, LPCSTR _pspec, BOOL _aref, LPCSTR _detail_replace=0, bool DO_NOT_FINISH=false, bool DO_NOT_WRITE=false);

а в теле ф-ции, где есть
Код
C.r_Pass        (vs,ps,    FALSE);

Меняем его, делая так:
Код
C.r_Pass        (vs,ps,    FALSE, TRUE, DO_NOT_WRITE?FALSE:TRUE);


В Blender_BmmD.cpp в SE_R2_NORMAL_HQ и в SE_R2_NORMAL_LQ, где у нас вызов uber_deffer, делаем в ней в конце true, вот так:
Код
uber_deffer        (C, true,    "impl","impl",false,oT2_Name[0]?oT2_Name:0,true,true);


Либо можно в Blender_BmmD.cpp в SE_R2_NORMAL_HQ и в SE_R2_NORMAL_LQ сразу после uber_deffer добавить это:
Код
C.PassSET_ZB(TRUE, FALSE);

В этом случае модификации uber_deffer не требуется.

Хотя с другой стороны в PassSET_ZB есть проверка
Код
if (Pass())    bZWrite = FALSE;

То есть при наличии первого инициализированного прохода второму принудительно отключается запись глубины. Так что возможно никаких вышеописанных манипуляций делать и не потребуется, GSC уже все продумала за нас. Но вообще я советую внедрить код в uber_deffer первым вариантом, оно может пригодиться в дальнейшем и даст лучшую масштабируемость при внедрении других фич.

Сообщение отредактировал Zagolski - 23.05.2020, 08:55
Перейти в начало страницы
 
Zagolski
сообщение 23.05.2020, 11:08
Сообщение #3793


Почти Игроман
*********

Репутация:   59  
Группа: Участник
Сообщений: 629
Награды: 1
Регистрация: 13.12.2016




Вставить ник Цитировать выделенное в форуму быстрого ответа


Народ, протестите такую штуку у себя и скажите, ускорилась ли загрузка и насколько, стало ли шустее бегать, особенно в меню/ интерфейсе.
Лезем в dx10Texture.cpp в texture_load, в _DDS_2D: сразу после
Код
LoadInfo.FirstMipLevel = img_loaded_lod;

добавляем
Код
LoadInfo.MipLevels = IMG.MipLevels;

Перейти в начало страницы
 
Diesel
сообщение 23.05.2020, 12:01
Сообщение #3794


Почти Мастер
***********

Репутация:   111  
Группа: Участник
Сообщений: 1158
Награды: 3
Регистрация: 07.08.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Zagolski, сейчас заценим.

А у меня вообще, бошку открутили:

//LoadInfo.FirstMipLevel = img_loaded_lod;


Zagolski, шустро, но не понятно так было или стало. biggrin.gif

Я совет дам по оптимизации. Если вы не используете какие то локации, то выкиньте их из базы.
Загрузка увеличивается в разы если выкинуть все локации ЧН, а оставить одну новую например.
Текстуры нужно паковать с линковкой к конкретной локации, если на других локациях они не используются - это ускорит загрузку и оптимизирует уровни.

Перейти в начало страницы
 
Diesel
сообщение 23.05.2020, 17:32
Сообщение #3795


Почти Мастер
***********

Репутация:   111  
Группа: Участник
Сообщений: 1158
Награды: 3
Регистрация: 07.08.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Сто пудово правленый рендер x-ray уделает cryengine 2.
Я довольно долго (года два biggrin.gif ) изучал CE, так по игре можно сказать, что это примерно 3.4.3 версия Крайэнгины, примерно ( это я за свой гипер-звук толкую).
Перейти в начало страницы
 
Diesel
сообщение 24.05.2020, 22:16
Сообщение #3796


Почти Мастер
***********

Репутация:   111  
Группа: Участник
Сообщений: 1158
Награды: 3
Регистрация: 07.08.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Zagolski, я не сразу заметил, но повторная загрузка уровня крашиться.

r_dsgraph_render_landscape(1, true);



Лог
Вылет


0023:0299F7E8 rClient.dll, CBackend::set_Element(), i:\scs_3_5_1_source_code\clearsky\engine\layers\xrrender\r_backend_runtime.h, 95
0023:029A458B rClient.dll, pLandscape_1(), i:\scs_3_5_1_source_code\clearsky\engine\layers\xrrender\r__dsgraph_render.cpp, 829
0023:029A4674 rClient.dll, FixedMAP<float,R_dsgraph::_MatrixItemS,doug_lea_allocator>::recurseLR(), i:\scs_3_5_1_source_code\clearsky\engine\xrcore\fixedmap.h, 79
0023:029A4670 rClient.dll, FixedMAP<float,R_dsgraph::_MatrixItemS,doug_lea_allocator>::recurseLR(), i:\scs_3_5_1_source_code\clearsky\engine\xrcore\fixedmap.h, 78
0023:029A4670 rClient.dll, FixedMAP<float,R_dsgraph::_MatrixItemS,doug_lea_allocator>::recurseLR(), i:\scs_3_5_1_source_code\clearsky\engine\xrcore\fixedmap.h, 78
0023:029A4670 rClient.dll, FixedMAP<float,R_dsgraph::_MatrixItemS,doug_lea_allocator>::recurseLR(), i:\scs_3_5_1_source_code\clearsky\engine\xrcore\fixedmap.h, 78
0023:029A4670 rClient.dll, FixedMAP<float,R_dsgraph::_MatrixItemS,doug_lea_allocator>::recurseLR(), i:\scs_3_5_1_source_code\clearsky\engine\xrcore\fixedmap.h, 78
0023:029A4670 rClient.dll, FixedMAP<float,R_dsgraph::_MatrixItemS,doug_lea_allocator>::recurseLR(), i:\scs_3_5_1_source_code\clearsky\engine\xrcore\fixedmap.h, 78
0023:029A4670 rClient.dll, FixedMAP<float,R_dsgraph::_MatrixItemS,doug_lea_allocator>::recurseLR(), i:\scs_3_5_1_source_code\clearsky\engine\xrcore\fixedmap.h, 78
0023:029A4670 rClient.dll, FixedMAP<float,R_dsgraph::_MatrixItemS,doug_lea_allocator>::recurseLR(), i:\scs_3_5_1_source_code\clearsky\engine\xrcore\fixedmap.h, 78
0023:029A4670 rClient.dll, FixedMAP<float,R_dsgraph::_MatrixItemS,doug_lea_allocator>::recurseLR(), i:\scs_3_5_1_source_code\clearsky\engine\xrcore\fixedmap.h, 78
0023:029A4670 rClient.dll, FixedMAP<float,R_dsgraph::_MatrixItemS,doug_lea_allocator>::recurseLR(), i:\scs_3_5_1_source_code\clearsky\engine\xrcore\fixedmap.h, 78
0023:029A4670 rClient.dll, FixedMAP<float,R_dsgraph::_MatrixItemS,doug_lea_allocator>::recurseLR(), i:\scs_3_5_1_source_code\clearsky\engine\xrcore\fixedmap.h, 78
0023:029A4670 rClient.dll, FixedMAP<float,R_dsgraph::_MatrixItemS,doug_lea_allocator>::recurseLR(), i:\scs_3_5_1_source_code\clearsky\engine\xrcore\fixedmap.h, 78
0023:029A4670 rClient.dll, FixedMAP<float,R_dsgraph::_MatrixItemS,doug_lea_allocator>::recurseLR(), i:\scs_3_5_1_source_code\clearsky\engine\xrcore\fixedmap.h, 78
0023:029A4670 rClient.dll, FixedMAP<float,R_dsgraph::_MatrixItemS,doug_lea_allocator>::recurseLR(), i:\scs_3_5_1_source_code\clearsky\engine\xrcore\fixedmap.h, 78
0023:029A4670 rClient.dll, FixedMAP<float,R_dsgraph::_MatrixItemS,doug_lea_allocator>::recurseLR(), i:\scs_3_5_1_source_code\clearsky\engine\xrcore\fixedmap.h, 78
0023:029A4670 rClient.dll, FixedMAP<float,R_dsgraph::_MatrixItemS,doug_lea_allocator>::recurseLR(), i:\scs_3_5_1_source_code\clearsky\engine\xrcore\fixedmap.h, 78
0023:029A4670 rClient.dll, FixedMAP<float,R_dsgraph::_MatrixItemS,doug_lea_allocator>::recurseLR(), i:\scs_3_5_1_source_code\clearsky\engine\xrcore\fixedmap.h, 78
0023:0299E5DC rClient.dll, CRender::Render(), i:\scs_3_5_1_source_code\clearsky\engine\layers\xrrenderpc_r3\r3_r_render.cpp, 446
0023:0467C779 xrGame.dll, CDialogHolder::shedule_Scale()
0023:0467C779 xrGame.dll, CDialogHolder::shedule_Scale()


Всё сюда прилетает

IC void CBackend::set_Element (ShaderElement* S, u32 pass)
{
SPass& P = *(S->passes[pass]);
set_States (P.state);
set_PS (P.ps);
set_VS (P.vs);
#ifdef USE_DX10
set_GS (P.gs);
#endif // USE_DX10
set_Constants (P.constants);
set_Textures (P.T);
#ifdef _EDITOR
set_Matrices (P.M);
#endif
}

Что то я наверно лишнего нагородил.

Сообщение отредактировал Diesel - 24.05.2020, 23:00
Перейти в начало страницы
 
Diesel
сообщение 25.05.2020, 00:57
Сообщение #3797


Почти Мастер
***********

Репутация:   111  
Группа: Участник
Сообщений: 1158
Награды: 3
Регистрация: 07.08.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Zagolski, может причина в dx10?

Функции
HRESULT dx10State::Apply()
{
VERIFY(m_pRasterizerState);
StateManager.SetRasterizerState(m_pRasterizerState);
VERIFY(m_pDepthStencilState);
StateManager.SetDepthStencilState(m_pDepthStencilState);
if( m_uiStencilRef != -1 )
StateManager.SetStencilRef(m_uiStencilRef);
VERIFY(m_pBlendState);
StateManager.SetBlendState(m_pBlendState);
StateManager.SetAlphaRef(m_uiAlphaRef);

SSManager.GSApplySamplers(m_GSSamplers);
SSManager.VSApplySamplers(m_VSSamplers);
SSManager.PSApplySamplers(m_PSSamplers);

return S_OK;
}

Или тут:

void dx10SamplerStateCache::PrepareSamplerStates(
HArray &samplers,
ID3D10SamplerState *pSS[D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT],
SHandle pCurrentState[D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT],
u32 &uiMin,
u32 &uiMax
) const
{
// It seems that sizeof pSS is 4 wor win32!
ZeroMemory(pSS, sizeof(pSS[0])*D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT);

for ( u32 i=0; i<samplers.size(); ++i )
{
if (samplers[i]!=hInvalidHandle)
{
VERIFY(samplers[i]<m_StateArray.size());
pSS[i] = m_StateArray[samplers[i]].m_pState;
}
}

uiMin = 0;
uiMax = D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT-1;
}

unsure.gif

Короче, идёт вылет из-за кеша, памяти. Что то уже там находится, а движок еще туда пытается затолкать повторно, потому вылетает, скорее всего.

Нужно чистить кеш. Это компилированные шейдеры в оперативе сбоят.

А так на первом заходе на локацию - все зашибись.
Вопрос, как очистить память с новой игрой?

Сообщение отредактировал Diesel - 25.05.2020, 01:11
Перейти в начало страницы
 
RayTwitty
сообщение 25.05.2020, 01:16
Сообщение #3798


Игровой Бог
**********************

Репутация:   648  
Группа: Участник
Сообщений: 5354
Награды: 9
Регистрация: 24.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Zagolski, нужно нормальные диффы, а не вот это вот всё biggrin.gif А то какой-то собери конструктор сам получается, да вот только мало у кого получается. Ты же вроде форвард делаешь, а правки по деффереду вполне можно и в опенсорс репо показывать, имхо.


--------------------
Перейти в начало страницы
 
Zagolski
сообщение 25.05.2020, 11:10
Сообщение #3799


Почти Игроман
*********

Репутация:   59  
Группа: Участник
Сообщений: 629
Награды: 1
Регистрация: 13.12.2016




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(RayTwitty @ 25.05.2020, 01:16) *
Ты же вроде форвард делаешь

Уже перешел на деферред. Форвард себя плохо показал на больших открытых пространствах с кучей геометрии, ведь ее приходится рендерить дважды (первый раз для препасса). А на отложенном сделал только препасс ландшафта и травы, хороший буст дало. Хотя еще ландшафт хочу на карту высот переводить.

Цитата(RayTwitty @ 25.05.2020, 01:16) *
А то какой-то собери конструктор сам получается, да вот только мало у кого получается.

Вроде все по полочкам разложено. Проблема в том, что у меня иначе сделано, дифы ничего не дадут. Это мне нужно садиться за ванильный рендер и делать там. Тогда да. Посмотрим в скором времени.

Цитата(Diesel @ 24.05.2020, 22:16) *
Всё сюда прилетает

Скорее всего прилетает не туда, а строкой выше:
Код
SPass& P = *(S->passes[pass]);

То есть где-то не активирован второй пасс, возвращает NULL и на этом крашится. Не знаю, может у тебя где-то на ландшафте висит шейдер .s, который через луа инициализируется. В этом случае тогда и там нужно сделать два пасса, типа того:

Код
function pass_setup_common_0 (shader, t_base, t_second, t_detail)
    shader    : blend    (false, blend.one, blend.zero)
            : zb    (true,  true)
            : fog    (false)
            
    shader  :dx10color_write_enable( false, false, false, false)
        :dx10stencil    ( true, cmp_func.always, 255, 255, stencil_op.keep, stencil_op.replace, stencil_op.keep )
        :dx10stencil_ref    (1)
end

function pass_setup_common_1 (shader, t_base, t_second, t_detail)
    shader    : blend    (false, blend.one, blend.zero)
            : zb    (true,  false)
            : fog    (false)
            
    shader    :dx10zfunc(cmp_func.equal)

    bla-bla-bla
end

function normal    (shader, t_base, t_second, t_detail)
--    pre_pass --
    shader    :begin    ("bla-bla-bla","bla-bla-bla")
    bla-bla-bla.pass_setup_common_0(shader, t_base, t_second, t_detail)
    
--    main pass --
    shader    :begin    ("bla-bla-bla","bla-bla-bla")
    bla-bla-bla.pass_setup_common_1(shader, t_base, t_second, t_detail)
end

Но тут нет поддержки нормалей. Да и тогда должна сразу падать, а не после релоада. Не знаю, может трабла действительно в дх10, я то с ним не связывался, выпилил сразу как недоделку. Чего и тебе советую. А вообще конечно под дебаггером хорошенько погоняй, проверь. Из-за чего конкретно проблема. И еще проверь сам mapLandscape, может он у тебя не очищается корректно.

Сообщение отредактировал Zagolski - 25.05.2020, 11:13
Перейти в начало страницы
 
Zagolski
сообщение 25.05.2020, 11:55
Сообщение #3800


Почти Игроман
*********

Репутация:   59  
Группа: Участник
Сообщений: 629
Награды: 1
Регистрация: 13.12.2016




Вставить ник Цитировать выделенное в форуму быстрого ответа


Обнаружил, что на локе Припять в ЗП аж 310 секторов. Во дела! Наверное, на каждом здании сделаны, куда внутрь войти можно. Да и не только. Вообще грамотный ход разрабов, все же геометрии довольно много на локе. Но и трудозатраты на их создание наверняка были ого-го. Отчасти теперь понятно, почему ЗП так шустро бегает. Кстати, на болотах ЧН только 1 сектор, который всю локу охватывает.

Сообщение отредактировал Zagolski - 25.05.2020, 12:44
Перейти в начало страницы
 
Diesel
сообщение 25.05.2020, 13:07
Сообщение #3801


Почти Мастер
***********

Репутация:   111  
Группа: Участник
Сообщений: 1158
Награды: 3
Регистрация: 07.08.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Zagolski, по своему вылету при перезагрузке левела: сейчас проверять свой оригинал буду. Возможно это у меня тянется ранее без этой оптимизации. У меня тут ридер левела новый сделан, как то неважно.
Перейти в начало страницы
 

227 страниц V  « < 188 189 190 191 192 > » 
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 16.04.2024, 22:00