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

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

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

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

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

> Редактирование движка
RayTwitty
сообщение 22.01.2016, 17:18
Сообщение #4141


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

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




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



Редактирование собранного движка
Проект X-Ray extensions и его вики
Lua-перехватчик от alpet
xrLuaFix от RvP
xrLuaFix в редакции от Artos
xrLuaFix в редакции от svarog2741
LuaXML библиотека парсинга xml-файлов из скриптов (подключается при помощи функции require, которая есть в xrLuaFix)
NoProtect 1.0006 исполнительные файлы из Steam-версии без защиты
Документация к X-Ray (11.10.2004)
Файл заголовков от отладочного 6 патча
Cut X-Ray
Цель проекта - создание отдельных изменений движка игры с их последующей комбинацией с другими правками.
Авторы: SkyLoader, _призрак_
Для платформ: ТЧ 1.0004 и 1.0006, ЧН 1.5.10, ЗП 1.6.02
Адрес проекта на Google Code: https://code.google.com/p/cut-x-ray-project/
Страница на Moddb: http://www.moddb.com/mods/cut-x-ray-project-soc-cs-cop
Пак 1
1. Исправление вылета "can't find rank" для оружий.

2. Смерть от первого лица.
Видео: https://www.youtube.com/watch?v=c-4dNyvizxY

3. Collide
Возвращена коллизия мертвых тел с неписями и актором, как она сделана в старой физике билдов.
Видео: https://www.youtube.com/watch?v=1xNn04f3djc

4. Круглый прицел.
Возвращен круглый прицел вместо перекрестья, как билдах.

5. Исправление вида от 3-го лица.
Изменено положение камеры от 3-го лица (1). Стрельба идет по перекрестью, а не по направлению актора. Если включить вид от 3-го лица (1) и удерживать Shift, то ГГ будет автоматически целиться в ближайшего непися или монстра.
Проблемы: Стрельба по перекрестью идет также при виде от 3-го лица (2). Если при автоматическом нацеливании непись/монстр удалится или перейдет в оффлайн, будет движковый безлоговый вылет. Я думал вырезать это нацеливание, но решил оставить.
Пак 2
1. Luminosity progress (только ТЧ)
Возвращение шкалы освещения вместо шкалы "заметности" ГГ, как в билдах.

2. Запрет на доставание оружия в машине (только ТЧ и ЧН) и на лестнице (ТЧ, ЧН, ЗП).

3. Руки на руле в машине. (только ТЧ и ЧН)
Видео: https://www.youtube.com/watch?v=nYrnrfGkO7Y

4. Отсутствие распознавания неписей перекрестием:
При наведении на непися перекрестье имеет дефолтный цвет. Также не показывает информацию о неписе, если смотреть на него.

5. Bind_object:
Возможность использовать скрипты в мультиплеере.

6. Из оружия на классе бинокля можно стрелять (только ТЧ)
Пак 3
1. Включение некоторых команд без использования ярлыка. Можно патчить по отдельности. Команды: -smap_4096 (максимально улучшенные карты теней), -mblur (включение блюра).

2. Измененная анимация безоружного гг.

3. Увеличение дистанции диалога с неписями (для создания сценок на расстоянии)

4. Исправление вылета при использовании предметов из трупов неписей.
В отличии от версии Kolmogor'а, здесь отключено само меню использования.

5. Возможность поднимать болты как обычные инвентарные предметы (комбинировать с модом Charsi "Заканчивающиеся болты")
Скачать все паки
Правки от RayTwitty aka Shadows
Geometry LOD fix (CS 1.5.10) – расширение диапазона консольной команды r__geometry_lod
Camblu crosshair for build 1865 – замена перекрестия прицела на кружок в билде 1865
Vertex buffer fix for NC Project – исправление вылета по переполнению буфера в NC Project
NO 100 sovetov fix (COP 1.6.02) – убирает надписи "100 советов" с экрана загрузки
Demo Record fix (SOC 1.0006) – убирает красные надписи в режиме demo_record
Weapon Bobbing Beta (SOC 1.0006) – раскачка оружия при ходьбе (бета-версия)
Build Loadscreen (SOC 1.0006) – билдовский экран загрузки со статичным изображением
Detail Density fix (SOC 1.0006) – расширение диапазона консольной команды r__detail_density
Mipbias fix (SOC 1.0006) – расширение диапазона консольных команд r1_tf_mipbias и r2_tf_mipbias
No Quick Use fix (SOC 1.0006) – запрет на использование аптечек и бинтов по быстрым клавишам
Sun Near fix (SOC 1.0006) – расширение диапазона консольной команды r2_sun_near
Target Font (SOC 1.0006) – замена шрифта под перекрестием прицела на шрифт DI
Unload Magazine fix (SOC 1.0006) – фикс скриптовой функции unload_magazine - теперь патроны разряжаются в инвентарь
PNG Screenshots (SOC 1.0006) – игра теперь делает качественные скриншоты в формате png

