[RenderEdge] Экспериментальная версия

» опубликован

Актуальная версия v0.1.2a

Особенности

  • (+) Каскадные тени;
  • (+) Расчёт освещения в линейном пространстве;
  • (+) Physically Based Shading;
  • (+) ACES Tonemapping and Color Correction;
  • (+) Screen Space Reflections;
  • (+) Temporal Anti-Aliasing;
  • (+) Contact Shadows;
  • (-) Использование моделей из .obj, .3ds, .dae, .blend файлов;
  • (-) Модификация .mdx/.mdl формата моделей: добавление карт нормалей и .dds/.blp2 формата текстур;
  • (+) Поддержка пользовательских шейдеров для пост-эффектов и моделей;
  • (-) Модификация War3 Model Editor;
  • (-) Добавление новых возможностей в World Editor.
Баги:
  • Вылеты игры при переключении режима вертикальной синхронизации в главном меню в оконном режиме;
  • Некоторые пост-эффекты работают некорректно при ограниченном viewport.

Скриншоты

» Старая версия

Установка

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

Требования:

Редактирование стандартных шейдеров

Всего 4 шейдера, которые можно редактировать: Standard.fx, Shadows.fx, PostProcess.fx и Skybox.fx. Они должны быть скомпилированы с помощью FXC, находиться в папке Shaders и иметь расширение .cso.


В редакторе реестра можно включить опцию, позволяющую загружать файл настроек, шейдеры и текстуры из папки с RenderEdge: HKEY_CURRENT_USER\Software\RenderEdge\AllowLocalFiles
Последовательность поиска ресурсов: загруженная карта, папка с RenderEdge, архив RenderEdge_exp.mpq.

Для подключения RenderEdge к Jass New Gen Pack (exp. 2) отредактируйте файл wehack.lua следующим образом:
» wehack.lua
-- # begin RenderEdge #
RenderEdgePath = grim.getregpair("HKEY_CURRENT_USER\\Software\\RenderEdge", "InstallPath")
haveRenderEdge = grim.exists(RenderEdgePath .. "\\RenderEdge.exe")

function toggleRenderEdgeDebug(checked)
    if checked then
		grim.setregdword("HKEY_CURRENT_USER\\Software\\RenderEdge", "Debug", 1)
	else
		grim.setregdword("HKEY_CURRENT_USER\\Software\\RenderEdge", "Debug", 0)
	end
end

function toggleRenderEdgeAllowLocalFiles(checked)
    if checked then
		grim.setregdword("HKEY_CURRENT_USER\\Software\\RenderEdge", "AllowLocalFiles", 1)
	else
		grim.setregdword("HKEY_CURRENT_USER\\Software\\RenderEdge", "AllowLocalFiles", 0)
	end
end

if haveRenderEdge then
	RenderEdgeMenu = wehack.addmenu("RenderEdge")
	
	RenderEdgeEnabled = TogMenuEntry:New(RenderEdgeMenu, "Run with RenderEdge", nil, true)
	
	RenderEdgeDebug = TogMenuEntry:New(RenderEdgeMenu, "Debug Mode", 
	    function(self) toggleRenderEdgeDebug(self.checked) end, false)
	if grim.getregpair("HKEY_CURRENT_USER\\Software\\RenderEdge", "Debug") == 1 then
		wehack.checkmenuentry(RenderEdgeMenu, RenderEdgeDebug, 1)
	else
		wehack.checkmenuentry(RenderEdgeMenu, RenderEdgeDebug, 0)
	end
	
	RenderEdgeAllowLocalFiles = TogMenuEntry:New(RenderEdgeMenu, "Allow Local Files", 
	    function(self) toggleRenderEdgeAllowLocalFiles(self.checked) end, false)
	if grim.getregpair("HKEY_CURRENT_USER\\Software\\RenderEdge", "AllowLocalFiles") == 1 then
		wehack.checkmenuentry(RenderEdgeMenu, RenderEdgeAllowLocalFiles, 1)
	else
		wehack.checkmenuentry(RenderEdgeMenu, RenderEdgeAllowLocalFiles, 0)
	end
end
-- # end RenderEdge #

