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

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

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

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

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

> [SDK] Фиксы для X-Ray SDK
K.D.
сообщение 25.07.2012, 10:29
Сообщение #141


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

Репутация:   311  
Группа: Участник
Сообщений: 1092
Регистрация: 01.03.2011




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


ТЧ SDK
Actor Editor: Отключение оптимизации мешей скелетных моделей при экспорте в ogf
Отключена оптимизация мешей скелетных моделей при экспорте в ogf (аналогично HQ Geometry в АЕ ЗП).
Автор: K.D.

До

После


Скачать
Level Editor: Исправление вылета при построении уровня на стадии Merge LOD textures
Ошибка возникала из-за большого количества лод-объектов на локации (>128). Они просто не вмещались на текстуру 2048х2048.
Теперь текстура будет увеличена до нужных размеров и соответственно лодов можно будет ставить намного больше.
Автор: K.D.

Скачать
Actor Editor: Исправление окна загрузки анимаций
Исправлено отсутствие окошка выбора файлов при добавлении анимаций на Windows Vista/7 и выше.
Должны заработать и другие проблемные окошки.
Внимание! АЕ должен запускаться с фиксом ACT на XPFileDialog, как описано, например, тут.
Автор: K.D.

Скачать
Level Editor: Снятие ограничения по добавлению большого количества моделей на сцену
Снято ограничение по добавлению большого количества моделей на сцену за один раз (через Multiple Append и т.п.). В оригинале было максимально 32 модели.
Автор: Real Wolf

Скачать

ЧН SDK
Actor Editor: Отключение оптимизации мешей скелетных моделей при экспорте в ogf
Отключена оптимизация мешей скелетных моделей при экспорте в ogf (аналогично HQ Geometry в АЕ ЗП).
Автор: K.D.

До

После


Скачать | Зеркало
Level Editor: Исправление вылета при построении уровня на стадии Merge LOD textures + поддержка более 2 Гб ОЗУ
Ошибка возникала из-за большого количества лод-объектов на локации (>128). Они просто не вмещались на текстуру 2048х2048.
Теперь текстура будет увеличена до нужных размеров и соответственно лодов можно будет ставить намного больше.
Также, включена поддержка более 2 Гб ОЗУ для всех редакторов.
Автор: macron

Скачать

ЗП SDK
Actor Editor: Форсирование использования групп сглаживания при экспорте моделей
Форсировано использование групп сглаживания при экспорте моделей. Работает с группами сглаживания как Макса, так и Майки.
Автор: K.D.

До

После


Скачать | Зеркало
Level Editor: Исправление вылета при построении уровня на стадии Merge LOD textures + поддержка более 2 Гб ОЗУ
Ошибка возникала из-за большого количества лод-объектов на локации (>128). Они просто не вмещались на текстуру 2048х2048.
Теперь текстура будет увеличена до нужных размеров и соответственно лодов можно будет ставить намного больше.
Также, включена поддержка более 2 Гб ОЗУ для всех редакторов.
Автор: macron

Скачать

ТЧ-ЧН SDK
xrLC: Фикс вылета при инвалид фейсах + качественные лайтмапы
1) убран вылет при нахождении инвалидных треугольников (invalid faces), теперь окошко с ошибкой не появляется
2) компилятор генерирует текстуры для лайтмапов в высоком качестве

В архиве лежат готовые бинарники. Но если вы хотите добавить правки в свои - используйте патчер и сами патчи.

Автор: RayTwitty

Скачать

ТЧ-ЧН-ЗП SDK
Level Editor: Фикс инвалид фейсов
Выяснилось, что SDK за инвалид фейсы считает не только действительно кривые фейсы, но и просто маленькие треугольники. Из-за этого невозможно создание геометрии с высокой детализацией.

Геометрия с удаленными маленькими фейсами во время билда уровня:


Геометрия после билда уровня с фиксом:

Автор: RayTwitty

Скачать
Level Editor: Различные фиксы
ТЧ
- Снято ограничение на количество воллмарков на уровне (увеличено с 500 до 5000)

ЧН-ЗП
- Исправлено падение при построении уровня на стадии "Merge LOD textures" (размер максимальной текстуры увеличен с 2048 до 4096)
- Снято ограничение на количество воллмарков на уровне (увеличено с 500 до 5000)
- Снято ограничение по добавлению большого количества моделей на сцену за один раз (через Multiple Append и т.п.). В оригинале было максимально 32 модели.

