Версия v0.3.0
Графическая модификация для игры WarCraft III.
287 87K
13
Vitalik8, в данный момент работаю только над экспериментальной версией, добавляю пост-эффекты, дорабатываю шейдер освещения. Последняя неделя выдалась крайне продуктивной:
  • сегодня реализовал туман (линейный и два вида экспоненциального (в варкрафте они не работали корректно), завтра собираю добавить ещё один способ расчёта тумана, основного на высоте) и Туман Войны (позже ещё доработаю);
  • вчера реализовал сглаживание (SMAA) и Film Grain;
  • в начале недели добавил поддержку точечных источников света, теперь и они используют попиксельное освещение;
  • ранее улучшил качество теней, реализовал HDR Rendering, улучшил качество SSAO, добавил Lens Flares, LUT Color Correction и поддержку sRGB.
Нужно ещё много всего реализовать и улучшить то, что уже есть. Самое главное - оптимизировать способ отлова информации о моделях, которую я использую для рендеринга теней, так как именно этот этап самый прожорливый во всём pipeline'е.
Скоро выложу экспериментальную версию, мне понадобятся добровольцы с ПК различной мощности для тестирования мода на производительность.
А основную версию, думаю, не выложу пока не исправлю вылеты при запуске карт, которые используют функции отрисовки текста из RenderEdge. К этому времени, может быть, перенесу GUI систему на шейдеры.
Версия v0.1.3a
Больше не поддерживается, используйте основную версию.
Экспериментальная версия графической модификации RenderEdge для игры WarCraft III.
207 117.9K
24
Jusper, на разрешение текстур нет ограничений, если они в тга, точнее есть одно - если они больше 10000х10000 - работать перестанет модель вообще
13
Скажи, не занимался ли ты еще текстурами и их разрешением? Я прост на лесенку смотрю, и плакать хочется :(
Нет, этим занимается команда Warcraft 3 Reborn, я только иногда помогаю им кодом.
alexprey:
Последний скрин заставляет плакать... свечение у меча пропало
Дело в том, что я пока не реализовал нормальный фильтр моделей на сцене, которые сохраняю для дальнейшего рендеринга в карту теней и для обычной отрисовки на сцену, используя свой шейдер. Свечение героев не должно перехватываться, я пока сделал фильтр на прозрачность, но это глупо, так как таким образом можно пропустить другие полупрозрачные модели. Но у меня пока вообще нет идей, как это сделать :(
Пока делаю так
if (currentRenderStage == STAGE_UNIT)
{
	DWORD fogenable, zwrite, destblend;
	m_pDevice->GetRenderState(D3DRS_FOGENABLE, &fogenable);
	m_pDevice->GetRenderState(D3DRS_ZWRITEENABLE, &zwrite);
	m_pDevice->GetRenderState(D3DRS_DESTBLEND, &destblend);

	if ((fogenable != 0 && zwrite != 0 && destblend != 2) && stride == 32 && type == 4 && FVF == 274 && ((DWORD)state == 256 || (DWORD)state == 17 || (DWORD)state == 16 || isComplexMesh(state, numVertices, primCount)))
	{
		if (curUnits < maxUnits)
			meshesUnits[curUnits].GetMesh(m_pDevice, g_pStreamData9, g_pIndexData9, currentTexture, type, baseVertexIndex, minIndex, numVertices, startIndex, primCount);
		curUnits++;

		return D3D_OK;
	}
}
некоторые объекты двоятся
Объекты двоятся из-за того, что я пока добавил самую простую реализацию SSAO, но и с помощью неё уже можно добиться неплохих результатов (об этом чуть ниже).
да и в целом картинка стала блеклой и мыльной какой-то :(
Для достижения наилучшего результата нужно подстраивать значения переменных, используемых в пост-эффектах (тонирование, блюм и т.д.), отдельно для каждой сцены.

Screen Space Ambient Occlusion

На примере карты Melissa Tale About Taiga's Adventure.
Интерфейс скрыт для наглядности.
Без текстур:
С текстурами:
На скрине карта окружения не очень подходит для этой сцены, я использовал старую, так как лень было рендерить сцену в новую. Дальше хочу сделать автоматическую генерацию нескольких кубических карт, расставленных на некотором расстоянии друг от друга по всей карте, при запуске. Более того, уже сейчас можно динамически рисовать сцену в кубическую текстуру, и использовать её для динамических отражений.
29
Последний скрин заставляет плакать... свечение у меча пропало, некоторые объекты двоятся, да и в целом картинка стала блеклой и мыльной какой-то :(
28
ENAleksey, неплохо. В общем, картинка выглядит достаточно мягко.
Левая часть экрана Wanderer'а смотрится очень круто.
Но вот правая, там где маленькие камушки выглядит странно. Маленький камень сам под себя отбрасывает тень + еще какие-то бельмушечки.
Скажи, не занимался ли ты еще текстурами и их разрешением? Я прост на лесенку смотрю, и плакать хочется :(
21
Unreal Engine. Круто конечно, но как-бы... это остается варом.