function testmap(cmdline)
	if haveRenderEdge and RenderEdgeEnabled.checked then
		local pos = string.find(cmdline, ".exe")
		cmdline = string.sub(cmdline, 5 + pos)
		cmdline = RenderEdgePath .. "RenderEdge.exe " .. cmdline
	end
	
	if wh_opengl.checked then
		cmdline = cmdline .. " -opengl"
	end
	if wh_window.checked then
		cmdline = cmdline .. " -window"
	end
	wehack.execprocess(cmdline)
end

Изменения

Следите за разработкой RenderEdge на Trello.
v0.1.2a
  * Добавлена возможность выбора температуры направленного источника света;
  * Добавлена обработка стандартных теней юнитов на воде;
  * Добавлена возможность выбрать единицу измерения интенсивности точечных источников света;
  * Добавлена возможность использовать улучшенную матрицу проекции;
  * Добавлена возможность выбора Culling Mode для рендеринга теней;
  * Добавлена возможность загрузки текстур и шейдеров из папки с RenderEdge (AllowLocalFiles в реестре);
  * Добавлена возможность загрузки шейдеров из карты;
  * Добавлена опция, позволяющая исправить дрожание скайбокса при перемещении камеры;
  * Чтение настроек из RenderEdge.ini (поиск файла в карте, в папке с RenderEdge (при включенном AllowLocalFiles), в .mpq архивах);
  * Теперь опция Disable Unit Shadows отключает тени юнитов и на земле, и на воде;
  * Уменьшено потребление оперативной памяти при использовании каскадных теней;
  * Снято ограничение на количество объектов, способных одновременно откидывать тени;
  * Улучшено качество теней;
  * Улучшен интерфейс настроек;
  * Улучшен режим свободной камеры: камера от первого лица, нет зависимости от высоты ландшафта;
  * Отключены мягкие тени (можно включить, отредактировав шейдер ShadowCommon.fxh);
  * Тени не рендерятся если игра на паузе;
  * Отображение версии RenderEdge в главном меню игры в правом нижнем углу;
  * Оптимизация Debug Screen;
  * Исправлен баг: модель основания здания имела освещение юнитов вместо ландшафта, и откидывала тени;
  * Исправлена некорректная интенсивность точечных источников света;
  * Игра больше не вылетает при использовании теней;
  * Исправлено периодическое исчезание теней при перемещении и вращении камеры;
  * Тени ландшафта снова работают корректно.

v0.1.1a
  * Добавлены контактные тени (Screen Space Ray-Traced Shadows);
  * Добавлена поддержка погодных эффектов;
  * Добавлен туман для скайбокса;
  * Улучшен Color Grading: добавлена отдельная настройка Shadows, Midtones и Highlights;
  * Добавлена возможность вручную задать гамму монитора: Output Device -  Explicit gamma mapping (LDR);
  * Добавлена возможность выбрать размер текстуры теней;
  * Добавлены расширенные настройки Ambient Occlusion;
  * Добавлена возможность скрыть интерфейс, отключить туман войны и тени юнитов в режиме Default Renderer;
  * Улучшен режим Debug Screen: отображение на весь экран;
  * Оптимизация Auto Exposure;
  * Оптимизация Rendering Pipeline;
  * Добавлены описания exe и dll файлов;
  * Исправлен баг: модели зданий при выборе места строительства не обрабатываются;
  * Исправлена некорректная работа Auto Exposure при ограниченном viewport;
  * Исправлена некорректная работа SSR при включенном Temporal AA;
  * Исправлена некорректная работа пост-эффектов при нестандартных настройках плоскостей отсечения камеры;
  * Исправлено влияние режима свободной камеры на отображение портрета;
  * Исправлено некорректное размытие SSAO при включённом downsampling;
  * Исправлены баги в JassAPI (конвертация real <=> float);
  * Исправлен сдвиг камеры при включении режима свободной камеры;
  * Исправлено влияние высоты ландшафта на высоту свободной камеры.

