Комментарии проекта RenderEdge
424

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

» RenderEdge
Экспериментальная версия графической модификации RenderEdge для игры WarCraft III.

Читать далее...
ENAleksey #412 - 1 неделю назад (отредактировано ) 0
Doc, нет, Raised имел ввиду ограничение функции SetCameraField(CAMERA_FIELD_DISTANCE, ...), в ней минимальное значение - 100.0 (расстояние от цели до глаза камеры).

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

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

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

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

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

Еще вопрос. RE совместима с последними апдейтами игры?
ENAleksey #416 - 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 #417 - 1 неделю назад (отредактировано ) 0
ENAleksey, ятп. камера пофикшена с помощью нативных функций?
ENAleksey #418 - 1 неделю назад (отредактировано ) 4

Обновление 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 - 4 месяца назад 0
ENAleksey, 1.29. Не знаю когда выйдет, но это должны пофиксить.
ENAleksey #420 - 4 месяца назад (отредактировано ) 0
HuNter32R, пока сохранять настройки нельзя, но я обязательно добавлю такую возможность.
HuNter32R #421 - 4 месяца назад 0
Может глупый вопрос, но как сохранить настройки чтобы при каждом запуске игры не ковырять всё заново?
ENAleksey #423 - 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
ENAleksey #424 - 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
34

[RenderEdge] Widescreen Fix

» RenderEdge
Модификация добавляет в Варкрафт поддержку мониторов с соотношением сторон отличным от 4:3.

Читать далее...
ENAleksey #29 - 1 месяц назад (отредактировано ) 3

Обновление v1.2.0b

  • Исправлены вылеты при скрытии полосок здоровья функцией EnablePreSelect (спасибо Hate за выявление проблемы).
NanO, нет, только для 1.26.
pco07094, uranus, я завершил работу только над отдельной версией Widescreen Fix, да и то, если найдутся какие-то баги, я буду их исправлять.
pco07094 #30 - 2 месяца назад 2
На мой взгляд вы зря решили прекратить развитие данного проекта. У близзардов вайдскрин получился мягко говоря не очень, да и у Вас наработки были, который бы в будущем позволили бы куда более гибко настраивать UI.
uranus #31 - 3 месяца назад 0
ENAleksey, не согласен. Тот же Direct они не прикрутят никогда, да и вообще медленно у них это идет.
NanO #32 - 3 месяца назад 1
Будешь что-то пилить для 1.29?
ENAleksey #33 - 3 месяца назад (отредактировано ) 6

Обновление v1.2.0a

  • Исправлено растягивание полосок HP/MP, теперь фикс срабатывает после первого же появления полок;
  • Добавлено описание .dll файла.
Скорее всего, это последнее обновление, так как с выходом патча 1.29 пропадёт необходимость в добавлении поддержки новых версий. Также выкладываю ссылку на исходный код.
mishanka122 #34 - 3 месяца назад 0
Ну шо, не думал еще над интерфейсом?
17

[RenderEdge] Галерея скриншотов

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