Скачать


Сообщение отредактировал OlegatoR - 18.06.2020, 23:17
Перейти в начало страницы
 
9 страниц V  « < 6 7 8 9 >  
Начать новую тему
Ответов
xrModder
сообщение 28.03.2019, 09:59
Сообщение #142


Мастер Игры
************

Репутация:   104  
Группа: Участник
Сообщений: 1331
Регистрация: 08.08.2018




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


Цитата(aka_sektor @ 28.03.2019, 12:48) *
Цитата(xrModder @ 27.03.2019, 21:01) *
Этот фикс точно такой же как и фикс для SDK от YURSHAT.

Ты прав! ohmy.gif


Откуда комменты в первом файле? Вроде я не оставлял.
Перейти в начало страницы
 
aka_sektor
сообщение 28.03.2019, 10:38
Сообщение #143


Грандмастер
**************

Репутация:   118  
Группа: Участник
Сообщений: 1788
Награды: 4
Регистрация: 04.04.2013




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


xrModder, просто сравинил дифы, твой и Kontro-zzz.


--------------------


Те кто играют уже не забудут ​​​​​​​© Алексей Сытянов
Перейти в начало страницы
 
xrModder
сообщение 28.03.2019, 10:55
Сообщение #144


Мастер Игры
************

Репутация:   104  
Группа: Участник
Сообщений: 1331
Регистрация: 08.08.2018




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


Цитата(aka_sektor @ 28.03.2019, 05:20) *
Цитата(macron @ 28.03.2019, 02:17) *

xrModder, вот тут к тебе уже вопрос, не помню, как там .dif настраивать.

Надо бы патчер сделать, ток чтобы затирал в LevelEditor.exe, текст:
Код
CSceneObject: different file version!


Так, а зачем его затирать? Полезная информация при настройке уровня.
Перейти в начало страницы
 
aka_sektor
сообщение 28.03.2019, 10:59
Сообщение #145


Грандмастер
**************

Репутация:   118  
Группа: Участник
Сообщений: 1788
Награды: 4
Регистрация: 04.04.2013




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


Цитата(xrModder @ 28.03.2019, 10:55) *
Полезная информация

Угу, особенно когда открываешь локацию из исходников, .object которой взяты от разных версий одного и того же уровня.
Засирается весь лог этими "полезными сообщениями", так что не вычленишь потом, действительно нужные "Can't find file" и "Can't find texture".

Я так мыслю. dry.gif


--------------------


Те кто играют уже не забудут ​​​​​​​© Алексей Сытянов
Перейти в начало страницы
 
xrModder
сообщение 28.03.2019, 19:16
Сообщение #146


Мастер Игры
************

Репутация:   104  
Группа: Участник
Сообщений: 1331
Регистрация: 08.08.2018




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


Кто-нибудь выложите актуальные версии LevelEditor.exe и xrECoreB.dll из каждого SDK. Есть фиксы smile.gif

Сообщение отредактировал xrModder - 28.03.2019, 19:16
Перейти в начало страницы
 
aka_sektor
сообщение 28.03.2019, 19:58
Сообщение #147


Грандмастер
**************

Репутация:   118  
Группа: Участник
Сообщений: 1788
Награды: 4
Регистрация: 04.04.2013




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


xrModder, добавил зеркала на Яндексе:
https://modders.pro/X-Ray_SDK_0.4
https://modders.pro/X-Ray_SDK_by_YURSHAT
https://modders.pro/X-Ray_SDK_0.5
https://modders.pro/X-Ray_SDK_0.7

Можешь открыть папку и взять что нужно.


--------------------


Те кто играют уже не забудут ​​​​​​​© Алексей Сытянов
Перейти в начало страницы
 
xrModder
сообщение 28.03.2019, 20:11
Сообщение #148


Мастер Игры
************

Репутация:   104  
Группа: Участник
Сообщений: 1331
Регистрация: 08.08.2018




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


Цитата(aka_sektor @ 28.03.2019, 22:58) *
xrModder, добавил зеркала на Яндексе:
https://modders.pro/X-Ray_SDK_0.4
https://modders.pro/X-Ray_SDK_by_YURSHAT
https://modders.pro/X-Ray_SDK_0.5
https://modders.pro/X-Ray_SDK_0.7