v0.1.0a
  * Добавлена поддержка анимированных текстур;
  * Добавлена поддержка полупрозрачных моделей;
  * Добавлена поддержка Unshaded материалов;
  * Добавлена поддержка Vertex Color;
  * Добавлена поддержка освещения скайбокса;
  * Добавлена поддержка текстур, размер которых не кратнен степени 2;
  * Улучшена функция скрытия интерфейса;
  * Улучшен Sky Light: добавлен параметр Blend Factor;
  * Улучшен Debug Point Light: добавлена возможность вручную задать координаты;
  * Улучшен Image Based Lighting;
  * Использование пиксельных отражений;
  * Добавлен параметр Culling Mode для теней;
  * Добавлена возможность выбрать формат и цветовое пространство монитора;
  * Добавлен Temporal Anti-Aliasing;
  * Добавлен эффект Screen Space Reflections;
  * Добавлен эффект Auto Exposure (UE4);
  * Улучшен Chromatic Aberration;
  * Обновлён SSAO: заменён на Scalable Ambient Obscurance;
  * Улучшен Bloom (увеличен максимальный радиус, добавлена возможность растянуть по   * горизонтали или вертикали);
  * Сохранение пропорций Lens Dirt текстуры при любом соотношении сторон экрана;
  * Сглаживание теперь применяется до остальных пост-эффектов;
  * Оптимизация Color Grading (запекание в LUT текстуру);
  * Отображение пост-эффектов только в пределах viewport;
  * Убрана возможность использовать Irradiance текстуру в качестве источника ambient освещения;
  * Убрана возможность включить улучшенную воду;
  * Загрузка и создание текстур и эффектов только по мере необходимости;
  * Обновлен конвертер d3d8 в d3d9;
  * Исправлен баг, при котором для юнитов и ландшафта использовался один и тот же направленный источник освещения;
  * Исправлены вылеты при рубке деревьев с включенными тенями;
  * Исправлены вылеты при сворачивании игры с включенными тенями;
  * Исправлены вылеты при включении режима свободной камеры;
  * Исправлены вылеты при установке маленького радиуса в эффекте Bloom;
  * Исправлено сворачивание запущенной в полноэкранном режиме игры при переключении режима вертикальной синхронизации;
  * Исправлено растягивание экрана при включенном интерфейсе и тенях;
  * Исправлена утечка памяти при включенном интерфейсе и пост эффектах;
  * Исправлено некорректное отображение SSAO при включённом режиме свободной камеры;
  * Исправлена функция проекции SSAO и SSR текстур на экран;
  * Исправлена некорректная гамма коррекция скайбокса при включенной пост-обработке;
  * Исправлена некорректная работа Dithering;
  * Исправлен некорректный цвет стандартных точечных источников света;
  * Запрет на отключение интерфейса и включение режима свободной камеры в главном меню игры и во время загрузки карты;
  * Динамическая очистка неиспользуемой памяти, занимаемой тенями;
  * Исправлено некорректное значение параметров Height и Density при использовании тумана;
  * Исправлена загрузка текстур из .mpq архивов;
  * Исправлена некорректная яркость точечных источников света.

v0.0.2a
  * Новый пост-эффект Bloom;
  * Добавлены настройки Lens Dirt;
  * Добавлена возможность протестировать самосветящиеся материалы (см. вкладку Material);
  * Unshaded материалы выключены по умолчанию, их можно включить на вкладке Material;
  * Исправлены проблемы с конвертацией цвета стандартных источников света/тумана в линейное пространство;
  * Исправлена проблема, при которой нельзя было менять освещение в картах, где была вызваны функция SetDayNightModels("", "");
  * Добавлен счётчик памяти, используемой варкрафтом;
  * Debug Screens теперь работают.

v0.0.1a
  * Первая стабильная сборка.


Просмотров: 46 494



» Лучшие комментарии


