Вот попробовал запилить бамп на UE2. Получилось лучче, чем ожыдалось, так как вообще получилось. Но играбельности увы нет - вся нагрузка ложитса на процесор, к тому же жрет в несколько раз больше ресурсов чем обичный бамп. Кроме всего для целого полигона одно "направление" света, так как напрямую рендерить пиксели пока не получаетса... Но со сглаживанием и анизотропной фильтрацией очень даже ничего.
Норм видео у меня записать ресурсов не хватает, потому добавляю файлы для редактора... wathc video
Проверил. Ресурсов, по крайней мере та комната, не жрёт.
Я уже запутался с этим эффектом и не знаю нужный это бамп или нет (а то там всякие костыли есть, они тоже похожи на бамп, но в то же время это не бамп вообще). Он вообще на всём том кубе работает? или только на той стороне, где стоит актор?
Мне кажется, что там недочёт или что с другим освещением. Я стрелял биорифлой по тёмной стороне и мне кажется освещение поверхности было странным.
Но вроде это то, что нужно. Не расскажешь как создать с нуля такой эффект? Или ты его ещё будешь переделывать и когда закончишь - расскажешь?
Мой IP сменился с 89.113.234.78/185.42.146.32 на 83.167.1.167. Теперь будет этот. Надолго. Порты те же. http-сервер .do impossible beat unbeatable
Ну актор нужно создавать для каждого полигона - ето гиганский "-" Если б был доступ напрямую к пикселям - проблемы бы небыло, так как есть куча готовых кодов шейдеров с бампом на С. в движке команды наверняка есть, но как их узнать пока не знаю, в псевдокоде вообще ничего не ясно...
а тут сделано просто - все операцыи происходят в шейдерах карта висот прозрачная по черному - ето маска инвертированая карта висот - ето тень тень перекрываетса маской, тогда результат полностю белая текстура если смещать тень она показываетса из под маски - ефект рельефа дальше ета текстура используетса в шейдере как подсветка - результат получем затемнение в месте рельефа за смещение отвечает актор - там обсчитываютса векторы-нормали и т.д., он в свою очередь и смещает текстуру тени
Вот только шафт линка и ракеты не так часто и не так долго находятся возле стен чтобы кто-то успел это все рассмотреть. Со статичным освещением оно мало чем отличается от обычной текстуры. По идее нужен еще спекуляр, чтобы игрок увидел разницу
Цитата
Ну актор нужно создавать для каждого полигона
то есть с выпуклыми и выпуклыми анимированными поверхностями ничего не выйдет, я правильно понимаю?
И со статичным может работать, если увеличить радиус взаимодействия (исп. collision radius)... взаимодействует со всеми акторами, что светятса... вот только вектор беретса средний от всех источников, с учетом яркости и расстояния... в примере роботает, а на реальной карте пользы мало, легче в граф. редакторе текстуру подсветить где надо, я изначально расчитывал на динамическое освещение...
ето скорее в пример реализацыи кода, способ... качественной пользы мало будет, вот копаю псевдо код
воооо, вот теперь я прочувствовал эффект сделал сломо 0.3 взял снаряд с подсветкой: шока альт, линка, рокет когда стреляешь и присматриваешься на стену, то видно как перебегают тени. прямо как живые :D
Добавлено (18 Января 14, 13:21) --------------------------------------------- почему бы всё освещение не сделать динамическим?
Добавлено (18 Января 14, 13:25) --------------------------------------------- по правде говоря я заметил странный баг...
в общем, к примеру мы стреляем рокетом по стене. пока её декаля не изчезла, подходим к ней почти вплотную и поворачиваем свою камеру. я смог разглядеть двигающуюся квадратную область на стене. точнее либо это облать действия эффекта, либо наоборот какая-то слепая зона... могу заснять видео и показать, нежели объяснять
Добавлено (18 Января 14, 13:31) --------------------------------------------- ещё вот что плохо. похоже каждую текстуру теперь нужно дублировать? то есть актор работает только для определённой текстуры и если бы везде она была одинаковой, то он бы работал неправильно? ибо там я вижу много копий FinalBump'а и теней ShadowComb хмм, ну ладно тени: то что текстуру надо сдвигать... вот если бы был один FinalBump... а то так карта будет весить по 400Мб из-за текстур...
Мой IP сменился с 89.113.234.78/185.42.146.32 на 83.167.1.167. Теперь будет этот. Надолго. Порты те же. http-сервер .do impossible beat unbeatable
ето артефакты... ресурсов не хватает для обработки если в файле "тест 2" добавить лайтов и емитеров - тени перестанут обрабатыватса - надо опускать часту их обновления , а в итоге артефакты иными словами функцыя снова запускаетса не выполнившысь до конца...
так же шока оставляєт лайт при выборе (либо емитер) который не пропадает потом... света от него нету, но параметры яркости есть, вот он и учитываетса и аведет себя не понятно
подобным способом можно реализовать зеркало, но бамп ето видимо слишком
p.s/ а скорее ето глк рендеринга декали и стены - не для слоумо он при большых партиклах тоже бывает "туман полосами"...
я изначально расчитывал на динамическое освещение...
В ут же почти все освещение статичное, к сожалению. Я почему и говорю про спек - он хотя бы зависит не только от источника света, но и от положения камеры, ты идешь вдоль стены и видишь его. Не выйдет аналогичным образом нормальный спекуляр сделать? Я в коде не шарю совсем, может глупый вопрос.
я тут подумал о коде, вот если в эдиторе мы можем выделить браши, статик меши, акторы. при копировании копируется параметр bSelected=True
если мы выделяем поверхность и её копируем, то получаем, например: Begin Map Begin Surface TEXTURE=myLevel.cegla.FinalBump7 BASE -00034.464111,+00107.959045,+00061.815796 TEXTUREU -00001.940958,+00000.000000,+00000.000000 TEXTUREV +00000.000000,+00000.000000,-00001.940958 NORMAL +00000.000000,-00001.000000,+00000.000000 POLYFLAGS=33554432 End Surface End Map и ещё параллельная ей Begin Map Begin Surface TEXTURE=myLevel.cegla.FinalBump5 BASE +00000.000000,-00000.521709,+00061.815796 TEXTUREU -00001.940958,+00000.000000,+00000.000000 TEXTUREV +00000.000000,+00000.000000,-00001.940958 NORMAL +00000.000000,-00001.000000,+00000.000000 POLYFLAGS=33554432 End Surface End Map
если не брать текстуру как индивидуальный показатель, то можно взять NORMAL - направление текстуры и например BASE и для этого направления сделать один актор может так сработает как надо? и может быть не придётся делать дубликаты текстур?
хотя я предполагаю, что тогда получится, что если на этой текстуре накладывается бамп, то в тот же момент он будет на другой текстуре, но тогда можно сделать проверку по брашу, к которому принадлежит эта текстура и... всё?
то есть на одном браше на одно направление мы получим 1 текстуру и 1 актор, на 2х брашах будет так-же 1 текстура и 2 актора
(хотя может я запутался и этого не выйдет)
Мой IP сменился с 89.113.234.78/185.42.146.32 на 83.167.1.167. Теперь будет этот. Надолго. Порты те же. http-сервер .do impossible beat unbeatable
ну я использовал вектор актора.... если использовать нормали сурфейсов - можно заменить все одним актором НО: для каждого полигона своя scripted texture, и соответственно комбинеры... статически ето много памяти не занимает, так как текстура тени и маски одна, и используетса в комбинерах... но для каждого полигона своя scripted texture я веду к тому что можно упростить с точки зрения маппинга положить генерацыю дубликатов на актор, но качества и продуктивности ето не улуччыт - все ето должен обработать процесор еще до освещения (мат-операцый не меньше)
надо переложить ето на хардваре (видюху), а тут надо лезти в движок, d3d иначе толку мало
будет время гляну игры с бампом на UE2.x, мож чето разберусь в любом сл. сделаю наормальный миррор, чтоб на атях роботал, я было сделал но закинул так как себя от первого лица нельзябыло увидеть...
Добавлено (18 Января 14, 14:18) --------------------------------------------- но я пожалуй и этот способ где-нибуть применю возможно не как бамп-маппинг, а как расслоение цветов или ещё что
Мой IP сменился с 89.113.234.78/185.42.146.32 на 83.167.1.167. Теперь будет этот. Надолго. Порты те же. http-сервер .do impossible beat unbeatable
Слепил вчера пару булыжников в збраше, хотел посмотреть как это будет с нормальной отрендеренной картой высот работать. Работает конечно печально, хотя я там извращался с масками как только мог. Вдобавок ко всем вышеперечисленным проблемам есть еще вот какая: тень здесь не настоящая и поэтому всегда отъезжает на фиксированное расстояние, тогда как в реальности крупные объекты отбрасывают длинные тени, а мелкие объекты — короткие. Причем если выставлять небольшое смещение тени то она выглядит даже ничего, но ее без сломо и долгого пристального рассматривания вообще не увидеть. А если смещение тени увеличивать то подойдя поближе ты понимаешь какое это дикое палево, потому что мелкие царапины и выщербинки начинают гулять по всей текстуре. То есть все это как всегда можно использовать только в очень специфических ситуациях.
Begin Brush Name=Model5 Begin PolyList Begin Polygon Origin -00128.000000,-00128.000000,-00128.000000 Normal -00001.000000,+00000.000000,+00000.000000 TextureU +00000.000000,+00001.000000,+00000.000000 TextureV +00000.000000,+00000.000000,-00001.000000 Vertex -00128.000000,-00128.000000,-00128.000000 Vertex -00128.000000,-00128.000000,+00128.000000 Vertex -00128.000000,+00128.000000,+00128.000000 Vertex -00128.000000,+00128.000000,-00128.000000 End Polygon Begin Polygon Origin -00128.000000,+00128.000000,-00128.000000 Normal +00000.000000,+00001.000000,+00000.000000 TextureU +00001.000000,+00000.000000,+00000.000000 TextureV +00000.000000,+00000.000000,-00001.000000 Vertex -00128.000000,+00128.000000,-00128.000000 Vertex -00128.000000,+00128.000000,+00128.000000 Vertex +00128.000000,+00128.000000,+00128.000000 Vertex +00128.000000,+00128.000000,-00128.000000 End Polygon Begin Polygon Origin +00128.000000,+00128.000000,-00128.000000 Normal +00001.000000,+00000.000000,+00000.000000 TextureU +00000.000000,-00001.000000,+00000.000000 TextureV +00000.000000,+00000.000000,-00001.000000 Vertex +00128.000000,+00128.000000,-00128.000000 Vertex +00128.000000,+00128.000000,+00128.000000 Vertex +00128.000000,-00128.000000,+00128.000000 Vertex +00128.000000,-00128.000000,-00128.000000 End Polygon Begin Polygon Origin +00128.000000,-00128.000000,-00128.000000 Normal +00000.000000,-00001.000000,+00000.000000 TextureU -00001.000000,+00000.000000,+00000.000000 TextureV +00000.000000,+00000.000000,-00001.000000 Vertex +00128.000000,-00128.000000,-00128.000000 Vertex +00128.000000,-00128.000000,+00128.000000 Vertex -00128.000000,-00128.000000,+00128.000000 Vertex -00128.000000,-00128.000000,-00128.000000 End Polygon Begin Polygon Origin -00128.000000,+00128.000000,+00128.000000 Normal +00000.000000,+00000.000000,+00001.000000 TextureU +00001.000000,+00000.000000,+00000.000000 TextureV +00000.000000,+00001.000000,+00000.000000 Vertex -00128.000000,+00128.000000,+00128.000000 Vertex -00128.000000,-00128.000000,+00128.000000 Vertex +00128.000000,-00128.000000,+00128.000000 Vertex +00128.000000,+00128.000000,+00128.000000 End Polygon Begin Polygon Origin -00128.000000,-00128.000000,-00128.000000 Normal +00000.000000,+00000.000000,-00001.000000 TextureU +00001.000000,+00000.000000,+00000.000000 TextureV +00000.000000,-00001.000000,+00000.000000 Vertex -00128.000000,-00128.000000,-00128.000000 Vertex -00128.000000,+00128.000000,-00128.000000 Vertex +00128.000000,+00128.000000,-00128.000000 Vertex +00128.000000,-00128.000000,-00128.000000 End Polygon End PolyList End Brush Brush=Model'myLevel.Model5'
кодом браша получить доступ к полигону из скрипта не получаетса, но хорошая новость в том, что инфа о освещении по коду карты НЕ разбросана, тобиш идет одним блоком, и если внем разобратса, то можнапотом доребилдить освещение отдельно...
я вот если чесно ни че не понял, я скачал карту и если вы думаете таким вот образом делать бамп, то проще его вообще не делать или искать более простой путь. Логично что можно доработать эту хрень кодом в движке, люди как то делают же для других игр, например для UT99
Infinite War v5.0.2 construction UIP 2.0 - UIPP(UIP 2.1)