Можешь открыть папку и взять что нужно.
Скачивается, но не открывается, у меня нет столько интернет трафика.

Сообщение отредактировал xrModder - 28.03.2019, 20:12
Перейти в начало страницы
 
aka_sektor
сообщение 28.03.2019, 20:18
Сообщение #149


Грандмастер
**************

Репутация:   118  
Группа: Участник
Сообщений: 1788
Награды: 4
Регистрация: 04.04.2013




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


xrModder, аккаунт на Яндексе же есть? Сохрани к себе файл по кнопке.


Сообщение отредактировал aka_sektor - 28.03.2019, 20:19


--------------------


Те кто играют уже не забудут ​​​​​​​© Алексей Сытянов
Перейти в начало страницы
 
xrModder
сообщение 28.03.2019, 20:56
Сообщение #150


Мастер Игры
************

Репутация:   104  
Группа: Участник
Сообщений: 1331
Регистрация: 08.08.2018




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


Цитата(aka_sektor @ 28.03.2019, 23:18) *
xrModder, аккаунт на Яндексе же есть? Сохрани к себе файл по кнопке.

Блин, забыл войти через аккаунт и посмотреть содержимое.
Перейти в начало страницы
 
xrModder
сообщение 28.03.2019, 21:33
Сообщение #151


Мастер Игры
************

Репутация:   104  
Группа: Участник
Сообщений: 1331
Регистрация: 08.08.2018




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


В SDK ЗП и ЧН при спавне Way Point координаты показывают по нулям как в SDK 0.4?
Перейти в начало страницы
 
Yara
сообщение 29.03.2019, 01:49
Сообщение #152


Опытный Геймер
*******

Репутация:   50  
Группа: Участник
Сообщений: 157
Награды: 2
Регистрация: 20.03.2014




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


Цитата(xrModder @ 29.03.2019, 00:33) *
В SDK ЗП и ЧН при спавне Way Point координаты показывают по нулям как в SDK 0.4?

Не, в чн / зп с этим норм.