NanO #401 - 5 месяцев назад 0
Очень круто, спасибо за скрины.
Кристофер #402 - 5 месяцев назад 0
DemonoiD #403 - 5 месяцев назад (отредактировано ) 0
И так, пару замечаний, кои оформить нормально я не могу, потому что я навключал всего подряд для проверки фпс.
На данном скрине не видно, но атака сфинкса молнией вокруг "квадратна". Я не успеваю заскринить этот момент.
Далее из мелких раздражающих нюансов.
Цветофильтры не обрабатываются у ещё не созданных игроком объектов (когда мышкой выбираешь на каком месте будет стоять здание здание), а так же в некоторых анимациях у юнитов или при клике на юнита (например у древа ветров)
Не работают пост эффекты на миникарту и иной интерфейс, а хотелось бы. Или хотя бы на лицевую-модель юнита.
Не отказался бы от краткого тз или описания программного продукта, дабы знать несведующему что за что отвечает, и что я должен увидеть, после того как кликну какую-нибудь кнопку.
Что касательно самого главного что я проверял - фпс. Стабильные 31-32 чтобы я не делал. Без всех эффектов - 99. Жаль, что в сборке нет фпс-локера.
Системки - 16 гигов оперативы, AMD FX - 8320 8 ядерный, GTX 650 на 2 гига. Монитор - говно.
В общем и целом, если мелкие вышеописанные визуальные баги будут устранены, можно уже пиарить в масс медиа с помощью ютуберов с 30к подписчиками.
А, все, господа. Я понял о каком фпсе вы говорите.
прикреплены файлы
ENAleksey #404 - 4 месяца назад (отредактировано ) 5
атака сфинкса молнией вокруг "квадратна"
Это из-за того, что включен Physically Based Shading, а оригинальные материалы моделей варкрафта не затачивались под него. К тому же модель атаки сфинкса не является unshaded (хотя, логичнее было бы, если являлась), поэтому и наблюдаются такие артефакты.
DemonoiD:
Цветофильтры не обрабатываются у ещё не созданных игроком объектов
Спасибо за выявление бага, исправил.
DemonoiD:
а так же в некоторых анимациях у юнитов или при клике на юнита (например у древа ветров)
Можно больше примеров, желательно со скриншотами? У меня всё в порядке, в том числе и с Древом Ветров.
DemonoiD:
Не работают пост эффекты на миникарту и иной интерфейс, а хотелось бы. Или хотя бы на лицевую-модель юнита.
Это сделано специально. Зачем применять пост-эффекты к интерфейсу? Это смотрится отвратительно:
Про портрет я ещё подумаю, но, скорее всего, оставлю как есть.
DemonoiD:
А, все, господа. Я понял о каком фпсе вы говорите.
Тени лучше не использовать на сценах с большим количеством объектов, так как они жрут очень много оперативки и фпс.
DemonoiD:
Не отказался бы от краткого тз или описания программного продукта, дабы знать несведующему что за что отвечает, и что я должен увидеть, после того как кликну какую-нибудь кнопку.
Позже добавлю всплывающие подсказки при наведении на кнопки.

WIP: Contact Shadows