Скачать все правки
Правки от K.D.
xrPatch v0.8 – патчер для увеличения радиуса прорисовки травы
detail radius+density fix [SOC 1.0006] – добавляет регулировку радиуса отрисовки травы через консольную команду и расширяет диапазон регулировки плотности травы до 0.02
Правки от macron
Исправленный экзешник для SoC 1.0006
Доработанный и исправленный экзешник для ТЧ 1.0006 (на основе Steam-версии без защиты)
Включает в себя исправления вылетов, а также очистку лога игры от засоряющих сообщений. Более подробное описание внутри архива.

Ссылка: https://yadi.sk/d/At9Tw0ueSaDyS
X-Ray extensions portable
Портативная версия расширений движка "X-Ray extensions"
Платформы: ТЧ 1.0006, ЧН 1.5.10, ЗП 1.6.02
Эта версия имеет все нужные библиотеки и патчеры, а также настроенные bat-файлы для успешной компиляции. Более подробное описание внутри архива.

Ссылка: https://yadi.sk/d/OLYPbDXWjyEkH
Правки от Kolmogor
Правленный xrGame для SoC 1.0004
Изменения:
1. Добавлена консольная команда fov [5.0, 180.0] - изменяет глобальный FOV камеры.
2. Добавлена консольная команда k_ammo_on_belt [on\off] - включает\выключает использование патронов с пояса.
3. Артефакты работают из рюкзака, а пояс служит контейнером.

Ссылка: http://rusfolder.com/42636653
Правки от Kontro-zzz
Изменение значения hud_fov
Правки фиксированных значений параметра hud_fov - 0.37 либо 0.53, для CS 1.5.10 и для билда 3120.
Должно работать на GOG версии и no DVD.
Редактирование исходников
Скачать все исходники отсюда или с оригинальных постов SoC 1.0007rc1 SoC и CS CoP X-Ray 2
Репозитории

[SoC]
() Alpet & KD / оригинальное репо [Архивная ценность]
() xrDev [Архивная ценность]
() CleanXR [Архивная ценность]
() KRoddin [Архивная ценность][/b]
() Lost Alpha old [Архивная ценность]
() Репозиторий OGSE | Самый актуальный форк (KRoddin) | Версия от Abramcumner с небольшими исправлениями
() 1exx [Архивная ценность]
() Shkiper2012 [Архивная ценность]
() Morrey (dx10) [Архивная ценность]
() OP Engine (Winsor)
() Kondr48 [Архивная ценность]

[CS]
() RedPython [Архивная ценность]
() xrDev [Архивная ценность]
() OpenXRay [Архивная ценность]
() Charsi82 [Архивная ценность]
() Abramcumner | drksnc (MP) [Архивная ценность]
() RainbowZerg [Архивная ценность]

[CoP]
() Forser
() OpenXRay
() CoC | Demosfen | Last Day
() Abramcumner
() Im-Dex [Архивная ценность]
() xrDev [Архивная ценность]
() Tron [Архивная ценность]
() mrmnwar [Архивная ценность]
() Avo [Архивная ценность]
() vincent-t [Архивная ценность] | Старый репозиторий
() Shoкer
() Morrey CS-COP [Архивная ценность]
() Morrey [Архивная ценность]

[2.0]
() Saas
() xrOxy
Компиляторы x64: SoC CS CoP
NDA GSC
Оригинальные версии движков
Могут понадобиться для восстановления оригинальных библиотек.
SoC SoC ENG CS CoP
GOG version [1.0006, 1.5.10, 1.6.02]
Multi-patch version [1.0006, 1.5.10, 1.6.02]
Официальный мультиплеерный (невышедший) патч для SoC 1.0007rc1.
Уроки
Изменение плотности травы и создание патча через IDA Pro
Автор: _призрак_
edited by: RayTwitty aka Shadows

Для редактирования нам понадобится программа IDA Pro.