Читать далее...
Narkranoth #1 - 3 месяца назад 0
Mark Mocherad, вот-вот. Хотя с другой стороны кто сказал, что в HR War3 не будет улучшена техническая составляющая? Просто улучшенная графика не так интересна при всём удобстве моддинга обычного War3. Если движок серьёзно подтянут, то долгое отсутствие War4 можно простить и подождать ещё, так как официальный сюжет движется за счёт иных вещей.
Mark Mocherad #2 - 3 месяца назад 0
Narkranoth:
Mark Mocherad, не переживай и не бери в голову, это такое хобби. Мы ведь не осуждаем друг друга за увлечения, если те никому не вредят. Многим удобен Варик (ещё больше просто играют), они оценят эту красоту, да и сами "Близзы" не торопятся с 4-ой частью при том, что у СК2 тоже есть свои недостатки в техническом плане, отталкивающие потенциальных картостроителей.
судя потому что хотят делать HR war 3, и продюсер на hive появилься что бы добавить функционал war 4 точно не будет ближайшие пару лет
Narkranoth #3 - 3 месяца назад 0
Mark Mocherad, не переживай и не бери в голову, это такое хобби. Мы ведь не осуждаем друг друга за увлечения, если те никому не вредят. Многим удобен Варик (ещё больше просто играют), они оценят эту красоту, да и сами "Близзы" не торопятся с 4-ой частью при том, что у СК2 тоже есть свои недостатки в техническом плане, отталкивающие потенциальных картостроителей.
Mark Mocherad #4 - 3 месяца назад 2
Narkranoth:
Mark Mocherad, согласен, особенно это касается теней и освещения - весьма впечатляет. Вот только оптимизация хромает (автор уже объяснял причину), из-за чего даже в РПГ не очень комфортно играть. Хотя можно оставить только нормали... Тоже прилично при наличии моделей повышенного качества, зато так и в средненьких замесах будет более-менее.
но тут одно но, не совсем понимаю зачем выкручивать графику на старом движке, варкрафт 3 хороший и с оригинальной графикой и совсем не ради графики в него играют, если очень приспичило делать крутые уровни с графикой есть другие редакторы карты, есть игровые движки. Мне это напоминает когда Вася купил старую 9ку и захотел повыеживаться - прикрутил номерной знак 4444, наклеил хвост, тунели, разный дешевый тюнинг что бы она выглядела ярче, но что бы он не делал всегда на фоне порше там или даже любых импортных машин он всегда будет дешего выглядеть )
Narkranoth #5 - 3 месяца назад 0
Mark Mocherad, согласен, особенно это касается теней и освещения - весьма впечатляет. Вот только оптимизация хромает (автор уже объяснял причину), из-за чего даже в РПГ не очень комфортно играть. Хотя можно оставить только нормали... Тоже прилично при наличии моделей повышенного качества, зато так и в средненьких замесах будет более-менее.
Mark Mocherad #6 - 3 месяца назад 0
скептически относилься к проекту, но теперь понял свою ошибку ) вышлядит очень круто
LVenger #7 - 4 месяца назад 0
жаль нельзя заставить Blizzard в вести это в официальный движок варика и жаль что каждому нужно скачивать что бы насладится этой красотой.
Они просто на это посмотрят, к движку вова это припилят и не выпустят Warcraft 4
Да, с рендерами намного атмосфернее
Кристофер #8 - 4 месяца назад 1
Araders:
Мда, графика уже на уровне где-то выше Unity и ниже Unreal но графика очень достойная, жаль нельзя заставить Blizzard в вести это в официальный движок варика и жаль что каждому нужно скачивать что бы насладится этой красотой.
Проблема в том, что варик не поддерживает такую графу и может вылетать или выдавать очень низкий фпс.
Araders #9 - 4 месяца назад -1
Мда, графика уже на уровне где-то выше Unity и ниже Unreal но графика очень достойная, жаль нельзя заставить Blizzard в вести это в официальный движок варика и жаль что каждому нужно скачивать что бы насладится этой красотой.
avuremybe #10 - 4 месяца назад 0
ENAleksey, блин, аж не верится, что это скрины с вц3 (:
ENAleksey #14 - 4 месяца назад (отредактировано ) 0
Roy Mustang, после запуска игры через RenderEdge.exe, появится менюшка в левом верхнем углу. В ней есть различные пункты для настройки теней, материалов, тумана, скайбокса, пост-эффектов (цветокоррекция, SSAO, Chromatic Aberration, Anti-Aliasing, и т.п).
Например, на четвёртом скриншоте используются примерно следующие настройки:
  • Скрыт стандартный интерфейс, тени юнитов и туман войны (вкладка Debug);
  • Включен режим свободной камеры (перемещение камеры WSAD, QE, вращение - перемещение мыши с зажатой правой кнопкой), FoV = 90;
  • Выключен стандартный цвет окружения и включен Sky Light с подогнанными цветами неба и рассеянного освещения;
  • Направленный источник света: изменён цвет, направление и интенсивность;
  • В материалах включен Physically Based Shading, значение roughness установлено на 0.8 (лучше самостоятельно покрутить параметры для понимания, что на что влияет), metallic = 0.0 (логично, ведь у нас нет металлов на сцене);
  • Image Based Lighting выключен;
  • Для скайбокса выключено освещение и включен туман;
  • Тип тумана - Height Based, плотность равна 1 (для данного вида тумана рекомендую всегда ставить 1), высота равна 60. Включено солнце, изменён цвет;
  • Обычные точечные источники выключены, включен Debug Point Light. Интенсивность 10000, радиус максимальный, цвет - белый, температура - 1700, координаты заданы вручную.
  • Включены тени, Shadow Map Size = 1024 (для скриншотов лучше ставить максимальное качество - 4096), FoV равен 60 (чем больше, тем хуже качество, но меньше артефактов, установил на 60, так как при 45 тени обрезались по-краям). Тени ландшафта выключены, мягкие тени не используются, так как сглаживание будет проводиться позже с помощью Temporal AA.
Включены пост-эффекты:
  • Bloom: радиус = 10, порог = 0.4, интенсивность = 0.5;
  • Включен Anti-Aliasing: SMAA (threshold = 0.05 для лучшего качества), Temporal AA;
  • Включен Ambient Occlusion (downsample выключен): интенсивность = 4, радиус = 0.75, beta = 0, contrast = 1, geomCoef = 1
  • Включены контактные тени (downsample выключен);
  • Включены Chromatic Aberration, Vignetting, Film Grain, Dithering;
  • Color Grading: изменена температура на более холодную, изменены глобальный контраст сцены, насыщенность, гамма.
Roy Mustang #15 - 4 месяца назад 0
Может кто помочь.
Скачал Render Edge , установил, но как применить эффекты как здесь ?
LongbowMan #16 - 4 месяца назад 0
В рот мне ноги! Всё-таки зря ВКР в своё время на старкрафт перешёл, всё равно пилят до сих пор)
ENAleksey #17 - 4 месяца назад (отредактировано ) 7
Все скриншоты были сделаны без обработки в графических редакторах.
315

