13

» WarCraft 3 / Нужна помощь с нормалями

Нормали можно автоматически рассчитать в 3ds max или GMAX. Чтобы импортировать и экспортировать модель нужен плагин NeoDex.
13

» WarCraft 3 / По 3д моделям

Andrey93, ты плагином NeoDex пользовался? Если нет, то попробуй: всё отлично конвертируется.
13

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

Melissa, проблема с SharCraft'ом, нужно прописать путь к варкрафту в редакторе реестра. Синим цветом в инструкции по установке выделил ссылку, посмотри там.
SharpCraft ищет путь к варкрафту в каталоге "(Current User)Software\Blizzard Entertainment\Warcraft III", а если не находит, то здесь: "(Local Machine)SOFTWARE\Wow6432Node\Blizzard Entertainment\Warcraft III"
У меня такой путь к варкрафту:
13

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

Кристофер, всё написано в описании, просто скачиваешь и распаковываешь в папку с варкрафтом. На оригинальный варкрафт никак не влияет, мод запускается через специальный батник.
13

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

это будет в варике?
Уже там.
По ссылке выше можешь скачать и увидеть всё самому.
Обновил главную страницу, теперь можете скачать новую версию с исправлениями и без требования скачивать Nirvana.
13

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

а это дело в WE интегрируется
Пока нет, но
Ещё хочу облегчить жизнь будущим картоделам - добавить в World Editor редактор материалов (например, как в UE4), Content Manager (тоже UE4 или Unity3D), управление графикой и создание интерфейса через jass. И многое другое... Лишь бы не забил...
Стандартные юниты, способности, предметы не будут использоваться: всё будет как в UE4 или Unity3D, т.е импортируешь, например, .fbx меш и текстурки для него в Content Browser, перетаскиваешь меш на рабочую область, а с помощью SharpCraft'а пишешь для него скрипты.
Зачем такое делать удивить ? Не лучше ли продумать сюжет и т.д.
Во-первых, всё, что я собираюсь сделать - это вызов самому себе и ничего больше. Я не собираюсь сделать из варкрафта какой-нибудь The Order 1886, и не буду расстроен, если никто не будет пользоваться данным модом, что очень вероятно.
Во-вторых,
У меня в голове уже давно вертится идея демки с сюжетом к моей будущей игре, но для начала нужно заставить всё работать как нужно. Будут тени, пост-эффекты, отражения, боевая система как в Mount and Blade, небольшой сюжет.
Какой вкус от псевдо рендеринга в варике ?
Никакого псевдо-рендеринга, вся графическая составляющая игры полностью перенесена на более новое графическое API - Direct3D9.
Какой прикол с тормозами
одновременно с добавлением поддержки сторонних форматов моделей, я избавился от самого главного недостатка - падения производительности, да и от всех остальных.
13

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

Что значит "Рисовать на ландшафте"?
В большинстве редакторов есть возможность рисовать текстурами на ландшафте (UE4, Unity 5). Тайлов не будет.
Также хотелось бы сделать vertex paint ещё и на других мешах. Например, появится возможность прямо во время игры на какой-нибудь машине в произвольном месте нарисовать ржавчину.
Мод делаю один, и всегда не хватает человека, который бы помог, подсказал.

Кто-нибудь уже скачивал, запускал? Запускалось? Есть ли баги / недочёты / тормоза?

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

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

Melissa, пока так, ещё толком не реализовал систему материалов и объектов. Для того, чтобы всё работало ещё лучше, нужно полностью избавиться от Nirvana и написать свой лончер. Хорошо бы ещё SharpCraft переписать на C++, чтобы было легче реализовать двухстороннюю связь между ним и игрой с моей библиотекой.
Сейчас начал поглядывать в сторону китайского YDWE: функционал там, конечно, побольше, чем у SharpCraft.
13

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

  • Physically Based Rendering. Добавлен стандартный физически точный шейдер.
  • Интеграция с Assimp. Поддержка большинства форматов моделей, среди которых .obj, .3ds, .dae, .blend и .fbx.
  • Начало избавления от Nirvana.
Как видите, имеется небольшая проблема с отражениями, но в будущем исправлю.
Предлагаю скачать новую версию и попробовать изменять различные настройки материала самостоятельно.
Установка:
  • Если скачивали предыдущие версии мода, удалите папки Textures и Shaders, файлы Nir_Plugin_RenderCraft.dll и Nirvana.ini.
  • Кидайте файлы из архива в папку с варкрафтом.
  • В начале игры после загрузки немного отойдите назад.
13

» Murk Game / Dying blood

Скорпион, если всё-таки нужно достать анимации и не хочется качать 3ds max, можно взять маленький и бесплатный Gmax с поддержкой NeoDex, если нет - тогда ладно.
раскрыть
Загруженные файлы
13

» Murk Game / Dying blood

А вот анимацию приходится создавать заново.
NeoDex ведь и анимации импортирует, или варкрафтовские анимации не нужны?
13

» WarCraft 3 / Кто может написать триггер?

Это нужно для конкретного юнита или для любого?
В событиях можешь через "ИЛИ" прописать и остальных игроков.
Загруженные файлы
13