Слушай, а не можешь поправить в сдк тч (level editor) сброс выделения в окошке object list при удалении объекта (сразу сбрасывает на начало - терпимо, когда 100-200 объектов, но когда >1000... wallbash.gif
Перейти в начало страницы
 
xrModder
сообщение 29.03.2019, 07:59
Сообщение #153


Мастер Игры
************

Репутация:   104  
Группа: Участник
Сообщений: 1331
Регистрация: 08.08.2018




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


Цитата(Yara @ 29.03.2019, 04:49) *
Слушай, а не можешь поправить в сдк тч (level editor) сброс выделения в окошке object list при удалении объекта (сразу сбрасывает на начало - терпимо, когда 100-200 объектов, но когда >1000... wallbash.gif

Посмотрю, но не сейчас.

Сообщение отредактировал xrModder - 29.03.2019, 08:04
Перейти в начало страницы
 
xrModder
сообщение 29.03.2019, 21:00
Сообщение #154


Мастер Игры
************

Репутация:   104  
Группа: Участник
Сообщений: 1331
Регистрация: 08.08.2018




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


Патч для X-Ray SDK 0.4 от 28.01.2017

Изменения:
- Убран вкл. окно лога с сообщением* CSceneObject: 'file_name' different file version! (загрузка измененной версии объекта)
- Убран вкл. окно лога с сообщением* Can't find texture 'texture_name' (ошибка загрузки при отсутствии текстуры)

* За одно цвет фона сообщения переведен из красного в серый
Установка:
Скопировать папку bins в папку с SDK или использовать патчер.

Скачать: https://yadi.sk/d/IK3M6SjeSz2H3Q
Перейти в начало страницы
 
aka_sektor
сообщение 07.04.2019, 22:00
Сообщение #155


Грандмастер
**************

Репутация:   118  
Группа: Участник
Сообщений: 1788
Награды: 4
Регистрация: 04.04.2013




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


Может кто-то проверить, ошибки:
Код
Can't find any Glow Object
Can't find any Light Object


Это проверка SDK или ограничение движка?

Если проверка, то может ли кто сделать правку, её отключающую?


--------------------


Те кто играют уже не забудут ​​​​​​​© Алексей Сытянов
Перейти в начало страницы
 
Kontro-zzz
сообщение 08.04.2019, 13:32
Сообщение #156


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

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




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


Тестовая затычка на вылет "(Pos<=Size) && (Pos>=0)" при загрузке приложений СДК.
Патчим xrCoreB.dll.
Патчи для тч-чн-зп сдк.
https://yadi.sk/d/pW0tcsTf7Jtz6w


--------------------
Будиш маму-папу слушать
Будиш ты канфеты кушать!
© Операция «Ы»
Перейти в начало страницы
 
Kontro-zzz
сообщение 10.04.2019, 00:19
Сообщение #157


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

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




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


PS
Добавлена еще одна затычка на вылет Description : Pos+cnt<=Size
https://yadi.sk/d/qHRtwj7fR2sUFw
Заткнуты примерно такие вылеты на СДК ЧН:
CODE

exp​ression : assertion failed
Function : X:\stalker_addon\sources\engine\xrCore\FS.h
File : X:\stalker_addon\sources\engine\xrCore\FS.h
Line : 276
Description : (Pos<=Size) && (Pos>=0)

stack trace:

exp​ression : assertion failed
Function : X:\stalker_addon\sources\engine\xrCore\FS.h
File : X:\stalker_addon\sources\engine\xrCore\FS.h
Line : 273
Description : (Pos<=Size) && (Pos>=0)

stack trace:

exp​ression : assertion failed
Function : X:\stalker_addon\sources\engine\xrCore\FS.cpp
File : X:\stalker_addon\sources\engine\xrCore\FS.cpp
Line : 388
Description : Pos+cnt<=Size

stack trace:


На СДК ЗП.

CODE

exp​ression : assertion failed
Function : X:\stalker_addon\sources\trunk\xrCore\FS.h
File : X:\stalker_addon\sources\trunk\xrCore\FS.h
Line : 278
Description : (Pos<=Size) && (Pos>=0)

stack trace:

exp​ression : assertion failed
Function : X:\stalker_addon\sources\trunk\xrCore\FS.cpp
File : X:\stalker_addon\sources\trunk\xrCore\FS.cpp
Line : 392
Description : Pos+cnt<=Size

stack trace:


Архив выше перезалит.

Сообщение отредактировал Kontro-zzz - 10.04.2019, 00:23


--------------------
Будиш маму-папу слушать
Будиш ты канфеты кушать!
© Операция «Ы»
Перейти в начало страницы
 
Rolan96
сообщение 03.06.2020, 11:48
Сообщение #158


Продвинутый геймер
********

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




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


Подскажите как пользоваться правкой RayTwitty по инвалид фейсам для сдк ЗП.
Левел едитор пропатчил, но после компиляции локации всё равно на моделях есть удаленные треугольники.
Перейти в начало страницы
 
macron
сообщение 13.01.2021, 01:08
Сообщение #159


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

Репутация:   1690  
Группа: Участник
Сообщений: 7021
Награды: 11
Регистрация: 22.02.2006




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


Хочу рассказать об одном хаке, который уже давно изредка использовал, но как-то не заморачивался с серьезными исследованиями. Речь о параметре "-noise" в батник для xrlc-компиляторов. Расшифровывается как "No isolated чего-то там...". На последних тестах оценил преимущества. Тестировал на r2 на конкретной карте, где много геометрии и мало деревьев, отвечаю только за это:

1. На 32-битном компиляторе, когда на навороченной карте в стандартном режиме начинаются вылеты по нехватке памяти, то если добавить "-noise", появляется небольшой дополнительный запас памяти и больше шансов скомпилить.

2. Исправились косяки с треугольниками на воде в месте ее перехода в лоды.




3. В среднем fps на карте немного вырос на пару кадров.




4. В паре мест fps существенно вырос.




Пока что одни плюсы. Если кто знает больше, обсуждайте.

Сообщение отредактировал macron - 13.01.2021, 01:21
Перейти в начало страницы
 
Yara
сообщение 13.01.2021, 07:44
Сообщение #160


Опытный Геймер
*******

Репутация:   50  
Группа: Участник
Сообщений: 157
Награды: 2
Регистрация: 20.03.2014




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


Цитата(macron @ 13.01.2021, 04:08) *
Речь о параметре "-noise" в батник для xrlc-компиляторов.

Дополню, как оно есть в коде (но мне мало там понятного, и стоит-ли скипать эту фазу при компиле):
код

Ключ -noise устанавливает b_noise = TRUE;

\xrLC\xrFlex2OGF.cpp
...
CODE

if (!b_noise) // если без ключа
pOGF->MakeProgressive(c_PM_MetricLimit_static);

pOGF->MakeProgressive

\xrLC\OGF_Face.cpp
...
CODE

void OGF::MakeProgressive (float metric_limit)
{
// test
// there is no-sense to simplify small models
// for batch size 50,100,200 - we are CPU-limited anyway even on nv30
// for nv40 and up the better guess will probably be around 500
if (faces.size()<c_PM_FaceLimit) return ;

c_PM_FaceLimit

\xrLC\b_globals.h
...
CODE

const u32 c_LMAP_size = 1024; // pixels
const u32 c_VB_maxSize = 4096*1024; // bytes
const u32 c_VB_maxVertices = 65535; // count
const u32 c_vCacheSize = 24; // entries
const u32 c_SS_LowVertLimit = 64; // polys
const u32 c_SS_HighVertLimit = 2*1024; // polys
const u32 c_SS_maxsize = 32; // meters
const u32 c_PM_FaceLimit = 128; // face-limit
const float c_PM_MetricLimit_static = 0.10f; // vertex-count-simplification-limit
const float c_PM_MetricLimit_mu = 0.05f; // vertex-count-simplification-limit


CODE

//. AlexMX added for draft build mode
if (g_params.m_quality==ebqDraft) return ;

progressive_cs.Enter ();

//////////////////////////////////////////////////////////////////////////
// NORMAL
vecOGF_V _saved_vertices = vertices ;
vecOGF_F _saved_faces = faces ;

{
// prepare progressive geom
VIPM_Init ();
//clMsg("--- append v start .");
for (u32 v_idx=0; v_idx<vertices.size(); v_idx++)
VIPM_AppendVertex (vertices[v_idx].P, vertices[v_idx].UV[0] );
//clMsg("--- append f start .");
for (u32 f_idx=0; f_idx<faces.size(); f_idx++)
VIPM_AppendFace (faces[f_idx].v[0], faces[f_idx].v[1], faces[f_idx].v[2] );
//clMsg("--- append end.");

// Convert
VIPM_Result* VR = 0;
try {
VR = VIPM_Convert (u32(25),1.f,1);
} catch (...) {
progressive_clear () ;
clMsg ("* mesh simplification failed: access violation");
}
if (0==VR) {
progressive_clear () ;
clMsg ("* mesh simplification failed");
}
while (VR && VR->swr_records.size()>0) {
// test metric
u32 _full = vertices.size () ;
u32 _remove = VR->swr_records.size() ;
u32 _simple = _full - _remove ;
float _metric = float(_remove)/float(_full);
if (_metric<metric_limit) {
progressive_clear () ;
clMsg ("* mesh simplified from [%4dv] to [%4dv], nf[%4d] ==> em[%0.2f]-discarded",_full,_simple,VR->indices.size()/3,metric_limit);
break ;
} else {
clMsg ("* mesh simplified from [%4dv] to [%4dv], nf[%4d] ==> em[%0.2f]-accepted", _full,_simple,VR->indices.size()/3,metric_limit);
}

// OK
// Permute vertices
for(u32 i=0; i<vertices.size(); i++)
vertices[VR->permute_verts[i]]=_saved_vertices[i];

// Fill indices
faces.resize (VR->indices.size()/3);
for (u32 f_idx=0; f_idx<faces.size(); f_idx++){
faces[f_idx].v[0] = VR->indices[f_idx*3+0];
faces[f_idx].v[1] = VR->indices[f_idx*3+1];
faces[f_idx].v[2] = VR->indices[f_idx*3+2];
}
// Fill SWR
m_SWI.count = VR->swr_records.size();
m_SWI.sw = xr_alloc<FSlideWindow>(m_SWI.count);
for (u32 swr_idx=0; swr_idx!=m_SWI.count; swr_idx++){
FSlideWindow& dst = m_SWI.sw[swr_idx];
VIPM_SWR& src = VR->swr_records[swr_idx];
dst.num_tris = src.num_tris;
dst.num_verts = src.num_verts;
dst.offset = src.offset;
}

break ;
}
// cleanup
VIPM_Destroy ();
}

//////////////////////////////////////////////////////////////////////////
// FAST-PATH
if (progressive_test() && x_vertices.size() && x_faces.size())
{
// prepare progressive geom
VIPM_Init ();
Fvector2 zero; zero.set (0,0);
for (u32 v_idx=0; v_idx<x_vertices.size(); v_idx++) VIPM_AppendVertex (x_vertices[v_idx].P, zero );
for (u32 f_idx=0; f_idx<x_faces.size(); f_idx++) VIPM_AppendFace (x_faces[f_idx].v[0], x_faces[f_idx].v[1], x_faces[f_idx].v[2] );

VIPM_Result* VR = 0;
try {
VR = VIPM_Convert (u32(25),1.f,1);
} catch (...) {
faces = _saved_faces ;
vertices = _saved_vertices ;
progressive_clear () ;
clMsg ("* X-mesh simplification failed: access violation");
}
if (0==VR) {
faces = _saved_faces ;
vertices = _saved_vertices ;
progressive_clear () ;
clMsg ("* X-mesh simplification failed");
} else {
// Convert
/*
VIPM_Result* VR = VIPM_Convert (u32(25),1.f,1);
VERIFY (VR->swr_records.size()>0) ;
*/

// test metric
u32 _full = vertices.size () ;
u32 _remove = VR->swr_records.size() ;
u32 _simple = _full - _remove ;
float _metric = float(_remove)/float(_full);
clMsg ("X mesh simplified from [%4dv] to [%4dv], nf[%4d]",_full,_simple,VR ? VR->indices.size()/3 : 0);

// OK
vec_XV vertices_saved;

// Permute vertices
vertices_saved = x_vertices;
for(u32 i=0; i<x_vertices.size(); i++)
x_vertices[VR->permute_verts[i]]=vertices_saved[i];

// Fill indices
x_faces.resize (VR->indices.size()/3);
for (u32 f_idx=0; f_idx<x_faces.size(); f_idx++){
x_faces[f_idx].v[0] = VR->indices[f_idx*3+0];
x_faces[f_idx].v[1] = VR->indices[f_idx*3+1];
x_faces[f_idx].v[2] = VR->indices[f_idx*3+2];
}

// Fill SWR
x_SWI.count = VR->swr_records.size();
x_SWI.sw = xr_alloc<FSlideWindow>(x_SWI.count);
for (u32 swr_idx=0; swr_idx!=x_SWI.count; swr_idx++){
FSlideWindow& dst = x_SWI.sw[swr_idx];
VIPM_SWR& src = VR->swr_records[swr_idx];
dst.num_tris = src.num_tris;
dst.num_verts = src.num_verts;
dst.offset = src.offset;
}
}

// cleanup
VIPM_Destroy ();
}

progressive_cs.Leave ();
}




Сообщение отредактировал Yara - 13.01.2021, 07:46
Перейти в начало страницы
 
macron
сообщение 23.01.2021, 04:09
Сообщение #161


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

Репутация:   1690  
Группа: Участник
Сообщений: 7021
Награды: 11
Регистрация: 22.02.2006




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


Еще пара интересных "фишек", пока правил Либертисити. Это только для тех, кто знает толк в извращениях.

1. Возникло подозрение, что не у всех объектов включена альфа. То есть, вместо def_shaders\def_trans_v и def_shaders\def_aref_v для альфа-текстур прописано def_shaders\def_vertex. Но сначала надо было вычислить эти альфа-текстуры, а пересматривать около двух тысяч лень. Берем коммандер, и в каталоге с dds-текстурами игры ищем (Alt/F7) все с текстом dxt5 и dxt3. Нашлось около 170, их отдельно откладываем, открываем каталог с объектами уровня, и так же по Alt/F7 уже ищем все object-файлы, где в тексте упоминается имя конкретной текстуры. Нужный файл можно просто посмотреть по F3, также по F3 находится нужное имя, среди кракозябр будет видно название шейдера и материала.

2. Под конец недели после многочисленных затычек для всяких дырок и щелей в геометрии, практически исчерпались ресурсы 32-битного компилятора. Начал валиться по памяти на стадии " Building sectors...", даже с использованием -noise. Заметил, что компилятор (на одном и том же проекте build.prj) каждый раз оптимизирует геометрию по-разному. Выяснилось, что и память используется немного по разному. В итоге возник коварный план: перезапускать компиляцию 10 раз подряд и в 3 потока (так как используемый безлайтмапный ЧН-компилятор тов. Дизеля на большинстве этапов грузит мой i5 где-то на 25%, трех достаточно). Сбилдил уровень в SDK, потом в коммандере продублировал его в 30 каталогов, создал для xrlc три батника, в каждом указав на конкретные 10 каталогов, запустил и стал ждать. Еще добавил в батники всевозможные ключи для тихой работы в случае ошибки. Bugtrap не вылезал, но всё равно приходилось подходить, раз в 20-30 минут вручную жать табличку "Закрыть программу", тогда батники продолжали работать. Так что, полностью автоматизировать не удалось. Но результат оправдал затраты. Получилось несколько раз доработать карту, запустить такую компиляцию, три компилятора постоянно компилили проекты, в конце валились с ошибкой, но где-то 1-2 раза из 10-15 прокатывало удачно, хотя компилятор тихо продолжал грызть следующий проект. Быстро отличить готовый уровень от полуфабриката легко в коммандере по размеру - в полуфабрикате удачно компилятся только *.cform, а в готовом еще level/geom/geomx, что существенно влияет на размер каталога уровня. Самым сложным был последний билд, когда пришлось впихнуть еще несколько плоскостей, все компиляции валились с ошибкой. Только в седьмой партии один из трех как-то случайно проскочил. Пример батника (одного из трех):

хыы

@del /F /Q /S "bin\xrLC_no_lmap_tweaked\ccc__temp__vertices"
@start /wait bin\xrLC_no_lmap_tweaked\xrLC.exe -nosmg -noise -silent -silent_error_mode -no_call_stack_assert -f liberty_city_packet101
@del /F /Q /S "bin\xrLC_no_lmap_tweaked\ccc__temp__vertices"
@start /wait bin\xrLC_no_lmap_tweaked\xrLC.exe -nosmg -noise -silent -silent_error_mode -no_call_stack_assert -f liberty_city_packet102
@del /F /Q /S "bin\xrLC_no_lmap_tweaked\ccc__temp__vertices"
@start /wait bin\xrLC_no_lmap_tweaked\xrLC.exe -nosmg -noise -silent -silent_error_mode -no_call_stack_assert -f liberty_city_packet103
@del /F /Q /S "bin\xrLC_no_lmap_tweaked\ccc__temp__vertices"
@start /wait bin\xrLC_no_lmap_tweaked\xrLC.exe -nosmg -noise -silent -silent_error_mode -no_call_stack_assert -f liberty_city_packet104
@del /F /Q /S "bin\xrLC_no_lmap_tweaked\ccc__temp__vertices"
@start /wait bin\xrLC_no_lmap_tweaked\xrLC.exe -nosmg -noise -silent -silent_error_mode -no_call_stack_assert -f liberty_city_packet105
@del /F /Q /S "bin\xrLC_no_lmap_tweaked\ccc__temp__vertices"
@start /wait bin\xrLC_no_lmap_tweaked\xrLC.exe -nosmg -noise -silent -silent_error_mode -no_call_stack_assert -f liberty_city_packet106
@del /F /Q /S "bin\xrLC_no_lmap_tweaked\ccc__temp__vertices"
@start /wait bin\xrLC_no_lmap_tweaked\xrLC.exe -nosmg -noise -silent -silent_error_mode -no_call_stack_assert -f liberty_city_packet107
@del /F /Q /S "bin\xrLC_no_lmap_tweaked\ccc__temp__vertices"
@start /wait bin\xrLC_no_lmap_tweaked\xrLC.exe -nosmg -noise -silent -silent_error_mode -no_call_stack_assert -f liberty_city_packet108
@del /F /Q /S "bin\xrLC_no_lmap_tweaked\ccc__temp__vertices"
@start /wait bin\xrLC_no_lmap_tweaked\xrLC.exe -nosmg -noise -silent -silent_error_mode -no_call_stack_assert -f liberty_city_packet109
@del /F /Q /S "bin\xrLC_no_lmap_tweaked\ccc__temp__vertices"
@start /wait bin\xrLC_no_lmap_tweaked\xrLC.exe -nosmg -noise -silent -silent_error_mode -no_call_stack_assert -f liberty_city_packet110


Сообщение отредактировал macron - 23.01.2021, 04:12
Перейти в начало страницы
 

9 страниц V  « < 6 7 8 9 >
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 29.03.2024, 01:38