[RenderEdge] Старые размышления.

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

Думаю, многие уже видели проект Nirvana, в котором автор реализовал технологию Normal Mapping.
Я переделал Direct3D8to9 библиотеку из данного проекта, теперь вместо генерации карт нормалей, они загружаются из файлов.

Тестовые скриншоты



Просмотров: 6 736

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


JesusHipster #1 - 2 года назад 9
конечно стоит, это просто отлично.
а можно чуть больше примеров того, как все это выглядит в игре со стандартными и кастомными моделями из базы и гайд по установке?
было бы круто эту штуку в каждый дом
хотя честно, нормал маппинг хз хорошо ли смотрится на деле
ENAleksey #2 - 2 года назад 0
Примеры со стандартными моделями можешь посмотреть, перейдя по ссылке. Ещё лучше, если скачаешь и сам в игре посмотришь. Завтра ещё что-нибудь сделаю, на скринах плохо виден эффект нормал маппинга, да и с тенями ещё не работал.
Пока я делаю это только для своего проекта, собираюсь делать только демку на движке warcraft'а, как только сделаю (если), выложу все исходники.
NilasAran_39 #3 - 2 года назад 5
Даю зеленый свет в надежде что проект будет развиваться, задумка хорошая и полезная, думаю все оценят.
ENAleksey #4 - 2 года назад (отредактировано ) 0
Кому нужно,вот исходники Direct3Dto9(не мои).
NilasAran_39 #5 - 2 года назад 0
Кстати потестил Нирвану, и вижу что у них реализована моя идея с троллями, так что наверное даже не буду пытаться что то сделать в плане карт.
Melissa #6 - 2 года назад 5
Ого чуваг, ты круть. Офк надда!
ENAleksey #7 - 2 года назад (отредактировано ) 7
На видео можно увидеть, как ведёт себя нормал маппинг с изменением времени суток.
Наполеоновские планы:
  • Переход на Direct3D11
  • Карты нормалей
  • Тесселяция
  • Динамическое освещение
  • Динамические тени
  • Отражения в режиме реального времени
  • Пост-эффекты
  • Поддержка .dds формата текстур