На примере карты Долина призыва дождя
Контактные тени вычисляются в экранном пространстве и позволяют получить чёткие тени даже от самых маленьких объектов. Производительность не зависит от сложности сцены.
Но на данный момент присутствует одна проблема, не позволяющая мне включить их в новую версию RenderEdge.
P.S. Следите за разработкой RenderEdge на Trello.
прикреплены файлы
DemonoiD #405 - 4 месяца назад (отредактировано ) 0
ENAleksey, ну смотри. В gad, все объекты сцены - декорации. По факту, анимированных теней там совсем немного, 10-15 юнитов на всю карту. Возможно, стоит разделить потенциально анимированные и статические тени, дабы рассчитывать статику большим промежутком времени, понижая нагрузку на частоту кадров, и дать время обновления под управление пользователю.
При наличии огромного числа анимированных теней, можно просто снижать их качество. Так же как делают с текстурами в любой современной игре.
Ещё один из забавных багов. Управляя камерой стрелочками в war3, я получил теоретическую карту расчитываемых теней в углу экрана.
Вот здесь ещё лучше видна данная забавная штуковина.
прикреплены файлы
ENAleksey #406 - 4 месяца назад (отредактировано ) 0
DemonoiD, узнать, является ли модель анимированной, не получится. Если обновлять тени через определенный промежуток времени, то это будет очень заметно. Тени можно не обновлять только если камера и направление источника света статичны, и объекты в кадре тоже не движутся (а узнать, двигаются они или нет, невозможно).
А про низкий фпс я писал в начале предыдущей страницы.
DemonoiD:
Ещё один из забавных багов
Это не баг, а средство для отладки - Debug Screen (этот параметр виден на твоих скринах). Ты случайно включил его, управляя интерфейсом с помощью стрелочек.
DemonoiD, пожалуйста, прячь большие картинки под спойлер.
DemonoiD #407 - 4 месяца назад (отредактировано ) 0
Баг с подсветкой повторить не удалось. Зато я нашел шедевральный рисованный стиль.
С такой стилистикой, но если изменить голубой на черный, черный на белый и добавить какой-то яркий цвет от эффектов типа синего или красного, можно создавать карты про слепых персонажей (и в будущем игроков, играющих с такой цветокорекцией)
ENAleksey,
Возможно ли при включении теней в RE, выключать автоматически стандартные тени war3?
Возможно ли при огромном количестве объектов сцены, убирать с просчета лишние тени по приоритету? (Зачем мне тень маленьких светлячков древа долголетия, если все лагает?)
(а узнать, двигаются они или нет, невозможно).
Теоретически это можно просчитать по % от изменения площади тени между промежутком времени. Но чую, что это будет жрать ещё больше памяти, чем сейчас.
прикреплены файлы
ENAleksey #408 - 4 месяца назад 0
Возможно ли при включении теней в RE, выключать автоматически стандартные тени war3?
Disable Unit Shadows - отключает стандартные тени юнитов.
Disable Fog of War - отключает стандартные тени зданий, но ещё и туман войны. Отключить только тени пока нельзя.
AlakFrost #409 - 4 месяца назад 0
С такой стилистикой, но если изменить голубой на черный, черный на белый и добавить какой-то яркий цвет от эффектов типа синего или красного, можно создавать карты про слепых персонажей (и в будущем игроков, играющих с такой цветокорекцией)
Обычные пост эффекты и шейдеры типо cel shading и rim light, которые доступны в юне или анриле, зачем изобретать велик на варике?
DrTema #410 - 4 месяца назад 0
Очень круто выглядит, жаль что для версии 1.26, а то использую 1.28.5
DemonoiD #411 - 4 месяца назад 2
DrTema, у меня вроде на более поздней пашет. Я честно не помню версию.
AlakFrost, потому что это на варике. Это же очевидно.
ENAleksey #412 - 4 месяца назад (отредактировано ) 0
Кст., вижу не только у меня проблемы с камерой.
она ведёт себя неадекватно если бродить по горам. Ну или я что-то ещё не так установил.
Лучше поздно, чем никогда :)
Вот функция, которая исправляет зависимость высоты камеры от высоты ландшафта:
function SetCameraZ takes real z, real time returns nothing
	local real zDiff = GetCameraField(CAMERA_FIELD_ZOFFSET) - GetCameraTargetPositionZ()
	call SetCameraField(CAMERA_FIELD_ZOFFSET, z + zDiff, time)
endfunction
ENAleksey #413 - 4 месяца назад 13

Обновление v0.1.1a

Улучшения

  • Добавлены контактные тени (Screen Space Ray-Traced Shadows);
  • Добавлена поддержка погодных эффектов;
  • Добавлен туман для скайбокса;
  • Улучшен Color Grading: добавлена отдельная настройка Shadows, Midtones и Highlights;
  • Добавлена возможность вручную задать гамму монитора: Output Device - Explicit gamma mapping (LDR);
  • Добавлена возможность выбрать размер текстуры теней;
  • Добавлены расширенные настройки Ambient Occlusion;
  • Добавлена возможность скрыть интерфейс, отключить туман войны и тени юнитов в режиме Default Renderer;
  • Улучшен режим Debug Screen: отображение на весь экран;
  • Оптимизация Auto Exposure;
  • Оптимизация Rendering Pipeline;
  • Добавлены описания exe и dll файлов.

Исправления

  • Исправлен баг: модели зданий при выборе места строительства не обрабатываются;
  • Исправлена некорректная работа Auto Exposure при ограниченном viewport;
  • Исправлена некорректная работа SSR при включенном Temporal AA;
  • Исправлена некорректная работа пост-эффектов при нестандартных настройках плоскостей отсечения камеры;
  • Исправлено влияние режима свободной камеры на отображение портрета;
  • Исправлено некорректное размытие SSAO при включённом downsampling;
  • Исправлены баги в JassAPI (конвертация real <=> float);
  • Исправлен сдвиг камеры при включении режима свободной камеры;
  • Исправлено влияние высоты ландшафта на высоту свободной камеры.