» WarCraft 3 / Как заставить игру видеть русские символы

Meddin, если надо русифицировать интерфейс (и не только его), то найди в архиве Nirvana.mpq файл UI\FrameDef\GlobalStrings.fdf и переведи.
А легче взять данный файл из стандартного архива и добавить в него то, что идёт после строчки //mc added.
//mc added
    RANDOM                          "Loading..",
    RANDOM_V2                       "Random",
    NAGA                            "Naga",
    ICE_TROLL                       "Ice Troll",
    BLOOD_ELF                       "Blood Elf",
    GOBLIN                          "Goblin",
Собственный шрифт в Nirvana не используется.
И посмотри .txt файлы, такие как Units\ItemStrings.txt или Units\HumanUnitStrings.txt.
13

» WarCraft 3 / Имя игрока

Используй функцию SubString(string source, int begin, int end).
В твоём случае будет так:
set firstHeroChar = SubString(GetPlayerName(player), 0, 1) //возвращает первую букву.
Например, имя игрока ИванИванов, то в переменную firstHeroChar запишется "и".
Для нахождения второй буквы вместо 0 и 1 пишешь 1 и 2.
Если нужно вернуть две первые буквы как одну строку пишешь 0 и 2. В строке firstHeroChar будет записано "ив".
13

» WarCraft 3 / В чем тут проблема?

GetUnitFacing случайно не градусы возвращает? Если так, то f-30 нужно в скобках брать.
13

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

Скачать демку (без ReShade).
Melissa, производительность во много раз превосходит то, что было в оригинальном варкрафте. Если накладывать хай-рес текстуры на .mdx модели стандартным методом, то уже только из-за этого начнутся сильные лаги. Я отключил рендер всего, что хочет рисовать варкрафт, так что, если решить несколько небольших проблем (которые ещё не решены из-за моей лени), то всё будет буквально летать.
Melissa, а демку советую ещё раз попробовать запустить после того, как пропишешь путь к варкрафту в реестре.
13

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

Сейчас быстренько демку сделаю.
darkowlom, с Talavaj я общался, его и Tobyfat я очень сильно уважаю: столько всего крутого сделали на движке варкрафта (parallax mapping, отражения, анимацию растительности, воду...)
13

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

Как будто прифотошопили стул)
Всё честно + пост-процессинг в режиме реального времени.
13

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

Обновление: Почти Physically Based Rendering.

  • Добавлен эффект для ландшафта;
  • Поддержка многокомпонентных материалов;

Реализация материалов

1. Отражающий материал;
2. Материал цвета;
3. Материал окружения.
Реализация:
Модель состоит из одной поверхности, её разделение происходит по цветовому шаблону:
1) Отражающий материал
Отражения берутся из кубической текстуры окружения.
Цвет первого материала рассчитывается по данной формуле:
раскрыть
float nDotL = saturate(dot(n, l));
float nDotH = saturate(dot(n, h));
float power = (nDotL == 0.0f) ? 0.0f : pow(nDotH, material.shininess);
float4 cEnvColor = texCUBE( envMap, reflVect );
float4 white = {0.914f, 0.865, 0.719f, 1.0f};
float4 ColorMetal = cEnvColor*white + (cEnvColor*white * nDotL) + (cEnvColor*white*power);
2) Материал цвета
За основу берётся только однин вектор цвета.
Для второго материала расчёт финального цвета проходит по той же формуле.
раскрыть
float4 orange = {0.974f, 0.338f, 0.034f, 1.0f};
float4 ColorSeats = orange + (orange * nDotL) + (orange*power);
3) Материал окружения
В качестве источника используется Irradiance текстура, основная на сильно заблюренной карте окружения.
Цвет рассчитывается так же как и в предыдущих материалах - по моделе Блинна-Фонга, но позже буду использовать модель освещения Кука-Торенса:
раскрыть
float4 cIrradColor = texCUBE( irradMap, IN.WorldNormal);
float4 ColorBase = cIrradColor*0.5 + (cIrradColor*0.5 * nDotL) + (cIrradColor*0.5*power);
4) Финальный результат получается путём умножения полученных материалов на соответствующие R/G/B/A каналы цветового трафарета:
раскрыть
float4 cBaseColor = tex2D( colorMap, IN.texCoord );
baseColor = lerp(lerp(ColorBase, ColorSeats, cBaseColor.b), ColorMetal, cBaseColor.g)*cBaseColor.r;

Планы на будущее

  • Переход на модель освещения Кука-Торенса;
  • Расчёт карты окружения в режиме реального времени;
  • Оптимизация (проблема из предыдущего обновления ещё не решена);
  • Добавление возможности рисовать на ландшафте.
  • Отказ от .mdx моделей!
13

» WarCraft 3 / Как избежать объединение нормалей при экспорте модели из 3DsMax?

Оказывается можно, просто mdlvis неправильно работает с нормалями, в war3 model editor'е всё корректно отображается.
Чтобы избежать изменение направления нормалей, просто не надо сохранять модель в mdlvis'е.