1. Запускаем IDA Pro.
2. Загружаем бинарник рендера xrRender_R1.dll или xrRender_R2.dll.
3. Теперь необходимо найти, где регистрируется консольная команда. Жмем Ctrl+T и вводим r__detail_density.
4. Находим функцию и тщательно ее разбираем (я ее полностью разбирать не буду, только укажу, где задаются параметры:
Код регистрации консольной команды
Код
fld ds:flt_10064400 -- нижнее ограничение равное 0.6
or dword_1007CACC, 8
sub esp, 8
fstp [esp+30h+var_2C]
mov ecx, offset unk_1007CA9C
fld ds:flt_10064380 -- верхнее ограничение равное 0.2
fstp [esp+30h+var_30]
push offset aSs; "ЪЩЩ>"
push offset aR__detail_dens; "r__detail_density"
call ds:??0CCC_Float@@QAE@PBDPAMMM@Z; CCC_Float::CCC_Float(char const *,float *,float,float)
push offset sub_1005E080; void (__cdecl *)()
call _atexit
add esp, 4
Если вы заметили, чтобы трава стала плотней нужно уменьшить параметр, а чтобы травы стало меньше, нужно параметр увеличить
5. Нам нужно увеличить плотность травы: следовательно нужно изменить верхнее ограничение. Как это сделать? Есть три варианта:

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

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

Третий: создать переменную. Отличный вариант. Единственный минус - я не знаю как это сделать smile.gif

Я пошел по второму пути. Два раза щелкнув на ds:flt_10064380, IDA отправила меня в дебри под названием .rdata. Там я нашел переменную, которая называлась - flt_1006452C и которая имела значение 0.0720999.
Насколько я понял, flt_1006452C - не является названием переменной, это сборка из двух показателей - (тип числа)_(смещение). В нашем случае это число типа float, которое находится по адресу 1006452C. Ну что же, приступим к редактированию!
6. Отправляемся в самое начало файла. Как? Сверху есть что-то типа статус-бара - строка состоящая из синего, серого, черного цвета. Нажимаем там в любом месте мышкой и ведем влево до конца.
7. Опять ищем r__detail_density. Находим в этой функции строку fld ds:flt_10064338. Дальше самое интересное - жмем на вкладку Hex View и там у нас выделяются какие-то цифры. Это наша переменная 10064338, только написано наоборот. Сравните:
Код
38 43 06 10
10 06 43 38
Похоже, не правда ли? smile.gif
8. Начинаем редактировать. Нам нужно поменять 4338 на 452C (т.е. заменить ссылку с одной переменной на другую). Жмем правой кнопкой мыши на этих цифрах и выбираем пункт Edit. Меняем 38 43 на 2С 45. Дальше жмем где-нибудь в коде (это нужно сделать обязательно!).
9. После этого жмем правой кнопкой мыши и выбираем commit changes. Таким образом, мы поменяли ссылку на переменную и теперь верхнее ограничение будет равно значению из другой переменной.
Но IDA не меняет исходный файл. В нашем случае мы можем только создать файл изменений. Делается это так: File -> Produce file -> Create DIF file. Назовем его test. Этот файл можно открыть при помощи блокнота и посмотреть, что получилось.
10. Теперь необходимо внести изменения из этого файла в движок. Это можно сделать при помощи патчера bpatch. Качаем, смотрим и запускаем bpatch.cmd. Я думаю, что батник вы сможете изменить самостоятельно (настроить пути файлов и т.п.) - там все элементарно.
11. Все! Изменения внесены в движок, можно тестировать smile.gif

Огромное спасибо Kolmogor'у и malandrinus'у. Если бы не они, я бы ничего не сделал. Спасибо вам еще раз.
Спасибо и Rolan'у, с которым я очень много беседовал и тоже узнал много чего smile.gif




Сообщение отредактировал RayTwitty - 27.08.2021, 00:15
Перейти в начало страницы
 
242 страниц V  « < 206 207 208 209 210 > »   
Начать новую тему
Ответов
dPlayer
сообщение 12.10.2019, 23:40
Сообщение #4142


Самый некомпетентный на форуме
********************

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




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


Цитата(Zagolski @ 13.10.2019, 01:11) *
На оригинальном ЗП движке?

Сталкивался с такой фигней и на орижинал зп и на чн на 10-11дх.
Перейти в начало страницы
 
Карлан
сообщение 12.10.2019, 23:40
Сообщение #4143


Геймер
******

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




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


Цитата(DiaWorld @ 12.10.2019, 21:49) *
Цитата(mortan @ 11.10.2019, 20:00) *
Zagolski, сейчас такая же проблема у НП, если во время запуска куда-нибудь кликнуть то игра запускается в маленьком окошке, помогает изменение любой настройки туда-сюда.

Кста поддерживаю, я в зп с этим неприятным багом сталкивался именно со включенным 10/11 директом :/

Совершенно верно. Эта проблема еще ЧНовского рендера.

Цитата(mortan @ 11.10.2019, 21:00) *
Zagolski, сейчас такая же проблема у НП, если во время запуска куда-нибудь кликнуть то игра запускается в маленьком окошке, помогает изменение любой настройки туда-сюда.

Не лучший пример. В крайней лост альфе этот класс вообще добили, там он еще хуже чем в ЗП себя чувствует.

Цитата(Zagolski @ 11.10.2019, 20:18) *
Цитата(mortan @ 09.10.2019, 03:55) *
SW_MINIMIZE вроде бы то что тебе нужно. Ну и SW_RESTORE - разворачивание окна.

Да, там в OnAppActivate они. С первого взгляда вроде все корректно работает под отладчиком. Но все перекопал, ничего не помогает. Уже грешу на что-то другое, может UI или ui-конфиги. Там что интересно, игра сворачивается в маленькое окно (где-то 300х300), только если из меню сворачивать или вообще до первой загрузки игры. Причем при сворачивании игра из полного экрана преобразуется в маленькое, но оно не сворачивается, так и остается висеть. А вернуть все обратно можно, только если переключить в оконный и обратно. Откуда вообще эти данные 300х300 для окна берутся? Ерунда какая-то. Это у меня всплыло, когда я ванильный ТЧ рендер R2 переписал на R4 (без вывода в абстрактные классы). На ТЧ движке.

Артем бьет в бубен, и я здесь smile.gif. Как я тебе и писал где-то полтора месяца назад, проблема в том, что в ЧН/ЗП класс CHW написан с ошибками. В ЧН вообще катастрофические ошибки допущены, которые описаны в литературе о проектировании рендера (не только в CHW, но и в других местах). Для корректной реализации рендера я бы рекомендовал написать этот класс самостоятельно, и, возможно, для удобства с использованием CX (получишь автоматическую работу с памятью, ну и просто удобно работать с разными версиями DX11 (например DX11.0/DX11.4 в одном месте через метод As впиливаешь)). У тебя рендер сделан примерно как у меня по проектированию, так что у тебя еще есть проблемы с самой системой работы классов движка, это как бы скилом тащится, у меня с того момента как я клиент-сервер копал куча опыта осталась, в частности по тому, как все классы устроены и взаимосвязаны. В рамках Prosectors я это все переделываю. Конкретно эта проблема связана со свопчейном DXGI.

Еще один забавный момент, что даже нормальную аппаратную вертикалку не сделать на том рендере, который в оригинале ЧН/ЗП, там бампать надо некоторые компоненты, иначе костылями.

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



--------------------
Перейти в начало страницы
 
Xottab_DUTY
сообщение 13.10.2019, 05:14
Сообщение #4144


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

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




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


xrModder, ниоткуда. В ТЧ его нет. Просто пропусти этот кусочек кода.


--------------------
OpenXRay – Ориентир на новое, с памятью о старом. © Collector
Перейти в начало страницы
 
Zagolski
сообщение 13.10.2019, 05:43
Сообщение #4145


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

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




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


Цитата(Карлан @ 12.10.2019, 23:40) *
Конкретно эта проблема связана со свопчейном DXGI.

И на этом спасибо. Хотя странно ведь, у меня рядом лежит движок, в котором я тоже ТЧ на ЗП переделывал, но там я переносил все как в ЗП через фабрику, тупо копипастой. И там никаких проблем со сворачиванием нет вообще. Лишь иной раз в оконном режиме окно инициализируется не слишком ровно, смещенным в сторону. А в остальном порядок.
А сейчас каждый запуск проблемы, если из меню свернуть игру - косяк. Разрешение там 640х480, это по дефолту в CRenderDevice::Initialize выставляется. Да и что у меня примечательно, так после первого резета становится все нормально со сворачиванием. О как.
Перейти в начало страницы
 
macron
сообщение 13.10.2019, 09:33
Сообщение #4146


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

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




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


Цитата(Zagolski @ 13.10.2019, 05:43) *
Цитата(Карлан @ 12.10.2019, 23:40) *
Конкретно эта проблема связана со свопчейном DXGI.

Кстати, в ЧН/Гипердвижке с dx-10 рендером баги тоже есть. Лечил:

1. Подстановкой в bin старых dx10/dxgi-дллей. Там косяки связаны с Микрософтом, что новые dx10-длли в семерке глючат со старыми dx10-играми типа ЧН/ЗП/GTA4. У меня без них шли постоянные вылеты по рендеру.
https://yadi.sk/d/xew4TBkwnA8OpA

2. Двойным выполнением команды vid_restart. Прописал в ui_main_menu.script в функцию function main_menu:__init() super()
Цитата
function main_menu:__init() super()
if not level.present() then
get_console():execute("vid_restart")
get_console():execute("vid_restart")
end


Сообщение отредактировал macron - 13.10.2019, 09:35
Перейти в начало страницы
 
DiaWorld
сообщение 13.10.2019, 14:00
Сообщение #4147


Новичок
*

Репутация:   0  
Группа: Участник
Сообщений: 9
Регистрация: 25.06.2019




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


Цитата(Zagolski @ 12.10.2019, 23:11) *
Цитата(DiaWorld @ 12.10.2019, 20:49) *
Кста поддерживаю, я в зп с этим неприятным багом сталкивался именно со включенным 10/11 директом :/

На оригинальном ЗП движке?

Да, в оригинальном чн тоже самое кстати было
Перейти в начало страницы
 
xrModder
сообщение 13.10.2019, 16:32
Сообщение #4148


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

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




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


Цитата(Xottab_DUTY @ 13.10.2019, 08:14) *
xrModder, ниоткуда. В ТЧ его нет. Просто пропусти этот кусочек кода

g_current_render тоже забыл...
Перейти в начало страницы
 
Xottab_DUTY
сообщение 13.10.2019, 16:37
Сообщение #4149


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

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




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


xrModder, а я думал, что там он точно есть... Тогда вместо if (g_current_renderer == 1) проверяй if (!psDeviceFlags.test(rsR2))

Сообщение отредактировал Xottab_DUTY - 13.10.2019, 16:39


--------------------
OpenXRay – Ориентир на новое, с памятью о старом. © Collector
Перейти в начало страницы
 
RayTwitty
сообщение 13.10.2019, 18:59
Сообщение #4150


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

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




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


Цитата(Xottab_DUTY @ 13.10.2019, 16:37) *
Тогда вместо if (g_current_renderer == 1) проверяй if (!psDeviceFlags.test(rsR2))

Может тогда сразу if (psDeviceFlags.test(rsR1))


--------------------
Перейти в начало страницы
 
Dezowawe
сообщение 13.10.2019, 19:02
Сообщение #4151




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




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


Привет всем с толкнулся с проблемой сборки исходников от xrModder игра вылетает с логом
stack trace:

0023:6CA329C5 xrParticles.dll, PAPI::ParticleEffect::Add(), e:\x-ray engine\xrengine\sources\xrparticles\particle_effect.h, 76
0023:6CA3BCA2 xrParticles.dll, PAPI::PASource::Execute(), e:\x-ray engine\xrengine\sources\xrparticles\particle_actions_collection.cpp, 1407
0023:6A793B4D xrRender_R1.dll, PS::CParticleEffect::OnFrame(), e:\x-ray engine\xrengine\sources\xrrender\particleeffect.cpp, 111
0023:6A78FDE4 xrRender_R1.dll, PS::CParticleGroup::SItem::OnFrame(), e:\x-ray engine\xrengine\sources\xrrender\particlegroup.cpp, 278
0023:6A790576 xrRender_R1.dll, PS::CParticleGroup::OnFrame(), e:\x-ray engine\xrengine\sources\xrrender\particlegroup.cpp, 405
0023:55F997F7 xrGame.dll, CParticlesObject::PerformAllTheWork(), e:\x-ray engine\xrengine\sources\xrengine\xrgame\particlesobject.cpp, 185
0023:55F9998B xrGame.dll, CParticlesObject::Play(), e:\x-ray engine\xrengine\sources\xrengine\xrgame\particlesobject.cpp, 126
0023:55FBBA92 xrGame.dll, CCustomZone::PlayIdleParticles(), e:\x-ray engine\xrengine\sources\xrengine\xrgame\customzone.cpp, 699
0023:55FBE93B xrGame.dll, CCustomZone::net_Spawn(), e:\x-ray engine\xrengine\sources\xrengine\xrgame\customzone.cpp, 364
0023:56145DC5 xrGame.dll, CLevel::g_sv_Spawn(), e:\x-ray engine\xrengine\sources\xrengine\xrgame\level_network_spawn.cpp, 108
0023:56146117 xrGame.dll, CLevel::cl_Process_Spawn(), e:\x-ray engine\xrengine\sources\xrengine\xrgame\level_network_spawn.cpp, 40
0023:56025219 xrGame.dll, CLevel::ProcessGameEvents(), e:\x-ray engine\xrengine\sources\xrengine\xrgame\level.cpp, 420
0023:56025ADB xrGame.dll, CLevel::OnFrame(), e:\x-ray engine\xrengine\sources\xrengine\xrgame\level.cpp, 480
0023:00351C9E xrEngine.exe, CRegistrator<pureFrame>::Process(), e:\x-ray engine\xrengine\sources\xrengine\pure.h, 77
0023:00392979 xrEngine.exe, CRenderDevice::FrameMove(), e:\x-ray engine\xrengine\sources\xrengine\device.cpp, 359
0023:00392E53 xrEngine.exe, CRenderDevice::Run(), e:\x-ray engine\xrengine\sources\xrengine\device.cpp, 226
0023:003BC755 xrEngine.exe, Startup(), e:\x-ray engine\xrengine\sources\xrengine\x_ray.cpp, 266
0023:003BCD47 xrEngine.exe, WinMain_impl(), e:\x-ray engine\xrengine\sources\xrengine\x_ray.cpp, 683
0023:003BCEC7 xrEngine.exe, WinMain(), e:\x-ray engine\xrengine\sources\xrengine\x_ray.cpp, 743
0023:0036B353 xrEngine.exe, __tmainCRTStartup(), f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c, 547
0023:75B4344D kernel32.dll, BaseThreadInitThunk()
0023:77489802 ntdll.dll, RtlInitializeExceptionChain()
0023:774897D5 ntdll.dll, RtlInitializeExceptionChain()
Перейти в начало страницы
 
xrModder
сообщение 13.10.2019, 19:27
Сообщение #4152


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

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




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


Dezowawe, версия Visual Studio должен быть 2010 + SP1 + патч для SP1 (KB2736182), ты всё установил?

Да и зачем тебе эти исходники, если у тебя есть Lost Alpha?
Перейти в начало страницы
 
Xottab_DUTY
сообщение 13.10.2019, 19:27
Сообщение #4153


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

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




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


Цитата(RayTwitty @ 13.10.2019, 20:59) *
Цитата(Xottab_DUTY @ 13.10.2019, 16:37) *
Тогда вместо if (g_current_renderer == 1) проверяй if (!psDeviceFlags.test(rsR2))

Может тогда сразу if (psDeviceFlags.test(rsR1))

Конечно, сразу бы... Если бы флаг rsR1 там был. А его нет. rolleyes.gif


--------------------
OpenXRay – Ориентир на новое, с памятью о старом. © Collector
Перейти в начало страницы
 
xrModder
сообщение 13.10.2019, 19:30
Сообщение #4154


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

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




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


Можно попробовать if (!psDeviceFlags.test(rsR2) != 1), но не думаю что это поможет.
rolleyes.gif
Перейти в начало страницы
 
RayTwitty
сообщение 13.10.2019, 19:30
Сообщение #4155


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

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




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


Цитата(Xottab_DUTY @ 13.10.2019, 19:27) *
Цитата(RayTwitty @ 13.10.2019, 20:59) *
Цитата(Xottab_DUTY @ 13.10.2019, 16:37) *
Тогда вместо if (g_current_renderer == 1) проверяй if (!psDeviceFlags.test(rsR2))

Может тогда сразу if (psDeviceFlags.test(rsR1))

Конечно, сразу бы... Если бы флаг rsR1 там был. А его нет. rolleyes.gif

Интуитивно-понятный движок biggrin.gif


--------------------
Перейти в начало страницы
 
Xottab_DUTY
сообщение 13.10.2019, 19:48
Сообщение #4156


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

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




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


biggrin.gif

Ну, вообще, тут всё понятно. Первым же был сделан R1, а когда ввели R2, разработчики исходили из того, что если флаг rsR2 не стоит, значит включен рендер R1. Это в ЧН и ЗП уже больше рендеров, а тут в ТЧ только одна проверка "если не Р2, значит Р1" rolleyes.gif


--------------------
OpenXRay – Ориентир на новое, с памятью о старом. © Collector
Перейти в начало страницы
 
xrModder
сообщение 13.10.2019, 21:31
Сообщение #4157


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

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




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


Цитата(Xottab_DUTY @ 12.10.2019, 19:10) *
Помнится, где-то на этом форуме Загольский замечал, что реализация тени ГГ от КД на динамике несколько не оптимизирована, т.к. несколько раз рендеринг происходит.

Кому интересно, этот момент я поправил и теперь тень ГГ что на статике, что на динамике использует одну и ту же функцию для рендера (унификация) и вызывается только один раз. (оптимизация) smile.gif
Коммит: https://github.com/OpenXRay/xray-16/commit/...f8a73658b2ab3fd
Там же и убрал консольную команду включения/выключения тени от ГГ, чтобы рендерилась всегда. Это не очень хорошо когда на R1 тень есть всегда, а на R2+ её можно выключить unsure.gif
опциональный вампир biggrin.gif

Для вставки в оригинальный движок надо заменить GEnv.CurrentRenderer на g_current_renderer, а GEnv.Render на ::Render (и два двоеточия тоже нужны!)

Из-за бага VS компиляция идёт неправильно (удалил временные файлы и компилировал по новому). Теперь работает. Но вот проблема: за пределы r2_sun_near тень актёра исчезает blink.gif
Перейти в начало страницы
 
Zagolski
сообщение 13.10.2019, 23:02
Сообщение #4158


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

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




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


Цитата(macron @ 13.10.2019, 09:33) *
2. Двойным выполнением команды vid_restart. Прописал в ui_main_menu.script в функцию function main_menu:__init() super()

Спасибо, помогло. Теперь больше не сворачивается в маленькое окошко, что самое главное. От этого были основные проблемы. Правда, все равно остался косяк, что первое сворачивание нужно делать дважды (при первом не сворачивается).

Цитата(xrModder @ 13.10.2019, 21:31) *
Теперь работает. Но вот проблема: за пределы r2_sun_near тень актёра исчезает

Ее там не будет, тень же только в первом каскаде отрисовывается. А так да, возможны ситуации, когда ГГ стоит где-нибудь на крыше и смотрит по направлению солнца, но его тени на земле нет. Потому как она должна быть во втором или даже третьем каскаде, если совсем далеко. Но такие ситуации бывают крайне редко.
Перейти в начало страницы
 
RayTwitty
сообщение 14.10.2019, 00:24
Сообщение #4159


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

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




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


Цитата(Zagolski @ 13.10.2019, 23:02) *
Но такие ситуации бывают крайне редко.

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

Сообщение отредактировал RayTwitty - 14.10.2019, 00:24


--------------------
Перейти в начало страницы
 
Dezowawe
сообщение 14.10.2019, 13:46
Сообщение #4160




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




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


xrModder у меня нет ЛА и Visual Studio 2010 + SP1 + патч SP1 все установлено накатывал на ТЧ 10006
Перейти в начало страницы
 
Карлан
сообщение 14.10.2019, 16:24
Сообщение #4161


Геймер
******

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




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


Цитата(Zagolski @ 13.10.2019, 06:43) *
Цитата(Карлан @ 12.10.2019, 23:40) *
Конкретно эта проблема связана со свопчейном DXGI.

И на этом спасибо. Хотя странно ведь, у меня рядом лежит движок, в котором я тоже ТЧ на ЗП переделывал, но там я переносил все как в ЗП через фабрику, тупо копипастой. И там никаких проблем со сворачиванием нет вообще. Лишь иной раз в оконном режиме окно инициализируется не слишком ровно, смещенным в сторону. А в остальном порядок.
А сейчас каждый запуск проблемы, если из меню свернуть игру - косяк. Разрешение там 640х480, это по дефолту в CRenderDevice::Initialize выставляется. Да и что у меня примечательно, так после первого резета становится все нормально со сворачиванием. О как.


Я же тебе говорил еще полгода назад - не надо брать рендеры из ЧН и ЗП smile.gif, там они мало того что с ошибками, так еще и под проектирование ТЧ совершенно не подходят (да-да, то самое васянство с IKinematics и т.п., о котором я тоже не раз говорил). Все нужно писать самому.

Ну ладно. Проблема запуска в мелком окне у тебя и в ЧН/ЗП связана с особенностями работы DXGI с фулскрином, она не умеет в фулскрин так как дх9. При переходе в фулскрин из сворота она сначала разворачивает в окно, а потом разворачивает в фулскрин, тоже самое со своротом, она сначала сворачивает в окно, а потом уже сворачивает само приложение. Запускается в мелком окне как-раз тоже из-за вот этих премудростей DXGI.

Можешь забирать мое решение (обрати внимание, что запускается оно тоже в окне (в не-топ режиме, но уже с правильным резолюшном), но при получении актива разворачивается в фуллскрин и далее уже подхватывает резолюшены из самого D3D):

CRenderDevice::Initialize
void CRenderDevice::Initialize()
{
Log("Initializing Engine...");
TimerGlobal.Start ();
TimerMM.Start ();

// Unless a substitute hWnd has been specified, create a window to render into
if( m_hWnd == NULL)
{
const char* wndclass ="_XRAY_";

// Register the windows class
HINSTANCE hInstance = (HINSTANCE)GetModuleHandle(0);
WNDCLASS wndClass = { 0, WndProc, 0, 0, hInstance,
LoadIcon( hInstance, MAKEINTRESOURCE(IDI_ICON1) ),
LoadCursor( NULL, IDC_ARROW ),
(HBRUSH)GetStockObject(BLACK_BRUSH),
NULL, wndclass };
RegisterClass( &wndClass );

// Set the window's initial style
m_dwWindowStyle = WS_BORDER | WS_DLGFRAME;

// Set the window's initial width
u32 screen_width = GetSystemMetrics(SM_CXSCREEN);
u32 screen_height = GetSystemMetrics(SM_CYSCREEN);

DEVMODE screen_settings;
memset(&screen_settings, 0, sizeof(screen_settings));
screen_settings.dmSize = sizeof(screen_settings);
screen_settings.dmPelsWidth = (unsigned long)screen_width;
screen_settings.dmPelsHeight = (unsigned long)screen_height;
screen_settings.dmBitsPerPel = 32;
screen_settings.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;

ChangeDisplaySettings(&screen_settings, CDS_FULLSCREEN);

// Create the render window
m_hWnd = CreateWindow( wndclass, "S.T.A.L.K.E.R.: Shadow Of Chernobyl", m_dwWindowStyle,
/*rc.left, rc.top, */0, 0,
screen_width, screen_height, 0L,
0, hInstance, 0L );
}

// Save window properties
m_dwWindowStyle = GetWindowLong( m_hWnd, GWL_STYLE );
GetWindowRect ( m_hWnd, &m_rcWindowBounds );
GetClientRect ( m_hWnd, &m_rcWindowClient );

// Command line
char *lpCmdLine = Core.Params;
if (strstr(lpCmdLine,"-gpu_sw")!=NULL) HW.Caps.bForceGPU_SW = TRUE;
else HW.Caps.bForceGPU_SW = FALSE;
if (strstr(lpCmdLine,"-gpu_nopure")!=NULL) HW.Caps.bForceGPU_NonPure = TRUE;
else HW.Caps.bForceGPU_NonPure = FALSE;
if (strstr(lpCmdLine,"-gpu_ref")!=NULL) HW.Caps.bForceGPU_REF = TRUE;
else HW.Caps.bForceGPU_REF = FALSE;
}


Надеюсь это окончательно решит твою проблему smile.gif. Фикс макрона это конечно костыль, там надо по другому делать, я как CHW свой допишу, то скину тебе в личке (для ЧН/ЗП он уже просто так не подойдет, а для твоего вполне), сейчас я просто занят прицелами и пост-процессинговыми искажениями, не до этого пока. Гоу диретыкс 12 бек ту беком biggrin.gif.

P.S. Для определения размеров в принципе можно и десктоп взять, код тогда будет выглядеть вот так:
Код
        RECT desktop;
        const HWND hDesktop = GetDesktopWindow();
        GetWindowRect(hDesktop, &desktop);
        u32 screen_width = desktop.right;
        u32 screen_height = desktop.bottom;


В общем если буду тебе еще нужен - знаешь где меня найти wink.gif.

Сообщение отредактировал Карлан - 14.10.2019, 16:56


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

242 страниц V  « < 206 207 208 209 210 > » 
Ответить в данную темуНачать новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 19.04.2024, 12:16