Contact Shadows

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

Color Grading

Теперь Color Grading и Tonemapping по функционалу полностью аналогичны соответствующим эффектам из Unreal Engine 4:
Color Grading and Filmic Tonemapper
Это сообщение удалено
HuNter32R #415 - 4 месяца назад 0
Может глупый вопрос, но как сохранить настройки чтобы при каждом запуске игры не ковырять всё заново?
ENAleksey #416 - 4 месяца назад (отредактировано ) 0
HuNter32R, пока сохранять настройки нельзя, но я обязательно добавлю такую возможность.
Raised #417 - 4 месяца назад 0
ENAleksey, 1.29. Не знаю когда выйдет, но это должны пофиксить.
ENAleksey #418 - 1 неделю назад (отредактировано ) 6

Обновление v0.1.2a

Улучшения

  • Добавлена возможность выбора температуры направленного источника света;
  • Добавлена обработка стандартных теней юнитов на воде;
  • Добавлена возможность выбрать единицу измерения интенсивности точечных источников света;
  • Добавлена возможность использовать улучшенную матрицу проекции;
  • Добавлена возможность выбора Culling Mode для рендеринга теней;
  • Добавлена возможность загрузки текстур и шейдеров из папки с RenderEdge (AllowLocalFiles в реестре);
  • Добавлена возможность загрузки шейдеров из карты;
  • Добавлена опция, позволяющая исправить дрожание скайбокса при перемещении камеры;
  • Чтение настроек из RenderEdge.ini (поиск файла в карте, в папке с RenderEdge (при включенном AllowLocalFiles), в .mpq архивах);
  • Теперь опция Disable Unit Shadows отключает тени юнитов и на земле, и на воде;
  • Уменьшено потребление оперативной памяти при использовании каскадных теней;
  • Снято ограничение на количество объектов, способных одновременно откидывать тени;
  • Улучшено качество теней;
  • Улучшен интерфейс настроек;
  • Улучшен режим свободной камеры: камера от первого лица, нет зависимости от высоты ландшафта;
  • Отключены мягкие тени (можно включить, отредактировав шейдер ShadowCommon.fxh);
  • Тени не рендерятся если игра на паузе;
  • Отображение версии RenderEdge в главном меню игры в правом нижнем углу;
  • Оптимизация Debug Screen.

Исправления

  • Исправлен баг: модель основания здания имела освещение юнитов вместо ландшафта, и откидывала тени;
  • Исправлена некорректная интенсивность точечных источников света;
  • Игра больше не вылетает при использовании теней;
  • Исправлено периодическое исчезание теней при перемещении и вращении камеры;
  • Тени ландшафта снова работают корректно.

Каскадные тени

Исправлено множество проблем с тенями: теперь они используют гораздо меньше оперативной памяти, следовательно игра больше не вылетает; сняты ограничение на 2048 объектов, способных одновременно откидывать тени; исправлен баг с периодическим исчезновением некоторых теней при движении камеры. FPS по идее тоже должен был увеличиться, однако, он всё-равно достаточно низкий.
На данном скриншоте в кадре одновременно находятся ~5500 объектов, без теней используется 170 MB, с тенями - 210 MB (в предыдущих версиях игра бы просто вылетела):

Чтение настроек из файла

Добавлена возможность чтения настроек из файла RenderEdge.ini, он находится в архиве RenderEdge_exp.mpq. Его можно также импортировать в свою карту.
Не пишите комментарии в одной строке с полями, где указываются логические переменные и пути к текстурам, так как информация о них не будет получаться корректно!

Использование пользовательских шейдеров и текстур

Теперь можно редактировать стандартные шейдеры, всего их 4: Standard.fx, Shadows.fx, PostProcess.fx и Skybox.fx. Для возможности загрузки модом, их нужно нужно скомпилировать с помощью FXC в формат .cso. Шейдеры должны находиться в папке Shaders.
В редакторе реестра можно включить опцию AllowLocalFiles, после этого файл настроек, шейдеры и текстуры будут искаться в папке с RenderEdge. Последовательность поиска ресурсов: загруженная карта, папка с RenderEdge, архив RenderEdge_exp.mpq.