Пару дней назад наткнулся на проект по графической модификации игры Gothic: перенос рендера игры с D3D7 на D3D11, следовательно всё возможно реализовать, но я не гарантирую, что доведу дело до конца.
Также планирую сделать замену DGUI системе.
Melissa, прости, случайно минус поставил(
EfReeZe #8 - 2 года назад 2
ENAleksey, тесселяция? Серьёзно? Ну мне и теней бы в захлёб хватило. А как скоро ты сможешь дать нам поиграться с твоим прогрессом? :3
ENAleksey #9 - 2 года назад (отредактировано ) 0
Пока я делаю это только для своего проекта
И не факт, что он выйдет в свет.
Впрочем уже сам можешь скачать Нирвану и тестить.
поиграться с твоим прогрессом
Да и прогресс не такой уж и большой: всего лишь вместо генерации карт нормалей, они теперь загружаются из файлов.
ENAleksey #10 - 2 года назад 2
Скриншоты Work-in-Progress.
Коментируем: что нравится, что нет.
Flek #11 - 2 года назад 0
Круто! А можешь сделать скрины со стандартными моделями?
ENAleksey #12 - 2 года назад 0
Flek, читай внимательнее первые коментарии.
ENAleksey #13 - 2 года назад (отредактировано ) 7

Небольшой Update

  • Реализована поддержка .dds файлов. Теперь текстуры не нужно импортировать в карту, что значительно снижает её вес, diffuse и normal текстуры загружаются из папки (далее можно сделать загрузку из .mpq архива).
  • Простая отрисовка спрайтов и текста. В дальнейшем буду пробовать совместить данную систему с SharpCraft'ом, что позволит выводить изображения и текст используя jass.
Всё ещё улучшаю Bump mapping и Dynamic shadows. Планирую переносить всё на шейдеры, добавлять поддержку источников света, различные пост-эффекты.
Параллельно с этим пишу системы для игровой action механики: передвижение, боевая система.
Haruhi #14 - 2 года назад 0
Оху...
Охренеть.
Апплодирую стоя. Вот это вещь.
ENAleksey #15 - 2 года назад (отредактировано ) 0
Нужна помощь.
Кто-нибудь имеет опыт работы со взломом игр, в получении и изменении данных?
Кто может объяснить, как получить данные, возвращаемые jass функцией, из сторонней программы?
Библиотека, которую я использую имеет GameHook. Я получил адрес нужной мне функций, например, "GetCameraTargetPositionX". Что теперь я должен с ним сделать, чтобы получить возвращаемое функцией значение?
J64_ #16 - 2 года назад 0
Хмм, sharpcraft + direct3d11 + hjass. Теперь из варкрафта можно лепить всё что угодно. Почти. Если суммировать эти и еще остальные наработки получается уже "свой" варик. Если бы ещё опенсурс
Skarn #17 - 2 года назад 0
А ты можешь подобные вещи (чтение карт нормалей из файла) реализовать для любой игры?
ENAleksey #18 - 2 года назад 0
J64_, сорцы sharpcraft'а есть, а что такое hjass? Прости, не в курсе.
Skarn, Для каждой игры нужно вручную настраивать: во-первых, нужно знать адрес вызова функции Direct3DCreateX, если используется Direct3D, во-вторых нужно получить доступ к функциям отрисовки игры, или, как в данной библиотеке, использовать ручное установление текстур для заранее найденных примитивов по их NumVertices, Stride и PrimCount.
ENAleksey:
что такое hjass
Поискал, вспомнил.
Skarn #19 - 2 года назад -5
ENAleksey:
J64_, сорцы sharpcraft'а есть, а что такое hjass? Прости, не в курсе.
Skarn, Для каждой игры нужно вручную настраивать: во-первых, нужно знать адрес вызова функции Direct3DCreateX, если используется Direct3D, во-вторых нужно получить доступ к функциям отрисовки игры, или, как в данной библиотеке, использовать ручное установление текстур для заранее найденных примитивов по их NumVertices, Stride и PrimCount.
ENAleksey:
что такое hjass
Поискал, вспомнил.
Если бы запилил такую же тему на WoW был бы очень благодарен. Хватит уже адовой некрофилией с трупом wc3 заниматься.
Харгард #20 - 2 года назад (отредактировано ) 1
Хмм, sharpcraft + direct3d11 + hjass. Теперь из варкрафта можно лепить всё что угодно.
Как на счет адекватного 16:10, неглючащего WASD и реконекта?
Если бы запилил такую же тему на WoW был бы очень благодарен. Хватит уже адовой некрофилией с трупом wc3 заниматься.
Skarn, разве WoD этого не умеет из коробки?
ENAleksey #21 - 2 года назад (отредактировано ) 2
Решил переносить освещение и bump mapping на шейдеры. Шейдеры готовы, но в них нужно передавать такие данные, как координаты положения и цели камеры.
Я нашёл адреса данных функций:
0x003D8F6C "GetCameraTargetPositionX"
0x003D8F80 "GetCameraTargetPositionY"
0x003D8F94 "GetCameraTargetPositionZ"

0x003D8FBC "GetCameraEyePositionX"
0x003D8FD0 "GetCameraEyePositionY"
0x003D8FE4 "GetCameraEyePositionZ"
Теперь нужно как-то получить значения возвращаемые этими функциями.
Здесь имеется код hook'а, где происходит возвращение значения функции GetUnitDamage, кто сможет объяснить, как сделать тоже самое, только для работы с игровой?
Новостей месяц не будет: сегодня уезжаю отдыхать.
Buulichkaa #22 - 2 года назад 0
хотим когда могём!
Skarn #23 - 2 года назад 1
Харгард:
Хмм, sharpcraft + direct3d11 + hjass. Теперь из варкрафта можно лепить всё что угодно.
Как на счет адекватного 16:10, неглючащего WASD и реконекта?
Если бы запилил такую же тему на WoW был бы очень благодарен. Хватит уже адовой некрофилией с трупом wc3 заниматься.
Skarn, разве WoD этого не умеет из коробки?
Неа, нормал мэппинг в WoW не используется, насколько мне известно.
JesusHipster #24 - 2 года назад 0
Как на счет адекватного 16:10, неглючащего WASD и реконекта?
:3333 16 на 9 и реконнект это супир
ENAleksey #25 - 2 года назад 3
На следующий день после того, как я уехал, мне в голову пришла мысль, как заставить всё работать без использования дополнительных hook'ов!
Жаль, что под рукой был только телефон, и я не мог проверить данный способ на работоспособность. У меня были все файлы проекта, и я уже всё написал, но проверить смогу только через месяц, когда приеду домой.
Если всё получится, не будет проблем сделать normal и parallax mapping, отражения, мягкие тени и многое другое. Но есть большой шанс, что ничего не получится, поэтому я всё ещё жду вашей помощи и буду очень вам благодарен за запасной способ реализации.
Что касается поддержки Direct3D11, я думаю, что нельзя просто поменять цифру 9 на 11 во всех файлах. Пока рано об этом думать, и сначала нужно завершить работу с "девяткой".
ENAleksey #26 - 2 года назад (отредактировано ) 1
Как на счет адекватного 16:10, неглючащего WASD и реконекта?
  • Во-первых, что есть глючащий WASD? Я думал, что те времена, когда он глючил, давно прошли.
  • Во-вторых, это только для "одиночки", и никакого реконнекта не будет.
  • В-третьих, были у меня эксперименты с полным удалением пользовательского интерфейса - здесь всё в порядке, но "терпение требуется впереди".
реконекта
Или я неправильно понял смысл слова?
JesusHipster #27 - 2 года назад 0
Во-вторых, это только для "одиночки"
Это связано с какими-то техническими ограничениями?
ENAleksey #28 - 2 года назад (отредактировано ) 0
JesusHipster, никакиих ограничений нет, всё, что я использую в проекте (SharpCraft, исходники Nirvana) отлично работает по сети. Просто я, на данный момент, не планировал развивать сетевую составляющую, только "сингл".
Данный проект похож на 3DMark, но, в отличии от него, не тестирует "железо", а только демонстрирует графические и геймплейные возможности Warcraft'а.
JesusHipster, кстати, знаешь, что ты в списке благодарностей Nirvana?
Mexaz #29 - 2 года назад 0
Ждем новостей.
ENAleksey #30 - 2 года назад (отредактировано ) 1
Переписывался с MindWorX'ом (разработчик SharpCraft). Он предложил альтернативный способ с использованием специального плагина, хотя было это ещё две недели назад.
Осталась неделя, после чего я смогу всё проверить, и
ENAleksey:
я всё ещё жду вашей помощи и буду очень вам благодарен за запасной способ реализации.
Чем больше запасных вариантов, тем больше вероятность, что всё задуманное получится сделать уже в этом месяце.
JesusHipster #31 - 2 года назад 0
Чем больше запасных вариантов, тем больше вероятность, что всё задуманное получится сделать уже в этом месяце.
Думаю, что проблема кроется в технической неграмотности гостей треда, относительно этого вопроса.
МБ с этим стоит обратиться на THW в форме публичного обсуждения какого-то.
ENAleksey #32 - 2 года назад (отредактировано ) 0
Думаю, что проблема кроется в технической неграмотности гостей треда, относительно этого вопроса.
Жаль.
В сумме, у меня получилось 3 варианта:
  • Мой - без использование дополнительных Hook'ов.
  • MindWorX'а - использование спец. плагина для SharpCraft.
  • fucckz'а (разработчик Nirvana) - использование trampoline функции, на примере данной, из проекта YDWE (actboy168).
Также общался с Degenerated, разработчиком D3D11-Renderer - графической модификации для игр "Готика 1" и "Готика 2".
И переписывался с Talavaj (Memento Mori и Stone & Sword).
ENAleksey #33 - 2 года назад (отредактировано ) 0
Сделал за 10 минут первую версию logo для проекта (рисовал в SketchBookX):
Что думаете?
Вы видите картинку, или я что-то не так сделал?
Тестт
Кристофер #34 - 2 года назад 0
Нет, картинку не видно.
ENAleksey #35 - 2 года назад (отредактировано ) 0
Логотип:
Слоган:
RenderEdge - это новое поколение среды разработки проектов для WarCraft 3, грань отделяющая стандартный WorldEditor от совершенно нового и необычного.
Пожалуйста, высказывайте свое мнение.
Что думаете о слогане, пойдёт для финальной версии, или можно что-то изменить?
JesusHipster #36 - 2 года назад 2
ENAleksey, а слоган и запутанное название разве нужны? Зачем слоган, когда есть шейдеры
Haruhi #37 - 2 года назад (отредактировано ) 1
Написал уже на другом сайте, продублирую здесь.
"Фиговый логотип. Руками что ли рисовал? Сделай эту пародию на Анимус из Assassin's Creed остроугольной - это раз, а два - буквы сделай одинаковой высоты, и чтобы у R конец нижней палочки (не помню как там это называется) был на одной вертикали с основной частью и саму эту палочку ровной.
Короче, чтобы не быть голословным:"
"Я, конечно, не про, но как-то так, я думаю, будет лучше."
P.S. Не знаю, что на меня нашло, но при переделке мне казалось, что в оригинальном логотипе именно "RENDedge", заметил ошибку только сейчас, исправлять уже не хочу.
Кет #38 - 2 года назад 0
а где скачять-то?
Haruhi #39 - 2 года назад 0
Кет:
а где скачять-то?
Похоже, что пока нигде.
Melissa #40 - 2 года назад -3
Я думал это стёб, насчёт лого
ENAleksey #41 - 2 года назад (отредактировано ) 0
Сделал за 10 минут первую версию logo для проекта (рисовал в SketchBookX):
Рисовал на смартфоне пальцем.
Кет, я даже проект не создам, пока всё не будет работать, как я хочу.
Но если моя теория верна, то проблем быстро сделать поддержку всех технологий и эффектов не будет. Велика вероятность, что на следующей неделе основа уже будет готова, а дальше пойдёт чистое творчество.
ENAleksey #42 - 2 года назад (отредактировано ) 0
Кстати, здесь находятся старые скриншоты. Некоторые из них вообще не используют технологии из проекта, а остальные используют, но только старые. Если всё пройдёт успешно, то уровень графики сильно возрастёт по сравнению с тем, что можно увидеть на данных скриншотах.
Скорее бы вышла Mount & Blade 2, не терпится получить модельку ГГ для демки.
Дополнительную информацию о некоторых аспектах проекта можете найти, перейдя по этой ссылке.