[RenderEdge] Основная версия

» RenderEdge
Основная версия графической модификации RenderEdge для игры WarCraft III.

Читать далее...
ENAleksey #307 - 4 месяца назад 2
LongbowMan, просто качаешь экспериментальную версию, запускаешь и включаешь тени через меню настроек:
прикреплены файлы
LongbowMan #308 - 4 месяца назад 0
AlakFrost, ну я полагаю рано или поздно они окажутся и в основной версии. Сути вопроса это не меняет)
Я не испытываю иллюзий относительно интерфейса, вряд ли там чайник разберётся, так что меня интересуют в первую очередь всякие графические плюшки
AlakFrost #309 - 4 месяца назад 0
LongbowMan:
Ворвусь всё же со своим тупым вопросом. Насколько эта утилита юзерфрендли?
Например я сферический художник (ланд, модели, текстуры), а в коде полный чайник. Я смогу хотя бы элементарно тени добавить в своей карте без предварительного вкуривания статей по джассу?
Тени это в экспериментальной версии. В основной только всякие плюшки по интерфейсу.
LongbowMan #310 - 4 месяца назад 0
Ворвусь всё же со своим тупым вопросом. Насколько эта утилита юзерфрендли?
Например я сферический художник (ланд, модели, текстуры), а в коде полный чайник. Я смогу хотя бы элементарно тени добавить в своей карте без предварительного вкуривания статей по джассу?
ENAleksey #311 - 4 месяца назад (отредактировано ) 0

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

  • Обновлён RenderStage Controller (улучшен перехват отрисовки стандартного интерфейса);
  • Исправлены баги в JassAPI (некорректная конвертация real <=> float);
  • Исправлены баги в функциях CtrlSetDepth и CtrlSetAngle;
  • Исправлены слайдеры и чекбоксы в демонстрационной карте;
  • Добавлены описания .exe и .dll файлов.
ENAleksey #312 - 4 месяца назад 0
Jack-of-shadow, ты случайно не экспериментальную версию используешь? Просто основная версия вообще никак не должна влиять на графику, на поведение юнитов тем более. Можешь кинуть скрин содержимого папки с варкрафтом и файл RenderEdge.log (желательно в личку)?
pro100master #313 - 4 месяца назад 0
Jack-of-shadow, видать ты стал нетралом игроком хД
Jack-of-shadow #314 - 4 месяца назад (отредактировано ) 0

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

Проверял на совершенно пустых картах, без всяких триггеров, просто юниты натыканы на карте.

Кстати.., мб я что то тулю но RE круг выделения и стрелка движения белые, вместо зеленых. Мб как то связано.

вот так вот это выглядит:
прикреплены файлы
Jack-of-shadow #315 - 4 месяца назад (отредактировано ) 0
ENAleksey:
Блин и правда, тестмап то я и не скопировал.. думал что все что нужно в #RenderEdge# вписано.
Добавил, все заработало, спасибо!
------ прикреплю тут wehack для Rebuild, вдруг кому пригодится.



прикреплены файлы
165 , ,

[RenderEdge] Memory Hack

» RenderEdge
Дополнительные функции для редактирования стандартного интерфейса Варкрафта

Читать далее...
Jack-of-shadow #161 - 4 месяца назад 0
GetMouseTerrainX() - Возвращает проекцию позиции курсора на ландшафт. Можно ли наоборот по позиции на ландшафте получить на экранные координаты?
pro100master #162 - 4 месяца назад 0
ENAleksey, там лишь переносить и адрес и все.. Чтобы люди не бегали между мемхак и рендер
ENAleksey #163 - 4 месяца назад 0
pro100master, нет, моя версия предназначена только для редактирования интерфейса.
pro100master #164 - 4 месяца назад 0
ENAleksey, Очень хорошо, и еще добавь xgm.guru/p/wc3/damagedetect на свой render memory, тогда и появится полноценный мемхак оптимальный
ENAleksey #165 - 4 месяца назад 0
Всё заработало странно...Ты что-то поменял?
Нет, ничего не менял.
FTFire:
Можешь сделать пример поворота камеры мышкой и чтобы персонаж тоже поворачивался одновременно?
Берёшь систему управления камерой, которая в карте, добавляешь в триггер OnMouseMove функцию SetUnitFacing(..., yaw).
FTFire:
Можешь сделать чтобы камера работала в мультиплеере?
Нет, не могу.