Режим свободной камеры

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

Меню настроек

По умолчанию оно выключено и включается при нажатии клавиши F7. Включено меню изначально или нет, а также горячую клавишу, можно изменить в RenderEdge.ini:
[Engine]
bShowInterface = false

[Hotkeys]
ShowInterface = 0x76
прикреплены файлы
Raised #419 - 1 неделю назад (отредактировано ) 0
ENAleksey, ятп. камера пофикшена с помощью нативных функций?
ENAleksey #420 - 1 неделю назад (отредактировано ) 0
Raised, нет, я перехватываю функцию, в которой строятся матрицы вида и проекции, и до её вызова редактирую параметры игровой камеры:
» Пока делаю так:
uintptr_t address_InitViewProjectionMatrices = 0x4E6C80;
int __fastcall InitViewProjectionMatrices_proxy(uint32 pCamera, int unused, uint32 pRect, int a4)
{
	if (FreeCamera && FreeCamera->GetActive())
	{
		uint32 pGameUI = GetGameUI(0, 0);
		if (pGameUI)
		{
			uint32 pWorldFrame = *((uint32*)pGameUI + 239);
			uint32 pGameCamera = *((uint32*)pWorldFrame + 80);

			if (pCamera == pGameCamera)
			{
				*(float*)(pGameCamera + 60) = FreeCamera->GetEyePosition().x;
				*(float*)(pGameCamera + 64) = FreeCamera->GetEyePosition().y;
				*(float*)(pGameCamera + 68) = FreeCamera->GetEyePosition().z;

				*(float*)(pGameCamera + 100) = FreeCamera->GetTargetPosition().x;
				*(float*)(pGameCamera + 104) = FreeCamera->GetTargetPosition().y;
				*(float*)(pGameCamera + 108) = FreeCamera->GetTargetPosition().z;
			}
		}
	}

	return fast_call<int>(address_InitViewProjectionMatrices, pCamera, unused, pRect, a4);
}
С помощью нативный функций можно изменить только координаты цели камеры.
Raised #421 - 1 неделю назад 0

Есть предложение

  • Сделать возможность свободно крутить-вертеть камеру как в других играх.
  • Уменьшить минимальный view distance до 1 (убрать внутренние проверки внутри функции). Сейчас минимум - 100.

Еще вопрос. RE совместима с последними апдейтами игры?
ENAleksey #422 - 1 неделю назад 0
Сделать возможность свободно крутить-вертеть камеру как в других играх.
Я вряд ли это сделаю, так как кому-то это будет даже мешать. А вот создатели карт смогу сделать это самостоятельно с помощью новых нативных функций, которые уже присутствуют в основной версии и в версии Memory Hack.
Вот демонстрация такой камеры: www.youtube.com/watch?v=Ux_rlNzkcTI
Уменьшить минимальный view distance до 1 (убрать внутренние проверки внутри функции). Сейчас минимум - 100.
Я делал это в одном из предыдущих обновлений, но от этой идеи пришлось на время отказаться, так как были некоторые проблемы. Позже я попробую нормально реализовать это. У пользователей и так появится возможность избавиться от данного ограничения, после того, как я добавлю нативные функции, которые я упомянул в предыдущем комментарии, однако, при этом придётся писать систему управления камерой с нуля.
Doc #423 - 1 неделю назад 0
Не думаю что там внутренние проверки, скорее в матрице проекции zNear стоит 100
ENAleksey #424 - 1 неделю назад (отредактировано ) 0
Doc, нет, Raised имел ввиду ограничение функции SetCameraField(CAMERA_FIELD_DISTANCE, ...), в ней минимальное значение - 100.0 (расстояние от цели до глаза камеры).

Еще вопрос. RE совместима с последними апдейтами игры?
Нет, только с версией 1.26a, поддержку новых патчей добавлять не буду.

Только что исправил проблему с контактными тенями, при которой угол падения теней зависел от направления камеры. Завтра обновлю.

Нет, всё-таки там ещё есть над чем поработать, поэтому фикс контактных теней придётся отложить до версии 0.1.3a